通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  新兵

注册:2016-12-28
跳转到指定楼层
1#
发表于 2017-1-7 23:06:20 |只看该作者 |正序浏览
本帖最后由 酷玩无线电 于 2017-1-7 23:21 编辑

信号在频域

频谱概念
信号可以分为时域信号和频域信号,听起来有点抽象,我们可以这样来思考前面举例的语音信号,如果X轴为时间轴,Y轴是语音的振幅,坐标系体现语音随时间振幅的变化,就是信号的时域模型。如果X轴换成频率轴(单位Hz),Y轴是语音的振幅,坐标系体现语音在不同频率能量的变化,那就进入了信号的频域分析。

频谱示意图
参见下图,X轴为0~5000Hz的频谱,可以看出在不同频率下信号能量的分布情况,下图可以看出低频0~1000Hz比高频1000~5000Hz有更高的能力分布。

傅立叶变换
傅里叶变换(Fourier transform)是一种线性的积分变换,常在将信号在时域(或空域)和频域之间变换时使用。
离散傅里叶变换(Discrete Fourier Transform,缩写为DFT),是傅里叶变换时域频域上都呈离散的形式,将信号的时域采样变换为其DTFT的频域采样。在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。
傅立叶变换

numpy中作快速傅立叶变换的函数是numpy.fft,其中返回的数组A[0]为0频率的能量,对于傅立叶变换点数为偶数的情况来说,A[1:n/2]即1~n/2是正频率输出,A[n/2+1:]即n/2~n-1是负频率输出。
傅立叶变换例子1
采样率fs:64Hz
傅立叶变换点数:16
正弦波频率fc:4Hz
正弦波信号:y = sin(2*π*fc*t)

傅立叶变换点数决定了FFT计算结果的bin分辨率:fs/傅立叶变换点数=64/16=4

从上图可以看出信号能量主要集中在4Hz处,如下频率序列都有对应的FFT计算结果。
频率序列:[  0.   4.   8.  12.  16.  20.  24.  28.]
对应FFT计算结果如下:
[  6.22374531e-18   5.00000000e-01   4.91616938e-17   1.96767894e-16
   3.76385442e-17   1.21014683e-16   5.01509866e-17   1.67248602e-16]

傅立叶变换

傅立叶变换例子:频谱泄露

上面一个例子我们选取的信号频率是4Hz,正好落入FFT的bin中:
[  0.   4.   8.  12.  16.  20.  24.  28.]

假如我们选择的频率不是在这些bin里面,会发生什么情况:
参见下图,信号产生频率fc为6Hz,可以看出信号能量泄漏到4H之外的其他FFT频率序列中:
[ 0.20603489  0.37575121  0.27920834  0.07737123  0.04176116  0.02859865
  0.02256836  0.01978133]



举报本楼

您需要登录后才可以回帖 登录 | 注册 |

手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-11-30 03:17 , Processed in 0.232079 second(s), 15 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部