|
楼主 |
发表于 2009-3-7 08:52
|
显示全部楼层
本帖最后由 wdhd 于 2016-6-3 11:15 编辑
原帖由 ruben052013 于 2009-3-6 10:55 发表
程序里有两段不明白。
1、y1=fft(x, nfft) * 2/nfft;
为什么要乘以2再除以nfft?
2、排列数据时:
y2=zeros(1, nfft/2);
y2(1: nfft/4) =a(nfft-nfft/4+1 : nfft);
y2(nfft/4+1 : nfft/2) =a(1: nfft/4);
n=0: (nfft/2-1);
y2是一个全零序列。为什么老师在上面解释的是:对应的是y2的那一部分?还有做重采样后点数小于nfft,补零做了nfft点的FFT。然后为什么要重排呢?是不是因为要和原来的直接做的结果对比?
还有一个问题,好像decimate函数有两个参数的时候,只做了重采样,没有滤波吧?
1,是为了求出窄带信号的幅值;
2,是为了和原来的直接结果做对比;
3,decimate函数有两个参数的时候,重采样前先滤波:
DECIMATE Resample data at a lower rate after lowpass filtering.
Y = DECIMATE(X,R) resamples the sequence in vector X at 1/R times the
original sample rate. The resulting resampled vector Y is R times
shorter, i.e., LENGTH(Y) = CEIL(LENGTH(X)/R). By default, DECIMATE
filters the data with an 8th order Chebyshev Type I lowpass filter with
cutoff frequency .8*(Fs/2)/R, before resampling. |
|