MATLAB实现FFT算法

项目简述

傅里叶变换是信号处理中最重要的概念之一。其中,傅里叶变换是针对连续信号变换到频域的数学方法。但是在数字化的时代,我们都会将连续信号进行抽样,进而得到相应的离散信号。抽样又可以根据抽样脉冲的不同分为理想抽象、脉冲抽样等。连续域里面的傅里叶变换经抽样之后变成了离散时间傅里叶变换(DTFT),我们对DTFT进行频率抽样变成离散傅里叶变换(DFT)。于是我们便可以从DFT中观察离散信号的频率成分,但是DFT需要的计算量特别大,不适合硬件的实现,于是研究人员针对DFT的特点提出了快速傅里叶变换(FFT)。这里需要注意,FFT只是DFT的快速实现,并不是一个新的变换。相信同学们从上面的概念中可以明白信号处理的发展过程。

我们本次实验是生成两个正弦波,先进行混频,然后进行FFT观察频率分量。

项目代码

本次实验所用到的代码如下:

clc;
clear all;
FS = 100000000;
FT1 = 5000000;
FT2 = 8000000;
n = 0:1:1023;
f1 = sin(2*pi*FT1*n/FS);
f2 = sin(2*pi*FT2*n/FS);
f = f1.*f2;
F = fftshift(abs(fft(f)));
plot(-512:1:511,F)

项目仿真结果

我们运行上面的MATLAB文件,可以得到下面的现象:
在这里插入图片描述
经过上面的仿真结果,我们观察0到511个点有两个脉冲分别代表了混频之后的两个频率,从而证明了我们实验的正确性。

总结

创作不易,认为文章有帮助的同学们可以关注、点赞、转发支持。(txt文件、图片文件在群中)对文章有什么看法或者需要更近一步交流的同学,可以加入下面的群:
在这里插入图片描述

发布了55 篇原创文章 · 获赞 38 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/zhangningning1996/article/details/105321851