| 12345678910111213141516171819202122232425262728293031323334353637 |
- import numpy as np
- import matplotlib.pyplot as plt
- def main():
- # Parameters
- samples = 512
- x = np.linspace(-2, 2, samples)
- # Generate a sinc wave
- sinc_wave = np.sinc(x)
- # Normalize to 16-bit range
- sinc_wave = sinc_wave / np.max(np.abs(sinc_wave)) * 32767
- imaginary_part = np.zeros(samples)
- # Save to a file
- with open('sinc_wave.bin', 'wb') as f:
- for i in range(samples):
- f.write(np.int16(sinc_wave[i]).tobytes())
- f.write(np.int16(imaginary_part[i]).tobytes())
- data = b''
- with open('sinc_wave.bin', 'rb') as f:
- data = f.read()
-
- print(len(data))
- wave_q = np.array([], dtype=np.int16)
- wave_i = np.array([], dtype=np.int16)
- for i in range(len(data) // 4):
- wave_q = np.append(wave_q, np.frombuffer(data, dtype=np.int16, count=1, offset=4*i))
- wave_i = np.append(wave_i, np.frombuffer(data, dtype=np.int16, count=1, offset=4*i+2))
- plt.plot(x, wave_q)
- plt.plot(x, wave_i)
- plt.show()
- if __name__ == "__main__":
- main()
|