💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
⛳️赠与读者
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑。哲学是科学之母,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎
💥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资源获取