Untitled

 avatar
unknown
plain_text
24 days ago
1.4 kB
3
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