fft能分辨的最高频率为采样频率的一半(即奈奎斯特频率),函数fft返回值以奈奎斯特频率为轴额定的,Y的前一半与后一半是复数***参考关系。 p>
FFT(快速傅里叶变换)是利用复数形式的离散傅里叶变换来计算实数形式的离散傅里叶变换,matlab中的fft()函数是实现算法的实现。该算法可以减少计算 DFT 的时间,极大地提高了损坏效率,并一度被认为是信号分析技术开发时代的进步。
扩展资料:
示例程序:
清除所有? 清除内存所有变量
关闭所有关闭所有打开的图形窗口
执行FFT积分与原信号长度适合(100点)
构建原信号
p>
N=100; ? 信号长度(变量@@@@@@@)
Fs=1; ? 采样频率
dt=1/Fs; ? 采样间隔
t=[0:N-1]*dt; ? 时间序列
xn=cos(2*pi*0.24*[0:99]) cos(2*pi*0.26*[0:99]); ?
xn= [xn,零(1,N-100)]; ? 原始信号的值序列
subplot(3,2,1) ? 变量@@@@@@@
plot(t,xn) ? 绘出原始信号
xlabel('时间/s'),title('原始信号(支持长度为100)') ? 变量@@@@@@@
FFT分析
NN=N; ? 执行100点FFT
XN=fft(xn,NN)/NN; ? ***增值税复数,具有价格性
f0=1/(dt*NN); ? 基频
f=[0:ceil((NN-1)/2)]*f0; ? 频率序列
A=abs(XN); ? 宽度值序列
subplot(3,2,2),stem(f,2*A(1:ceil((NN-1)/2) 1)),xlabel('频率/Hz' )? 不同级别(变量@@@@@@@)
axis([0 0.5 0 1.2]) ? 调整坐标范围
title('执行分数等于信号长度(单边谱100执行点)'); ? 变量@@@@@@@
执行FFT分数大于原信号长度
构建原信号
N=100; ? 信号长度(变量@@@@@@@)
Fs=1; ? 采样频率
dt=1/Fs; ? 采样间隔
t=[0:N-1]*dt; ? 时间序列
xn=cos(2*pi*0.24*[0:99]) cos(2*pi*0.26*[0:99]); ?
xn= [xn,零(1,N-100)]; ? 原始信号的值序列
subplot(3,2,3) ? 变量@@@@@@@
plot(t,xn) ? 绘出原始信号
xlabel('时间/s'),title('原始信号(支持长度为100)') ? 变量@@@@@@@
FFT分析
NN=120; ? 执行120点FFT(变量@@@@@@@)
XN=fft(xn,NN)/NN; ? ***增值税复数,具有价格性
f0=1/(dt*NN); ? 基频
f=[0:ceil((NN-1)/2)]*f0; ? 频率序列
A=abs(XN); ? 宽度值序列
subplot(3,2,4),stem(f,2*A(1:ceil((NN-1)/2) 1)),xlabel('频率/Hz' )? 不同级别(变量@@@@@@@)
axis([0 0.5 0
1.2])? 调整坐标范围
title('执行分数信号最大长度(单边谱120执行点)'); ? 变量@@@@@@@
执行FFT积分与原信号长度精度(120点)
构建原信号
N=120; ? 信号长度(变量@@@@@@@)
Fs=1; ? 采样频率
dt=1/Fs; ? 采样间隔
t=[0:N-1]*dt; ? 时间序列
xn=cos(2*pi*0.24*[0:99]) cos(2*pi*0.26*[0:99]); ?
xn= [xn,零(1,N-100)]; ? 原始信号的值序列
subplot(3,2,5) ? 变量@@@@@@@
plot(t,xn) ? 绘出原始信号
xlabel('时间/s'),title('原始信号(支持长度为120)') ? 变量@@@@@@@
FFT分析
NN=120; ? 执行120点FFT(变量@@@@@@@)
XN=fft(xn,NN)/NN; ? ***增值税复数,具有价格性
f0=1/(dt*NN); ? 基频
f=[0:ceil((NN-1)/2)]*f0; ? 频率序列
A=abs(XN); ? 宽度值序列
subplot(3,2,6),stem(f,2*A(1:ceil((NN-1)/2) 1)),xlabel('频率/Hz' )? 不同级别(变量@@@@@@@)
axis([0 0.5 0 1.2]) ? 调整坐标范围
title('执行分数等于信号长度(单边谱120执行点)'); ? 变量@@@@@@@
百度百科-快速傅里叶变换