通过短时倒谱(Cepstrogram)计算进行时-倒频分析研究(Matlab代码实现)

  💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

 ⛳️赠与读者

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


 ⛳️赠与读者

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑。哲学是科学之母,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

💥1 概述

短时倒谱(Cepstrogram)分析是一种将短时傅里叶变换与倒谱计算结合起来的方法,用于时-倒频分析。这种技术在语音处理、地震信号分析和故障诊断等领域中得到了广泛应用。下面是一个概述,介绍如何通过短时倒谱计算进行时-倒频分析研究:

基本步骤

1. **短时傅里叶变换 (STFT)**
   - 对输入信号进行短时傅里叶变换,得到时频表示。
   - 选择窗口函数(如汉明窗)和窗口长度,决定每个时间片段的频谱计算。
   - 执行傅里叶变换,得到每个时间片段的频谱。

2. **计算功率谱密度 (PSD)**
   - 对通过 STFT 获得的频谱执行模方操作,得到功率谱密度。

3. **对数变换**
   - 对功率谱密度进行对数变换,以获得对数功率谱。
   - 这个步骤有助于处理不同幅度的频谱成分,使弱小成分更容易被识别出来。

4. **逆傅里叶变换**
   - 对对数功率谱执行逆离散傅里叶变换 (IDFT) 以获得倒谱(Cepstrum)。
   - 倒谱反映了频谱的细节结构,在语音处理中可揭示声道的特征。

5. **短时倒谱图 (Cepstrogram)**
   - 将上述过程应用于信号的每个时间片段,得到一系列倒谱。
   - 堆叠这些倒谱,形成短时倒谱图 (Cepstrogram)。
   - 短时倒谱图展示了信号随时间变化的倒频特征。

 应用实例

1. **语音处理**
   - 分析语音信号中的不同组件(如基频和谐波结构)。
   - 在语音识别系统中,用于提取特征(如 MFCC 特征)。

2. **地震信号分析**
   - 分析地震波形,区分不同类型的地震事件。
   - 检测地下结构的反射和散射特性。

3. **机械故障诊断**
   - 分析机械振动信号,检测故障特征频率。
   - 区分正常工作状态和故障状态。

实际操作建议

1. **选择合适的窗口函数和长度**:这将影响到短时倒谱的分辨率和计算性能。
2. **平滑处理**:有时候进行一些平滑处理(如中值滤波)可以减少噪声干扰,提高特征的识别率。
3. **特征提取和分类**:结合机器学习算法,从短时倒谱中提取特征进行分类和识别。

1)矩阵,其中列为时间,行为倒频的单边实数倒谱;
2)倒频向量;
3)时间向量。

为了方便起见,在函数开始处给出了输入和输出参数。

该代码基于以下理论:

[1] D. Childers, D. Skinner, R. Kemerait. “The Cepstrum: A Guide to Processing”. Proceedings of the IEEE, Vol. 65, No. 10, October 1977, pp. 1428-1443.

[2] A. Noll. “Short-time spectrum and cepstrum techniques for vocal-pitch detection”. J. Acoust. Soc. Amer., Vol. 36, No. 2, pp. 296–302, Feb. 1964.

[3] J. Benesty, M. Sondhi, Y. Huang. Springer Handbook of Speech Processing. Berlin, Springer, 2008.

📚2 运行结果

部分代码:

% load a sound file
[x, fs] = audioread('sample2.wav'); % load an audio file
x = x(:, 1);                        % get the first channel
x = x/max(abs(x));                  % normalize the signal
N = length(x);                      % signal length
t1 = (0:N-1)/fs;                    % time vector

% define the analysis parameters
wlen = 1024;                        % window length (recomended to be power of 2)
hop = 256;                          % hop size (recomended to be power of 2)

% calculate the cepstrogram
win = hamming(wlen, 'periodic');
[C, q, t2] = cepstrogram(x, win, hop, fs);

% some conditioning
C = C(q > 0.5e-3, :);               % ignore all cepstrum coefficients for 
                                    % quefrencies bellow 0.5 ms  
q = q(q > 0.5e-3);                  % ignore all quefrencies bellow 0.5 ms
q = q*1000;                         % convert the quefrency to ms

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1] D. Childers, D. Skinner, R. Kemerait. “The Cepstrum: A Guide to Processing”. Proceedings of the IEEE, Vol. 65, No. 10, October 1977, pp. 1428-1443.

[2] A. Noll. “Short-time spectrum and cepstrum techniques for vocal-pitch detection”. J. Acoust. Soc. Amer., Vol. 36, No. 2, pp. 296–302, Feb. 1964.

[3] J. Benesty, M. Sondhi, Y. Huang. Springer Handbook of Speech Processing. Berlin, Springer, 2008.

🌈4 Matlab代码实现

资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取

                                                           在这里插入图片描述

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值