资源简介
使用matlab仿真,加入谱减法去噪处理,门限值可调整,含加高斯白噪声处理
代码片段和文件信息
%基于自适应子带频谱熵的稳健性语音端点检测
clear all;
clc;
close all;
N = 1024;%FFT变换的点数;
Winsiz = 256;%帧长;
Shift = 90;%帧移
y = wavread(‘022.wav‘);
x = awgn(y 40‘measured‘‘linear‘);
len = length(x);
%%nois=0.05*rand(len1);
%x=x+nois;
%x=x./max(x);
x = x / max(abs(x));
% 对信号做预加重处理
x=filter([1 -0.9375] 1 x);
nseg=floor((length(x)-Winsiz)/Shift)+1;
A=zeros(Winsiz/2+1nseg);
%下面循环是x信号的加窗处理并求出各点频谱能量
for i=1:nseg
n1=(i-1)*Shift+1;
n2=n1+(Winsiz-1);
xx=x(n1:n2);
xx=xx.*hamming(Winsiz);
y=fft(xxN);
y=y(1:Winsiz/2+1);
y=y.*conj(y);
A(:i)=y;
end
%计算总能量
Esum = zeros(1nseg);
for i=1:nseg
for j=1:Winsiz/2
Esum(i)=Esum(i)+A(ji);
end
end
%下面是计算每一帧的谱的能量
for i=1:nseg
for n=1:Winsiz/2
E(ni)=A(ni);
end
end
%下面是计算每帧中每个样
- 上一篇:用matlab实现语音识别的算法
- 下一篇:MATLAB在时间序列建模预测及程序代码
评论
共有 条评论