matlab 傅里叶变换频谱

本文介绍了在MATLAB中进行傅里叶变换的基础操作,包括创建一维数组、正弦数组,以及使用FFT进行频谱分析。重点讨论了FFT与DFT的区别,解释了fftshift函数的作用,并探讨了如何修改输入信号x来影响变换结果。最后,通过实验过程展示了MATLAB数组截取和处理的方法,得出初步结论:通过FFT可以识别正弦波调制后的频率特征。
摘要由CSDN通过智能技术生成

初级操作整理

创建一个一维数组

zeros(1,n)%建立一個一行N列的一维数组

创建一个正弦数组

Si = zeros(1,n)
i = 0;
for j = 1:N
i = i+1;
Si(i) = sin(2*pi*i/N);
end

显示一下看一眼

plot(Si)

FFT使用

代码

找到了一个理想的FFT处理的代码,

%% 两个频率分别为15HZ 和 20HZ 的正弦信号[1]
Fs=500;%采样率
f1=15;
f2=20;
t = 0:1/Fs:1-1/Fs; %以1/Fs为步距从0取到1-1/Fs,组成一维数组
x = 200*sin(2*pi*f1*t) + 0.25*sin(2*pi*f2*t);%输入信号
figure;
plot(t,x);%原始图像显示
y = fft(x);% fft变换
%将横坐标转化,显示为频率f= n*(fs/N)
f = (0:length(y)-1)*Fs/length(y);
figure;
plot(f,abs(y));%abs 对负数取绝对值,对复数取幅值
title('Magnitude');
%该变换还会生成尖峰的镜像副本,该副本对应于信号的负频率。
%为了更好地以可视化方式呈现周期性,可以使用 fftshift 函数对变换执行以零为中心的循环平移。
n = length(x);                         
fshift = (-n/2:n/2-1)*(Fs/n);%以输入长度为参照向两边做均匀点生成图像横坐标 
yshift = fftshift(y);
figure;
plot(fshift,abs(yshift));
%FFT的结果所要展现的真实的频谱幅值[2]
realy=2*abs(y(1:n/2+1))/n;
realf=(0:n/2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

define_mine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值