小田 发表于 2009-12-18 13:11

请帮忙指教一下(Matlab FFT)

请各位指教一下。

首先我用仿真得到一组宽带信号y(t),我想用FFT处理后,然后按各频段重新写成信号。
比如我现在的Matlab程序是:
tt=0.0834e-9;仿真中的dt
n=1024;
t=t*10^9;
SS=fft(y,n);
SS=SS(1:n/2);
SS=SS/(n/2);
phase(:,1)=angle(SS)*180/pi;
df=1/(n*tt-tt);
ff=(0:n/2-1)*df;
ff=ff*10^-6;
SS2(:,1)=abs(SS);

wave(1,:)=SS2(f,1)*exp(-j*2*pi*ff(1,f)*t+phase(f,1)*pi/180);

也许有难理解的地方,我想问的事,信号用FFT处理之后,我想在写成频率下信号的形式

我现在上面的程序理论应该可以,就是精度不理想。大家帮看看用FFT处理后,应该怎么编写。

qinqiang 发表于 2009-12-18 14:20

(1)从fft谱上直接获得的频率、幅值和相位信息都不是准确的,需要校正后才能得到准确的频率、幅值和相位,用不准确的参数去重构信号,自然精度不够
(2)频率分辨率=采样频率/采样点数,所以df=1/(n*tt);

小田 发表于 2009-12-18 14:55

回复 沙发 qinqiang 的帖子

请问,如何校正呢?
我还是个初学者~~~
页: [1]
查看完整版本: 请帮忙指教一下(Matlab FFT)