数字信号处理-FFT matlab示例程序

该博客展示了如何使用MATLAB进行FFT快速傅里叶变换,通过实例代码解释了对一个正弦信号进行FFT处理的过程,并绘制了不同点数下的幅频图。内容包括采样频率设定、信号生成、FFT运算以及结果可视化,对于理解FFT在数字信号处理中的应用有一定帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数字信号处理-FFT matlab示例程序

代码可以跑通了,但是原理还没有完全弄明白,这里先放上,回头再来补原理。

%x= 0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t);%采样频率fs=100Hz,分别绘制N=128256点幅频图。

clf;
fs=100;N=128; %采样频率和数据点数
n=0:N-1;
t=n/fs; %时间序列
x=sin(2*pi*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');
grid on;
subplot(2,2,2),plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');
title('N=128');
grid on;
%对信号采样数据为256点的处理
fs=100;N=256;n=0:N-1;t=n/fs;
x=sin(2*pi*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=256');grid on;
subplot(2,2,4)
plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅
xlabel('频率/Hz');
ylabel('振幅');title('N=256');grid on;

效果如图所示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值