firls-rs/firls-rs/test.py

47 lines
1.3 KiB
Python

#!/usr/bin/env python3
from scipy import signal
import matplotlib.pyplot as plt
import numpy as np
def main():
fs = 8000.0
coeffs = [
-0.016500179 + -0j,
-0.008695895 + -0.020993747j,
0.0020277721 + -0.0020277721j,
-0.02584644 + -0.010705946j,
0.00000000044103757 + -0.036984652j,
0.0034438625 + -0.0014264944j,
-0.0351775 + -0.0351775j,
0.025973985 + -0.06270666j,
0.0032853973 + 0.00000000007835594j,
-0.051629633 + -0.12464481j,
0.19602334 + -0.19602333j,
0.31160092 + 0.12906952j,
-0.000000009917405 + 0.27721885j,
-0.12464481 + 0.051629633j,
0.0023231243 + 0.002323129j,
-0.025973985 + 0.06270666j,
-0.049748495 + -0.0000000023729794j,
0.001426496 + 0.0034438618j,
-0.026152074 + 0.026152123j,
-0.025846435 + -0.01070596j,
-0.00000000017098507 + 0.0028677029j,
-0.020993743 + 0.008695903j,
-0.011667376 + -0.0116674j,
]
freq_space = np.linspace(-fs/2 / (fs/2)*np.pi, fs/2 / (fs/2)*np.pi, 512)
freqs, response = signal.freqz(coeffs, worN=freq_space)
response = 10 * np.log(abs(response))
plt.plot(fs/2*freqs/(np.pi), response)
plt.grid()
plt.show()
if __name__ == '__main__':
main()