
班长聊通信原理 | 系列文章关注"班长"→主页→"文章"查看
肺炎疫情让年味儿多了不少焦虑,走亲访友都成了奢望。与其冒着被感染的风险出门或聚会,倒不如宅在家里最踏实。
热爱学习的同学们,宅在家里,学点通信原理吧。
本文主要介绍MATLAB中FFT函数的使用,对于FFT|DFT的原理未有提及,需要的同学去文末自取。
目录
- 引言
- 以正弦信号为例
- 频域表示
- 绘制DFT生值图
- 根据归一化频率轴绘制原始值
- 归一化频率轴、调整为正负频率
- FFT求功率谱密度
- 结论
01引言
FFT是Fast Fourier Transform,快速傅里叶变换的缩写。
傅里叶变换可以让我们,由时域分析转入变换域(频域)分析。
毫无疑问,我们的实验对象是常见的标准信号。
教材中使用的标准信号有:正弦、余弦、高斯脉冲、方波、孤立矩形脉冲、指数衰减、Chirp信号。
在频域分析之前,我们需要思考如何在MATLAB中产生这些标准信号。
02以正弦信号为例
为了在MATLAB中产生正弦波,第一步是固定正弦波的频率f。
例如,我打算生成一个f = 10Hz的正弦波,其最小振幅和最大振幅分别为-1v和1v。
因为MATLAB是一种处理数字比特的软件,所以既然已经确定了正弦波的频率,下一步就是确定采样率。
根据Nyquist Shannon定理,为了产生/绘制平滑的正弦波,采样率必须远远高于规定的最小所需采样率,该采样率至少是频率f的两倍。
这里选择了30的过采样倍数,这是为了绘制一个平滑的连续的正弦波。
因此,采样率为f_s=30倍f=300Hz。
如果正弦波需要相移,那就单独定义一个初相位。

图1 正弦信号,5个周期,频率为10Hz
% 产生正弦波形f = 10; %正弦波频率,单位Hz | frequency of sine waveoverSampRate = 30; %采样倍率 | over