MATLAB实现双门限法判别信号

本文介绍了使用MATLAB实现双门限法进行语音信号判别的原理和步骤,包括基本概念、第一级和第二级判决。并详细讲解了双门限判决函数的调用、函数源码及范例应用。
摘要由CSDN通过智能技术生成

一、原理:

1.基本概念:

在这里插入图片描述

2.第一级判决:

在这里插入图片描述

3.第二级判决:

在这里插入图片描述
在这里插入图片描述

二、双门限判决函数

1.函数调用:

在这里插入图片描述
x是语音信号序列,帧长为wlen,帧移位inc,NIS是前导无话段的帧数。在语音处理中为了能估算噪声的情况,在语音前部有一段前导无话段,实际中,有时可能不知道前导无语段的帧数,但可以从语音信号的波形图中估算出签到无话段的时长Is,有了IS就能计算出签到无语段的帧数NIS,公式如下所示:
在这里插入图片描述

2.函数源码:

function [voiceseg,vsl,SF,NF]=vad_ezm1(x,wlen,inc,NIS)
x=x(:);                                 % 把x转换成列数组
maxsilence = 15;                        % 初始化
minlen  = 5;    
status  = 0;
count   = 0;
silence = 0;

y=enframe(x,wlen,inc)';                 % 分帧
fn=size(y,2);                           % 帧数
amp=sum(y.^2);                          % 求取短时平均能量
zcr=zc2(y,fn);                          % 计算短时平均过零率
ampth=mean(amp(1:NIS));                 % 计算初始无话段区间能量和过零率的平均值               
zcrth=mean(zcr(1:NIS));
amp2=2*ampth; amp1=4*ampth;             % 设置能量和过零率的阈值
zcr2=2*zcrth;

%开始端点检测
xn=1;
for n=1:fn
   switch status
   case {
   0,1}                           % 0 = 静音, 1
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值