MATLAB中利用FFT进行频谱分析

本文通过MATLAB演示了如何生成不同频率的正弦波并进行叠加,随后进行了频谱分析来识别原始信号中的各个频率成分。

===============================================

首先产生一个由不同频率波形叠加形成的波形用于分析,在命令行中调用代码如下:

f0=80000;
f1=8000000;
f2=1000000;
fs=10000000;
Ts=1/fs;
n=1:1:100000;
N=length(n);
y0=sin(2pif0nTs);
y1=sin(2pif1nTs);
y2=sin(2pif2nTs);
y3=y0+y1+y2;
figure;hold on;
plot(n(1:500),y0(1:500),‘b’);
plot(n(1:500),y1(1:500),‘r’);
plot(n(1:500),y2(1:500),‘k’);
hold off;
figure;plot(n(1:500),y3(1:500));
title(‘sum’);

运行结果如下,图一为三种波形示意图,图二为三种波形的叠加波形。
在这里插入图片描述
在这里插入图片描述

========================================================
接下来进行频谱分析,在matlab中调用代码如下:

y3_fft=fft(y3);
P3_y3_fft=abs(y3_fft/N);
P31_y3_fft=P3_y3_fft(1:N/2+1);
P31_y3_fft(2:end-1)=2P31_y3_fft(2:end-1);
f=fs
(0:N/2)/N;
figure
plot(f,P31_y3_fft)
xlabel(‘f(Hz)’)
ylabel(’|P1(f)|’)

运行结果如下,从图可以看出,该叠加波含有频率为80KHz,8MHz,1MHz的三种波形
在这里插入图片描述

对于不同的数据,只需修改名称即可,方法相同。

=======================================================

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值