绘制频谱的幅度和相位

信息处理 fft 频谱
2022-02-23 12:12:31

我想通过绘制以下信号的幅度和相位来找到频谱:

S=sin(2*pi*100*t)+cos(pi*500*t);

X=sinc(2*pi*t);

我应该注意这个问题有什么特别之处吗?

我们可以很容易地找到给出时域的光谱,例如

t=0:0.01:0.1;

fft并对两个信号使用命令

X=fft(S);

他们画出幅度和相位是什么意思?

2个回答

要绘制幅度谱与频率的关系,您可以使用以下脚本:

t = 0:0.001:0.2;
s = sin(2*pi*100*t)+cos(pi*500*t);
S = abs(fftshift(fft(s)));

Fs = 1000;
df = 1000/(length(s));
f = -Fs/2:df:Fs/2-df;

plot(f,S);

在这里,我使用了您的第一个信号并绘制了它的幅度谱。您必须注意您的信号min choosable Nyquist frequency是 500 Hz 但我们使用它的两倍(即 1000Hz),因为我们还希望在频谱中看到 f = 0 之前的部分。使用这个我们找到df(delta f)频率间隔。频率向量必须是 df 的倍数。通过这种方式,频谱将被正确绘制。

这是输出:

在此处输入图像描述

使用上述方法绘制幅度和相位,但进行以下(轻微)修改

S=fftshift(fft(s))  
figure  
plot(f,abs(S)); %Plot of magnitude  
figure   
plot(f,unwrap(angle(S))); %Plot of phase  

注意 - unwrap() 尝试处理阶段中的任何 2*pi 跳跃。