Untitled
unknown
plain_text
8 months ago
1.4 kB
5
Indexable
import numpy as np import matplotlib.pyplot as plt from scipy.signal import lfilter, freqz
1) Задание коэффициентов ДЛС
b = [1, 1, 1, 1] a = [1]
2) Импульсная характеристика через filter
n = np.arange(10) # Количество отсчетов для импульсной характеристики x = np.zeros(10) x[0] = 1 # Импульс h_filter = lfilter(b, a, x)
plt.figure() plt.stem(n, h_filter, use_line_collection=True) plt.title("Импульсная характеристика (filter)") plt.xlabel("n") plt.ylabel("h[n]") plt.grid() plt.show()
3) АЧХ через freqz
w, H = freqz(b, a)
plt.figure() plt.plot(w / np.pi, np.abs(H)) plt.title("Амплитудно-частотная характеристика (freqz)") plt.xlabel("Нормированная частота (π рад/отсч)") plt.ylabel("|H(e^jω)|") plt.grid() plt.show()
4) АЧХ через импульсную характеристику
H_fft = np.fft.fft(h_filter, 512) # Применяем БПФ frequencies = np.linspace(0, 1, len(H_fft))
plt.figure() plt.plot(frequencies, np.abs(H_fft)) plt.title("Амплитудно-частотная характеристика (через имп. хар.)") plt.xlabel("Нормированная частота") plt.ylabel("|H(f)|") plt.grid() plt.show()
Editor is loading...
Leave a Comment