rockzone 发表于 2007-12-21 11:16

为什么fft处理后频谱出现偏差非常大

说明一下:
1、DATA是一个872行,512列的数据。
2、每列512个数据是在30ns中采集的。
3、数据的主频率是100MHz

m=DATA(1:512,110);                  %任取一列数据
t=30e-9/512:30e-9/512:30e-9;    %横轴为时间
figure(1)
plot(t,m)
grid on
xlabel('时间/s');ylabel('幅度');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%做数据处理
m=m.*hanning(512);                  %加个窗
nfft=512;                                  %以下做fft
fs=512/30e-9;
n=0:nfft-1;
yy=fft(m,nfft);
f=n*fs/nfft;
mag=abs(yy)*2/nfft;
figure(2)
plot(f(1:128),mag(1:128))
xlabel('频率/Hz');ylabel('幅度');
grid on





程序比较简单,不过我觉得既然信号主频在100MHz,那么频谱应该在100MHz处幅值最大

频谱图却在600MHz处出现了幅值最大点,而100MHz处幅值比较小。

这是什么原因造成的呢?

还有就是幅值校正后也跟真实幅值有比较大的差别,这是为什么?

[ 本帖最后由 rockzone 于 2007-12-21 11:21 编辑 ]

hyl2323 发表于 2007-12-21 14:08

DATA信号是否与你描述的相符?需要先确认

rockzone 发表于 2007-12-21 16:08

本帖最后由 wdhd 于 2016-9-8 14:50 编辑

原帖由 hyl2323 于 2007-12-21 14:08 发表
DATA信号是否与你描述的相符?需要先确认

对,这也是我比较怀疑的地方。因为数据的一些描述是通过一个软件看出来的。这是一个用来查看探地雷达接收信号数据的软件。

具体意思是,发射100MHz信号,再接收,传播信号的介质是大地。

如果这么看来发送信号的主频是100MHz,怎么接受到的信号幅度最大点跑到600MHz去了。

即使大地传输会改变频率,也不能变化这么大吧

hyl2323 发表于 2007-12-22 13:22

太专业了,我不明白。你不知道接收信号应该是什么样子,就不能认为这是fft的错。

wizzly 发表于 2008-1-5 00:00

加窗就行了?

加个窗就可以了吗?不是吧是不是泄露哦

hyl2323 发表于 2008-1-5 17:26

我认为加窗效果不会很明显。
页: [1]
查看完整版本: 为什么fft处理后频谱出现偏差非常大