diff options
author | Jon Nordby <jononor@gmail.com> | 2025-04-18 00:04:20 +0200 |
---|---|---|
committer | Martin StensgÄrd <mastensg@mastensg.net> | 2025-04-18 16:12:03 +0200 |
commit | d26152cb2fdaf1381dc43eb69a3f299911b68d50 (patch) | |
tree | 53e739df86ffb3e48c7c719842784da6e95654c7 /tools/testsignal.py | |
parent | 793057e0021154278a77d0decd00e543b2c66a23 (diff) |
tools: WIP on PDM<->PCM conversion in Python
First test signal does not seem correct...
Diffstat (limited to 'tools/testsignal.py')
-rw-r--r-- | tools/testsignal.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tools/testsignal.py b/tools/testsignal.py new file mode 100644 index 0000000..0f28e1c --- /dev/null +++ b/tools/testsignal.py @@ -0,0 +1,37 @@ +import numpy as np +import soundfile as sf + +def generate_test_tone( + duration_sec=5, + sample_rate=44100, + freqs=[440, 1000, 3000], + noise_level=0.05, + amplitude=0.5, +): + t = np.linspace(0, duration_sec, int(sample_rate * duration_sec), endpoint=False) + signal = np.zeros_like(t) + + # Add multiple sine waves + for freq in freqs: + signal += amplitude * np.sin(2 * np.pi * freq * t) + + # Normalize to avoid clipping if multiple frequencies are added + signal /= len(freqs) + + # Add white noise + noise = noise_level * np.random.normal(0, 1, signal.shape) + signal += noise + + return signal + +if __name__ == "__main__": + + filename="test_tone.wav" + # Save to WAV file + + sample_rate = 16000 + + signal = generate_test_tone(sample_rate=sample_rate) + + sf.write(filename, signal, sample_rate) + print(f"Saved test tone to '{filename}'.") |