基于Python的频谱分析(二)——频谱泄露

本文探讨了频谱泄露现象,当使用DFT分析以特定频率fs的正弦序列时,由于时域截断,导致频谱在fs附近而非仅fs处出现谱线。这种现象称为频谱泄露。通过分析含有非整数周期波形的代码,展示频谱泄露导致的能量分散,影响频谱特性计算。解决方案是应用窗函数以改善,内容将在后续博客中进一步阐述。
摘要由CSDN通过智能技术生成

1、频谱泄露

  对于频率为fs的正弦序列,它的频谱应该只是在fs处有离散谱。但是,在利用DFT求它的频谱时,对时域做了截断,结果使信号的频谱不只是在fs处有离散谱,而是在以fs为中心的频带范围内都有谱线出现,它们可以理解为是从fs频率上“泄漏”出去的,这种现象称 为频谱“泄漏”。

2、代码分析

如果我们波形不能在fft_size个取样中形成整数个周期的话会怎样呢?将上篇博客中的采样对象的频率改为:

x = np.sin(2*np.pi*100*t)+2*np.sin(2*np.pi*234.375*t)

import numpy as np#导入一个数据处理模块
import pylab as pl#导入一个绘图模块,matplotlib下的模块

sampling_rate = 8000#采样频率为8000Hz
fft_size = 512 #FFT处理的取样长度
t = np.arange(0, 
日光倾城整理小波变换中能量泄漏问题的研究-仿真图1.doc 本帖最后由 日光傾城 于 2012-3-30 22:49 编辑 【小波分析】 db10的 6层分解 重构的小波能量谱分布 一、案例分析 采用 db10的 6层小波分析,经过分解、重构观察小波能量谱分布情概况。 分析的信号频率为16.7HZ。采样频率1000HZ,采样点N=1024。由于小波分解遵循Nyquist标准,因此最大可测频率为采样频率的一半,即500HZ 对信号进行六层分解,由Mallat多分辨率算法, 频带划分: d1:500--250 d2:250--125 d3:125--62.5 d4:62.5--31.25 d5:31.25--15.625d6:15.625-7.8125a6:7.8125--DC出现问题:1)16.7HZ信号应该落在d5中,但是,能量直方图显示的a6重构的成分更多,即DC--7.8125之间。                   2)原信号改成50HZ和200HZ 靠近频段的中心时,就不会发生这种现象了。 问题原因:小波变换中的能量泄漏问题 解决办法:改变采样频率(或者分解层数N),使感兴趣频率靠近频带中心位置。 未解决问题:由于谐波的存在,16.7HZ的信号会被分解1/2,1,2倍频。基频16.7的幅值比实际幅值有所衰减。这样很难判断风机转速1000r/min,即频率16.7HZ,当出现y=a*sin*16.7) b*sin c*sin ... f*sin的叠加情况时,实际的幅值会与小波分析得到的重构时间序列的幅值有所差别。期待大家能解决这个问题。同样的问题也会出现FFT变换中。例如y=sin,用离散点来描述时,1)离散的点越多,波形趋势越清晰。即采样点越多,频谱泄露越少。                              2)采样频率,必须大于待测信号的2倍(最低标准)。t=时间段内,采样周期T=1,采样频率F=1,可以采集6点。采样频率F=2,可以采集12点。因此,每个周期内采集20个点计算,采样频率选择20*(1/2pi)=3.2HZ.过大的采样长度会影响计算的速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值