MATLAB中FFT的使用方法频谱分析.docx

上传人:wj 文档编号:1219775 上传时间:2023-04-30 格式:DOCX 页数:7 大小:183.52KB
下载 相关 举报
MATLAB中FFT的使用方法频谱分析.docx_第1页
第1页 / 共7页
MATLAB中FFT的使用方法频谱分析.docx_第2页
第2页 / 共7页
MATLAB中FFT的使用方法频谱分析.docx_第3页
第3页 / 共7页
MATLAB中FFT的使用方法频谱分析.docx_第4页
第4页 / 共7页
MATLAB中FFT的使用方法频谱分析.docx_第5页
第5页 / 共7页
MATLAB中FFT的使用方法频谱分析.docx_第6页
第6页 / 共7页
MATLAB中FFT的使用方法频谱分析.docx_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

MATLAB中FFT的使用方法频谱分析.docx

《MATLAB中FFT的使用方法频谱分析.docx》由会员分享,可在线阅读,更多相关《MATLAB中FFT的使用方法频谱分析.docx(7页珍藏版)》请在冰点文库上搜索。

MATLAB中FFT的使用方法频谱分析.docx

说明:

以下资源来源于《数字信号处理的MATLAB实现》万永革主编

一.调用方法

X=FFT(x);

X=FFT(x,N);

x=IFFT(X);

x=IFFT(X,N)

用MATLAB进行谱分析时注意:

(1)函数FFT返回值的数据结构具有对称性。

例:

N=8;

n=0:

N-1;

xn=[43267890];

Xk=fft(xn)

Xk=

39.0000           -10.7782+6.2929i        0-5.0000i   4.7782-7.7071i   5.0000            4.7782+7.7071i        0+5.0000i-10.7782-6.2929i

Xk与xn的维数相同,共有8个元素。

Xk的第一个数对应于直流分量,即频率值为0。

(2)做FFT分析时,幅值大小与FFT选择的点数有关,但不影响分析结果。

在IFFT时已经做了处理。

要得到真实的振幅值的大小,只要将得到的变换后结果乘以2除以N即可。

二.FFT应用举例

例1:

x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t)。

采样频率fs=100Hz,分别绘制N=128、1024点幅频图。

clf;

fs=100;N=128;   %采样频率和数据点数

n=0:

N-1;t=n/fs;   %时间序列

x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);%信号

y=fft(x,N);    %对信号进行快速Fourier变换

mag=abs(y);     %求得Fourier变换后的振幅

f=n*fs/N;    %频率序列

subplot(2,2,1),plot(f,mag);   %绘出随频率变化的振幅

xlabel('频率/Hz');

ylabel('振幅');title('N=128');gridon;

subplot(2,2,2),plot(f(1:

N/2),mag(1:

N/2));%绘出Nyquist频率之前随频率变化的振幅

xlabel('频率/Hz');

ylabel('振幅');title('N=128');gridon;

%对信号采样数据为1024点的处理

fs=100;N=1024;n=0:

N-1;t=n/fs;

x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);%信号

y=fft(x,N);   %对信号进行快速Fourier变换

mag=abs(y);   %求取Fourier变换的振幅

f=n*fs/N;

subplot(2,2,3),plot(f,mag);%绘出随频率变化的振幅

xlabel('频率/Hz');

ylabel('振幅');title('N=1024');gridon;

subplot(2,2,4)

plot(f(1:

N/2),mag(1:

N/2));%绘出Nyquist频率之前随频率变化的振幅

xlabel('频率/Hz');

ylabel('振幅');title('N=1024');gridon;

运行结果:

fs=100Hz,Nyquist频率为fs/2=50Hz。

整个频谱图是以Nyquist频率为对称轴的。

并且可以明显识别出信号中含有两种频率成分:

15Hz和40Hz。

由此可以知道FFT变换数据的对称性。

因此用FFT对信号做谱分析,只需考察0~Nyquist频率范围内的福频特性。

若没有给出采样频率和采样间隔,则分析通常对归一化频率0~1进行。

另外,振幅的大小与所用采样点数有关,采用128点和1024点的相同频率的振幅是有不同的表现值,但在同一幅图中,40Hz与15Hz振动幅值之比均为4:

1,与真实振幅0.5:

2是一致的。

为了与真实振幅对应,需要将变换后结果乘以2除以N。

例2:

x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t),fs=100Hz,绘制:

(1)数据个数N=32,FFT所用的采样点数NFFT=32;

(2)N=32,NFFT=128;

(3)N=136,NFFT=128;

(4)N=136,NFFT=512。

clf;fs=100;%采样频率

Ndata=32;%数据长度

N=32;�T的数据长度

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);   %信号的Fourier变换

mag=abs(y);    %求取振幅

f=(0:

N-1)*fs/N;%真实频率

subplot(2,2,1),plot(f(1:

N/2),mag(1:

N/2)*2/N);%绘出Nyquist频率之前的振幅

xlabel('频率/Hz');ylabel('振幅');

title('Ndata=32Nfft=32');gridon;

Ndata=32;   %数据个数

N=128;     %T采用的数据长度

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=32Nfft=128');gridon;

Ndata=136;   %数据个数

N=128;     �T采用的数据个数

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=136Nfft=128');gridon;

Ndata=136;    %数据个数

N=512;    �T所用的数据个数

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=136Nfft=512');gridon;

结论:

(1)当数据个数和FFT采用的数据个数均为32时,频率分辨率较低,但没有由于添零而导致的其他频率成分。

(2)由于在时间域内信号加零,致使振幅谱中出现很多其他成分,这是加零造成的。

其振幅由于加了多个零而明显减小。

(3)FFT程序将数据截断,这时分辨率较高。

(4)也是在数据的末尾补零,但由于含有信号的数据个数足够多,FFT振幅谱也基本不受影响。

     对信号进行频谱分析时,数据样本应有足够的长度,一般FFT程序中所用数据点数与原含有信号数据点数相同,这样的频谱图具有较高的质量,可减小因补零或截断而产生的影响。

例3:

x=cos(2*pi*0.24*n)+cos(2*pi*0.26*n)

(1)数据点过少,几乎无法看出有关信号频谱的详细信息;

(2)中间的图是将x(n)补90个零,幅度频谱的数据相当密,称为高密度频谱图。

但从图中很难看出信号的频谱成分。

(3)信号的有效数据很长,可以清楚地看出信号的频率成分,一个是0.24Hz,一个是0.26Hz,称为高分辨率频谱。

        可见,采样数据过少,运用FFT变换不能分辨出其中的频率成分。

添加零后可增加频谱中的数据个数,谱的密度增高了,但仍不能分辨其中的频率成分,即谱的分辨率没有提高。

只有数据点数足够多时才能分辨其中的频率成分。

傅立叶变换(FFT)举例

 (2007-07-2816:

34:

54)

转载▼

分类:

 科研体会

%构造一个信号,基波频率50Hz,谐波频率120Hz

t=0:

0.001:

0.6;

x=sin(2*pi*50*t)+sin(2*pi*120*t);

%再加入噪声信号

y=x+2*randn(size(t));

plot(1000*t(1:

50),y(1:

50))

title('SignalCorruptedwithZero-MeanRandomNoise')

xlabel('time(milliseconds)')

Y=fft(y,512)               %傅立叶变换

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2