关于傅里叶变换选取样本个数的区别
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在读取数据长度为32,进行FFT变换的样本个数分别为32,128(会失真)两种情况下和在读取数据长度为136,进行FFT变换的样本个数分别为128,512两种情况下,频谱图情况对比:
fs=100; %采样频率
Ndata=32; %数据长度
N=32; %FFT的数据长度
n=0:Ndata-1;
t=n/fs; %数据对应的时间序列
x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %时间域信号
figure(1)
plot(x)
y=fft(x,N); %将时间域信号x进行Fourier变换
mag=abs(y); %求取振幅
f=(0:N-1)*fs/N; %真实频率
figure(2)
subplot(2,2,1),plot(f(1:N/2),mag(1:N/2)*2/N); %绘出Nyquist频率之前的振幅
xlabel('频率/Hz');ylabel('振幅'); title('Ndata=32 Nfft=32');
grid on;
Ndata=32; %数据个数
N=128; %FFT采用的数据长度
n=0:Ndata-1;t=n/fs; %时间序列
x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); y=fft(x,N); mag=abs(y); f=(0:N-1)*fs/N; %真实频率subplot(2,2,2),plot(f(1:N/2),mag(1:N/2)*2/N); %绘出Nyquist频率之前的振幅
xlabel('频率/Hz');ylabel('振幅'); title('Ndata=32 Nfft=128');grid on;
Ndata=136; %数据个数
N=128; %FFT采用的数据个数
n=0:Ndata-1;t=n/fs; %时间序列
x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); y=fft(x,N); mag=abs(y); f=(0:N-1)*fs/N; %真实频率subplot(2,2,3),plot(f(1:N/2),mag(1:N/2)*2/N); %绘出Nyquist频率之前的振幅
xlabel('频率/Hz');ylabel('振幅'); title('Ndata=136 Nfft=128');grid on;
Ndata=136; %数据个数
N=512; %FFT所用的数据个数
n=0:Ndata-1;t=n/fs; %时间序列
x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); y=fft(x,N); mag=abs(y); f=(0:N-1)*fs/N; %真实频率subplot(2,2,4),plot(f(1:N/2),mag(1:N/2)*2/N); %绘出Nyquist频率之前的振幅
xlabel('频率/Hz') ;ylabel('振幅'); title('Ndata=136 Nfft=512');grid on
结果:
分析:
当时域信号为0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t),即实际信号是由一个振幅为0.5,频率为15HZ的正弦信号和一个振幅为2,频率为40HZ的正弦信号合成。当读取信号长度为32时,要求傅里叶变换的样本个数若为32,则分析出频谱图为第一幅,要求傅里叶变换个数为128,则频谱图为第二幅。两者对比,后者要比前者图形波动更加缓和,波动数多,后者效果较差。前者振幅接近0.5和2,而后者则变为约0.1和0.5。原因在于当读取的信号个数小于所要进行FFT变换信号个数时,程序默认将不足部分用0补足,因此对整个信号进行FFT变换时,会引起失真,导致不能正确反映原信号的成份。同理,第四幅图效果优于第三幅。
对同一个信号,相同采样频率下,读取信号长度较大的情况下,信号分析结果更贴合实际。当读取信号长度为136,要求傅里叶变换样本个数为128,则分析出频谱图为第三幅,相比读取信号长度为32,要求傅里叶变换样本个数32的第一幅图,效果要更优,可以发现振幅为0.5和2的位置更集中在20HZ、40HZ 两处,且振幅也更接近0.5与2。