Engee 文档
Notebook

对数幅相频率响应

在本例中,将采取以下步骤来构建对数幅相频率响应: 1.创建一个给定频率的正弦波。 2.2. 对信号进行快速傅立叶变换 (FFT)。 3.计算振幅和相位 4.绘制对数标度的振幅响应和相位响应图。

在开始工作之前,有必要连接包含 FFT 函数的 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]:
0.0:0.999000999000999:999.000999000999

计算输入信号的振幅和相位。

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]:

结论

在本例中,我们了解了绘制任意信号的对数 AFC 和 FFC 的可能性。