打开APP
userphoto
未登录

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

开通VIP
信号处理之倒频谱原理与python实现

更多技术,第一时间送达

倒频谱定义 


倒频谱可以分析复杂频谱图上的周期结构,分离和提取在密集调频信号中的周期成分,对于具有同族谐频、异族谐频和多成分边频等复杂信号的分析非常有效。倒频谱变换是频域信号的傅立叶积分变换的再变换。时域信号经过傅立叶积分变换可转换为频率函数或功率谱密度函数,如果频谱图上呈现出复杂的周期结构而难以分辨时,对功率谱密度取对数再进行一次傅立叶积分变换,可以使周期结构呈便于识别的谱线形式。第二次傅立叶变换的平方就是倒功率谱,即“对数功率谱的功率谱”。倒功率谱的开方即称幅值倒频谱,简称倒频谱。

简言之,倒频谱分析技术是将时域振动信号的功率谱对数化,然后进行逆傅里叶变化后得到的。倒频谱的水平轴为“倒频率”的伪时间,垂直轴为对应倒频率的幅值,其计算公式为:

其中,是时域振动信号,是时域振动信号的功率谱,为时域振动信号的倒频谱。

倒频谱python案例

实现如下:

from scipy.fftpack import fft, fftshift, ifftfrom scipy.fftpack import fftfreqimport numpy as npimport matplotlib.pyplot as pltimport warningswarnings.filterwarnings("ignore")
fs = 1000#采样点数num_fft = 1024
"""生成原始信号序列
在原始信号中加上噪声np.random.randn(t.size)
其中y1是主频为5/10/20Hz的低频信号+噪声信号;y2是主频为50、100/200Hz的高频信号+噪声信号;y是y1和y2的调制结果"""t = np.arange(0, 5, 1/fs)y1 = 10*np.cos(2*np.pi*5*t) + 7*np.cos(2*np.pi*10*t) + 5*np.cos(2*np.pi*20*t) + np.random.randn(t.size)y2 = 20*np.cos(2*np.pi*50*t) + 15*np.cos(2*np.pi*100*t) + 25*np.cos(2*np.pi*200*t) + np.random.randn(t.size)y = y1*y2
plt.figure(figsize=(20, 12))ax=plt.subplot(331)ax.set_title('y1')plt.plot(y1)
ax=plt.subplot(332)ax.set_title('y2')plt.plot(y2)
ax=plt.subplot(333)ax.set_title('y=y1*y2')plt.plot(y)
"""对低频信号y1进行 FFT(Fast Fourier Transformation)快速傅里叶变换"""Y1 = fft(y1, num_fft)Y1 = np.abs(Y1)
ax=plt.subplot(334)ax.set_title('y1 fft')plt.plot(Y1[:num_fft//2])
"""对高频信号y2进行 FFT"""Y2 = fft(y2, num_fft)Y2 = np.abs(Y2)
ax=plt.subplot(335)ax.set_title('y2 fft')plt.plot(Y2[:num_fft//2])
"""对信号y进行 FFT"""Y = fft(y, num_fft)Y = np.abs(Y)
ax=plt.subplot(336)ax.set_title('y fft')plt.plot(Y[:num_fft//2])plt.tight_layout()plt.show()

"""倒频谱的定义表述为:信号→功率谱→对数→傅里叶逆变换"""spectrum = np.fft.fft(y, n=num_fft)ceps = np.fft.ifft(np.log(np.abs(spectrum))).real
plt.figure(figsize=(10, 5))plt.plot(np.abs(ceps)[:num_fft//2])plt.title('y->spectrum->log->ifft')plt.ylim([0, 0.2])plt.show()

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python学习-Scipy库信号处理signal
语音识别
计算机视觉系列_8、图像的傅里叶变换
Python 笔记:最全Matplotlib 入门教程 | Python 从入门到放弃
必知必会!噪声、相位噪声、信噪比、噪声系数全在这里
基于Python的FMCW雷达工作原理仿真(附代码)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服