首页 > 其他分享 >MATLAB使用手记(二):FFT示例

MATLAB使用手记(二):FFT示例

时间:2022-11-14 18:01:53浏览次数:44  
标签:频谱 采样 Xn 示例 使用手记 FFT plot sample

代码

%采样参数
T=10;                 %采样时间
N=100;                %采样次数
F_sample=N/T;         %采样频率

%被采样信号
pi=3.14;
f = 1;         			        % 频率
t = linspace(0,T,N);	                % 根据采样点
x_raw = cos(2*pi*f*t)+cos(3*2*pi*f*t);  %假定信号是标准余弦函数

%绘制原始数据波形
subplot(2,2,1);  
plot(t,x_raw);      		
title('(a)原始数据的时域波形图') 
xlabel('时间');    
ylabel(' 幅度 ');

%对原始数据进FFT
Xn = fft(x_raw);         		
F_f = (0:N-1)*F_sample/N;

%绘制直接FFT后的频谱图
subplot(2,2,2);  
plot(F_f,abs(Xn));
title('(b)fft后直接输出的频谱图');  
xlabel('频率');    
ylabel(' 幅度 ');

%FFT后的数据进行平移
Xn_s = fftshift(Xn);
fshift = (-N/2:N/2-1)*(F_sample/N);

%绘制频移后正确的频谱图
subplot(2,2,3);  
plot(fshift,abs(Xn_s));
title('(c)shift过的频谱图');  
xlabel('f');    
ylabel(' 幅度 ');

%FFT的的真实的频谱幅值
Xn_r=2*abs(Xn(1:N/2+1))/N;
realf=(0:N/2)*(F_sample/N);

%绘制原始信号的真实的频谱
subplot(2,2,4);  
plot(realf,Xn_r);
title('(d)真实的频谱图');  
xlabel('f');    
ylabel(' 幅度 ');

结果

标签:频谱,采样,Xn,示例,使用手记,FFT,plot,sample
From: https://www.cnblogs.com/simpleGao/p/16889838.html

相关文章