傅里叶变换(fft)matlab程序三
clear all %清除内存所有变量
close all %关闭所有打开的图形窗口
%% 执行FFT点数与原信号长度相等(100点)
% 构建原信号
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,zeros(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,zeros(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,zeros(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执行点)’); % 变量@@@@@@@
结果