47 lines
1.3 KiB
Python
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() |