音频特征提取——常用音频特征

本文详细介绍了音频特征提取中的重要概念,包括过零率、短时能量、短时自相关函数、短时平均幅度差等,并提供了相应的理论分析和MATLAB代码示例。此外,还探讨了短时傅里叶变换、语谱图、短时功率谱密度、谱熵、基频和共振峰的计算方法,是理解音频信号处理的宝贵资源。
摘要由CSDN通过智能技术生成

作者:桂。

时间:2017-05-05  21:45:07

链接:http://www.cnblogs.com/xingshansi/p/6815217.html 


前言

主要总结一下常用的音频特征,并给出具体的理论分析及代码。

一、过零率

过零率的表达式为:

其中N为一帧的长度,n为对应的帧数,按帧处理。

理论分析:过零率体现的是信号过零点的次数,体现的是频率特性。因为需要过零点,所以信号处理之前需要中心化处理。

code(zcr1即为过零率):

for i=1:fn
    z=X(:,i);                     % 取得一帧数据
    for j=1: (wlen- 1) ;          % 在一帧内寻找过零点
         if z(j)* z(j+1)< 0       % 判断是否为过零点
             zcr1(i)=zcr1(i)+1;   % 是过零点,记录1次
         end
    end
end

二、短时能量

短时能量的表达式为:

理论分析:短时能量体现的是信号在不同时刻的强弱程度。

code:

for i=1 : fn
    u=X(:,i);              % 取出一帧
    u2=u.*u;               % 求出能量
    En(i)=sum(u2);         % 对一帧累加求和
end

三、短时自相关函数

短时自相关函数定义式为:

理论分析:学过信号处理的都应该知道,信号A与信号B翻转的卷积,就是二者的相关函数。其中是因为分帧的时候,加了窗函数截断,w代表窗函数。

code:假设一帧截断的信号

r = xcorr(signal);  

  这与直接利用卷积的方式等价:

给出卷积的实现:

function output_signal=my_direct_convolution(input_signal,impulse_response)
% Input:
%    input_signal: the input signal
%    impulse_response: the impulse response
% Output:
%    output_signal:the convolution result
N=length(input_signal);%define length of signal
K=length(impulse_response);%define length of impulse response
output_signal=zeros(N+K-1,1);%initializing the output vector
xp=[zeros(K-1,1);input_signal;zeros(K-1,1)];
for i=1:N+K-1
    output_signal(i)=xp(i+K-1:-1:i)'*impulse_response;
end

  卷积也可以借助FFT快速实现。

调用卷积的函数:

r1 = my_direct_convolution(signal,signal(end:-1:1));

  图中可以看出r与r1完全等价:

四、短时平均幅度差

假设x是加窗截断后的信号,短时平均幅度差定义:

理论分析:音频具有周期特性,平稳噪声情况下利用短时平均幅度差可以更好地观察周期

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值