如何用MATLAB实现快速傅立叶变换FFT?
1、读入时域采集信号,定义采样频率,计算信号点数量,生成采样时间点
clear;clc;close all
load('example')
Fs=2500;
T=1/Fs;
N=length(y);
t=(0:1:N-1)*T;
t=t';
2、绘制时域信号图形
figure
plot(t,y)
3、使用MATLAB自带的fft函数,对信号做傅里叶变换,注意:频谱的前半部分为有效谱图
Y=fft(y);
Y=Y(1:N/2+1);
A=abs(Y);
f=(0:1:N/2)*Fs/N;
f=f';
1、对原始频谱的幅值就行修正,才能将频域的幅值与时域信号的幅值对应上
A_adj=zeros(N/2+1,1);
A_adj(1)=A(1)/N;
A_adj(end)=A(end)/N;
A_adj(2:end-1)=2*A(2:end-1)/N;
2、绘制幅频特性图
figure
subplot(2,1,1)
plot(f,A_adj)
3、绘制相频特性图
subplot(2,1,2)
phase_angle=angle(Y);
phase_angle=rad2deg(phase_angle);
plot(f,phase_angle)
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:167
阅读量:174
阅读量:182
阅读量:182
阅读量:35