#!/usr/bin/env python3 from scipy import signal import matplotlib.pyplot as plt import numpy as np def main(): fs = 6400.0 coeffs = signal.firls(63, (0, 1150, 1200, fs/2), (1, 1, 0, 0), fs=fs) 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() f0 = (1200 + 50) / fs complex_coeffs = [] for n in range(0, len(coeffs)): complex_coeffs += [coeffs[n] * np.exp(1j * 2 * np.pi * f0 * n)] complex_coeffs = np.array(complex_coeffs) print(complex_coeffs) freq_space = np.linspace(-fs/2 / (fs/2)*np.pi, fs/2 / (fs/2)*np.pi, 512) freqs, response = signal.freqz(complex_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()