Логарифмическая амплитудно-фазовая частотная характеристика
В данном примере для построения логарифмической амплитудно-фазовой частотной характеристики сделаны следующие шаги:
- Создана синусоида с заданной частотой.
- К сигналу применено быстрое преобразование Фурье (БПФ).
- Вычислена амплитуда и фаза.
- Построены амплитудная характеристика в логарифмическом масштабе и фазовая характеристика.
Перед началом работ небходимо подключить библиотеку FFTW, которая содержит функции БПФ.
In [ ]:
using FFTW
Теперь зададим параметры нашего сигнала.
In [ ]:
fs = 1000; # Частота дискретизации, Гц
T = 1.0; # Длительность, с
f_sin = 50; # Частота синусоиды, Гц
Далее зададим временную выборку для наших данных и сгенерируем синусоидальный сигнал.
In [ ]:
t = 0:1/fs:T # Время
x = sin.(2π * f_sin * t) # Сигнал - синусоида
plot(t,x)
Out[0]:
Применим быстрое преобразование Фурье к сгенерированному сигналу.
In [ ]:
X = fft(x)
n = length(x)
freqs = (0:n-1) * (fs / n)
Out[0]:
Раcсчитаем амплитуду и фазу входного сигнала.
In [ ]:
amplitude = abs.(X)
plot(amplitude)
Out[0]:
In [ ]:
phase = angle.(X)
plot(phase)
Out[0]:
Построим амплитудную характеристику в логарифмическом масштабе.
In [ ]:
plot(freqs[1:div(n, 2)], 20 * log10.(amplitude[1:div(n, 2)]), title="Amplitude Response (dB)", xlabel="Frequency (Hz)", ylabel="Amplitude (dB)", legend=false)
Out[0]:
Построим фазовую характеристику.
In [ ]:
plot(freqs[1:div(n, 2)], phase[1:div(n, 2)], title="Phase Response", xlabel="Frequency (Hz)", ylabel="Phase (radians)", legend=false)
Out[0]:
Вывод
В данном примере мы разобрали возможности построения АЧХ в логарифмическом маштабе и ФЧХ для произвольного сигнала.