经矩形窗截断的信号频谱泄露现象研究-附Matlab代码

✳️ 一、频谱泄露现象

有一个余弦信号,信号频率30Hz,信号为x(t)=cos(2π×30t),采样频率fs=128Hz,样本长度分别取N=128和N=100,在FFT后作谱图并比较谱图中的差别。

结果如下:

在这里插入图片描述
上述两信号中,中心频率f0=30,采样频率fs=128,唯一差别仅是FFT的长。在N=128的谱图上只在30Hz处有一条谱线,其他频点的幅值都为0;

而在N=100的谱图上有明显的泄漏现象,谱线用红实线表示。图中用虚线和红圈点表示了30Hz的频率点,而最大两根谱线在30Hz两侧。

即出现了当N=128时FFT后没有泄漏,而当N=100时FFT发生了泄漏。

✳️ 二、原因分析以及解决方法

设信号是频率为f0,当取信号为整周期采样时,信号的频率f0=l△f,l=k,f0将与某一条谱线相重合,即第k条谱线频率为f0。整周期采样后得到的幅值谱图如下图所示:

在这里插入图片描述

整周期采样时幅值图谱

在整周期采样后,一样存在着泄漏的可能性,但由于信号频率f0与第k条谱线重合,k±i(i为整数值)的任意谱线正好落在零点上,所以在谱图中就没有显示泄漏现象。

当取信号为非整周期采样时,信号的频率f0不与FFT后某一条谱线重合,而是落在两条谱线的中间,例如落在第k和k+1条谱线之间,其中第k条谱线是局部极大值,如下图所示。

在这里插入图片描述

非整周期采样时幅值图谱

在非整周期采样时,一样存在着泄漏的可能性,由于信号频率f0在两条谱线之间,第k条谱线虽是局部的最大值,但不与f0相重合,则k±i(i为整数值)的任意谱线都是非零值,所以在谱图中存在泄漏现象

为了防止泄漏,对于单频信号可以调整采样频率使之构成整周期采样(例如在电力监测设备中,有的会用锁相技术跟踪信号频率以调整采样频率),但大多数实际信号处理中的信号不是单频(或单频+谐波),而是多频率的,所以泄漏是难免的。在有泄漏的情形中只能想方设法减小泄漏的影响,比如利用窗函数。虽然上述已在截断的讨论中加了矩形窗函数,但矩形窗函数的泄漏是最大的,还有其他窗函数能更好地减少泄漏。

✳️ 三、Matlab程序获取与验证

上述matlab代码链接如下:

经矩形窗截断的信号频谱泄露现象研究

可开展针对性验证实验,请私信博主。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
好的,我会尽力回答你的问题。针对你的问题,我可以给你提供一些思路和方法,但是具体的实现还需要你自己去完成。 1. 频谱泄露的原因 频谱泄露是指在对无限长信号进行有限长时间离散傅里叶变换(DFT)时,由于截断带来的频域波形畸变。频谱泄露的原因主要是由于截断信号时,其在时间域上的端点不连续,这会导致在频域上出现高频分量,从而导致信号的能量泄露到其他频率上。 2. 频谱泄露现象的展现 为了展现频谱泄露现象,你可以使用Matlab中的fft函数对一个无限长的信号进行DFT,然后将其与截断后的信号进行比较。在比较时,你可以使用Matlab中的plot函数将原始信号频谱和经过不同函数处理后的信号频谱进行可视化展示,从而观察信号在不同频率上的泄露情况。 3. 减轻或解决频谱泄露问题的方法 为了减轻或解决频谱泄露问题,你可以使用不同的函数对无限长信号进行截断。常见的函数包括矩形、汉明、汉宁等。矩形是最简单的函数,但其副瓣较大,容易导致频谱泄露问题。汉明和汉宁则是通过对矩形进行加权得到的,它们的副瓣较小,能够有效减轻频谱泄露问题。 在Matlab中,你可以使用hamming函数、hanning函数等对信号进行加处理,然后再进行DFT。通过比较不同函数下的频谱图,你可以观察到不同函数对信号频谱的影响,从而选择合适的函数来减轻或解决频谱泄露问题。 希望这些信息可以对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研中心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值