打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
想要画出正确的频谱图,不是直接调用MATLAB FFT函数那么简单

导读

在通信、信号处理和更广泛的电气工程领域,信号是任意的、随时间变化的或者随空间变化的量。

信号可分为连续时间信号和离散时间信号:

离散信号或离散时间信号是一种时间序列,可能是从连续时间信号中采样出来。

图1 连续时间信号与离散时间信号

周期信号与非周期信号。

一个信号周期为T,那么定义其基频f0=1/T,谐频kf0,k=1,2,3...

任何周期信号(并不是严格意义上的任何)都可以由不同谐振频率kf0信号,相叠加而成,这就是傅里叶级数展开。

图2 周期信号与非周期信号

一个信号有一个或多个频率,可以从两个不同的角度来观察:时域和频域。

图3 信号的时域与频域

本文就是介绍如何进行频域的分析,当然使用计算机啦。

通过计算机中的MATLAB软件自带的FFT函数分析频谱。

文中举得例子看似简单,但同学们如果真正要理解,其实是需要一定信号处理知识的积累的。

四种傅里叶变换

再来看一下经典的图4,我认为学习通信或者数字信号处理,必须要搞明白各种不同的'傅里叶'。

图4 四种经典的傅里叶变换

图4(a)是最为熟悉的傅里叶变换,针对非周期、连续的信号,其变换后的频谱为连续的、非周期的。公式为

图4(b)是傅里叶级数,针对周期、离散的信号,变换后的信号是离散的、非周期的频谱。

图4(c)是离散时间傅里叶变换,针对离散、非周期的信号,变换后的信号是周期的、连续的频谱。

图4(d)是离散傅里叶级数,针对离散的、周期的信号,变换后的频谱是离散的、周期的

图5 四种傅里叶变换总结

四种傅里叶变换的可以如图5总结。

我们发现:

  • 时域的连续,总是对应着频域的非周期;
  • 时域的离散,总是对应着频域的周期;

反之亦然。

其中FT、FS、DTFT至少有一个域不是离散的信号,所以不适合计算机去处理。

DFS满足时域和频域都是离散的要求,但其时域为无限长的周期序列。

图6 DFS到DFT

所以我们只要取其中N个点,定义为主值序列,然后用来求取傅里叶变换。

这样的傅里叶变换就是DFT,离散傅里叶变换,其公式为:

DFT的运算量大,不利于大数据量的计算。

图7 DFT到FFT

此时,就出现了快速傅里叶变换,即FFT。

FFT是DFT的快速算法,可以节省大量的计算时间,其本质仍然是DFT。

DFT的时域与频域的联系

仔细观察图4的DFS系列,主值序列有N个点。

在时域中,如果离散信号是以T1为周期向两边延拓,那么频域的谱间隔为f1=1/T1;

同样的,如果在频域是以fs为周期向两边延拓,那么时域的信号间隔为Ts=1/fs;

所以,我们可以得出fs/f1=N;

换个角度看。

X[k]算出来的是一个序列值,那么这个序列值与频率有何关系呢?

我们知道DFT的频谱间隔为f1,那么,那么频率轴就是k倍的f1,即是kf1,其中f1=fs/N;

举个例子

我们定义个信号,它包含幅度值为0.7,频率为50Hz的正弦和幅度值为1,频率为120Hz的正弦.

采样频率为1kHz;

信号序列长度N=1500;

程序如下:

clf;Fs = 1000; % 采样频率1kHz T = 1/Fs; % 采样周期1ms L = 1500; % 信号长度t = (0:L-1)*T; % 时间序列S = 0.7*sin(2*pi*50*t) sin(2*pi*120*t);subplot(211);plot(1000*t,S);title('包含幅值为0.7的50Hz正弦量和幅值为1的120Hz正弦量')xlabel('t (毫秒)')ylabel('X(t)')subplot(212);plot(1000*t(1:50),S(1:50));title('取前50ms的数据,包含幅值为0.7的50Hz正弦量和幅值为1的120Hz正弦量')xlabel('t (毫秒)')ylabel('X(t)')Y = fft(S);mag = abs(Y); %求得FFT变换后的振幅f=(0:L-1)*Fs/L; %频率序列figureplot(f,mag); %绘出随频率变化的振幅title('信号的FFT')xlabel('频率f (Hz)')ylabel('|幅度mag|')

图8 原始信号

通过图8,我们可以看出原始信号的波形。图8的上方为1500毫秒的信号,图8的下方为取前50ms的信号。当从上图中,很难看出信号是由50Hz和120Hz的频率组成。

图9 信号的频谱

图9的横坐标为频率单位Hz,总长为1000Hz(为什么呢?读者可以思考下)

我们发现在50Hz和120Hz处,出现明显的峰值。

总结

本文中采样频率Fs=1000Hz,整个频谱是关于500Hz对称的。其中500Hz就是Nyquist频率Fs/2。

所以FFT的频谱图是以Nyquist频率为对称轴的。

并且可以明显识别出信号中含有两种频率成分:50Hz和120Hz。

因此用FFT对信号做谱分析,只需考察0~Nyquist频率范围内的幅频特性。

本文只是简单的入门,如果各位同学想用好FFT这个频谱分析工具,建议动手去实验,可以发现很多有趣的性质。

看到这里帮班长点个赞吧,欢迎在评论去留言讨论!

参考文献:

[1]FFT-Matlab初步实现.https://www.cnblogs.com/WHaoL/p/6595132.html

[2]matlab 中fft的用法.https://www.cnblogs.com/alexanderkun/p/4723577.html

[3]fft.https://ww2.mathworks.cn/help/matlab/ref/fft.html

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
傅立叶变换的深入理解(转帖)
各种傅里叶变换的区别
FS、DFS、FT、DTFT、DFT、FFT、DCT变换的联系与区别
离散傅里叶变换----解释的最透彻的|包括定义物理意义以及使用注意事项
FS FT DFS DTFT DFT 的联系和区别
数字信号处理系列串讲第11篇(离散信号的频域分析之五)——傅里叶变换的应用(1):FFT分析信号频谱...
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服