如何理解离散傅里叶变换

为了方便讨论,以下用的都是逻辑频率和周期,先给出逻辑频率和周期的定义:

频率f:整个序列(数组)中有几个这个正弦波的周期
周期T:这个正弦波一个周期中的采样点数
fT=N 频 率 f ∗ 周 期 T = 整 个 序 列 采 样 点 数 N

逻辑频率和物理频率的转换,可以直接把逻辑频率缩放到物理频率:
=fNHz 物 理 频 率 = f N ∗ 采 样 率 ( H z )

离散傅里叶变换(DFT)的公式:

X(f)=t=0N1x(t)eifN2πt,t,f=0,1,...,N1=t=0N1x(t)cos(fN2πt)+ix(t)sin(fN2πt) X ( f ) = ∑ t = 0 N − 1 x ( t ) e i ∗ f N ∗ 2 π ∗ t , t , f = 0 , 1 , . . . , N − 1 = ∑ t = 0 N − 1 x ( t ) c o s ( f N ∗ 2 π ∗ t ) + i ∗ x ( t ) s i n ( f N ∗ 2 π ∗ t )

其中x(t)为时域信号数组,X(f)为频域数组,把f=0~N-1代入X(f),就能得到各个频率的正弦波(结果是个复数,幅值为复数的模,初相为 arctan() a r c t a n ( 虚 部 实 部 )
各正弦波的频率 f=0,1,2,3,...,N1 f = 0 , 1 , 2 , 3 , . . . , N − 1
周期 T=Nf=,N,N2,N3,...,NN1 T = N f = ∞ , N , N 2 , N 3 , . . . , N N − 1

例如下图蓝色曲线频率为3,幅值为2;红色曲线频率为16,幅值为1。把它们相加就得到了绿色曲线。对绿色曲线采样,做DFT后得到频域为图的下半部分(x轴为频率,y轴为幅值)

DFT

(因为整个时域序列相加了, +N 正 频 率 幅 值 + 负 频 率 幅 值 序 列 长 度 N 才是原来的正弦波幅值,所以IDFT公式前面要乘1/N)

由DFT的公式可知,X(1)~X(N/2-1)和X(N-1)~X(N/2+1)是共轭复数。N/2+1~N-1又叫负频率,因为DFT得到的频域函数也是周期函数,X(N/2+1)~X(N-1)和X(-N/2+1)~X(-1)的值相等。用具体例子理解负频率:有个车轮顺时针旋转,如果旋转频率增大到人眼采样频率的N/2+1~N-1,即负频率,看起来车轮就是逆时针旋转了

根据采样定理(香农定理、奈奎斯特定理),只有频率小于采样频率/2的信号能无损还原,N/2叫做奈奎斯特频率。我们能用到的实际上只有直流量和正频率(f=0~N/2-1)

频率超过N/2会怎么样

f=31,随着频率增加,正负频率越来越靠近N/2

f=31

f=32,每个周期刚好采样到2个点(再增大就只有1个点了),正负频率合为了奈奎斯特频率

f=32

这个时候信号已经失真了,比如相位超前90°,采样到的就全是0

f=32

f=33,采样到的点看起来和f=31一样,算得频率就是31

f=33

f=63,频率继续增加,采样到的点频率反而减小了,这里和f=1一样

f=63

f=64,看起来就是直流信号

f=64

f=65,又和f=1一样了

f=65

DFT做了什么

我们只看实数部分,虚数部分同理,只是用sin表示正弦波,相位差了90°。DFT其实就是把时域信号加权相加,权值等于相应频率,幅值为1的cos序列

为什么这样就能把不同频率的正弦波分开

这是利用了三角函数的正交性,即频率为0, 1, 2, … 的任意两个正弦波乘积在整个周期(采样序列)积分(求和)为0

例如 x(t)=(f=3+f=16) x ( t ) = ( f = 3 的 正 弦 波 + f = 16 的 正 弦 波 ) ,x(t)与f=3的正弦波相乘后就变成了 (f=3f=3+f=16f=3) ( f = 3 的 正 弦 波 ∗ f = 3 的 正 弦 波 + f = 16 的 正 弦 波 ∗ f = 3 的 正 弦 波 ) ,再求和后,第二项变为0消掉了,只有频率相同的第一项留了下来

如果不正交呢

下图为频率为3.5的情况

频谱泄露

可以看出整个频域范围幅值都不为0,就像幅值从频率3.5泄露出去了,这种现象叫做频谱泄露。DFT其实把原信号当成了无限长序列信号,如下图,原信号改变了,所以频域也变了

截断

其实就是把正弦波截断后,周期不完整了,出现了非整数的频率,破坏了三角函数的正交性。实际应用中难免截断完整周期,为了减少频谱泄露的影响,有两种方法,一种是把原信号加窗后再DFT;另一种是增加用来变换的序列长度,这样可以把频率分得更细,让三角函数更接近正交

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值