编程语言
首页 > 编程语言> > 【短时平均过零率】基于matlab语音信号短时平均过零率【含Matlab源码 1721期】

【短时平均过零率】基于matlab语音信号短时平均过零率【含Matlab源码 1721期】

作者:互联网

一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【短时平均过零率】基于matlab语音信号短时平均过零率【含Matlab源码 1721期】

获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、短时平均过零率原理简介

短时平均过零率表示一帧语音中语音信号波形穿过横轴的次数

三、部分源代码

clear all; clc; close all;
filedir=[];                       % 设置路径
filename='s.wav';          % 设置文件名
fle=[filedir filename];           % 构成完整的路径和文件名
[xx,Fs]=audioread(fle);             % 读入数据文件
x=detrend(xx);                    % 消除直流分量
wlen=200; inc=80;                 % 设置帧长、帧移
win=hanning(wlen);                % 窗函数
N=length(x);                      % 求数据长度
X=enframe(x,win,inc)';            % 分帧
fn=size(X,2);                     % 获取帧数
zcr1=zeros(1,fn);                 % 初始化

time=(0:N-1)/Fs;                  % 计算时间坐标
frameTime=frame2time(fn,wlen,inc,Fs);  % 求出每帧对应的时间
% 作图
subplot 211; plot(time,x,'k'); grid;
title('语音波形');
ylabel('幅值'); xlabel(['时间/s' 10 '(a)']);
subplot 212; plot(frameTime,zcr1,'k'); grid;
title('短时平均过零率');
ylabel('幅值'); xlabel(['时间/s' 10 '(b)']);


四、运行结果

在这里插入图片描述

五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]韩纪庆,张磊,郑铁然.语音信号处理(第3版)[M].清华大学出版社,2019.
[2]柳若边.深度学习:语音识别技术实践[M].清华大学出版社,2019.
[3]宋云飞,姜占才,魏中华.基于MATLAB GUI的语音处理界面设计[J].科技信息. 2013,(02)

标签:代码,过零率,源码,matlab,语音,短时,平均
来源: https://blog.csdn.net/TIQCmatlab/article/details/123027463