谁有pudn的账号 帮忙下个程序

网址:http://www.pudn.com/downloads102/sourcecode/speech/detail420892.html邮箱:sagitta0311... 网址:http://www.pudn.com/downloads102/sourcecode/speech/detail420892.html
邮箱:sagitta0311@126.com
或者发链接,都行
谢谢~
展开
 我来答
酷呆爱死呆
2011-05-09 · TA获得超过4240个赞
知道大有可为答主
回答量:507
采纳率:100%
帮助的人:1150万
展开全部
直接给你粘过来:
clear all;
clc;
%基于自适应子带频谱熵的稳健性语音端点检测激枝判
N=512;%
Winsiz=512;%帧长
Shift=256;%帧移
[x,Fs]=wavread('dbabble.wav');
x=double(x);
%对信号做预加重处理
x=filter([1 -0.9375], 1, x);

nseg=floor((length(x)-Winsiz)/Shift)+1;
A=zeros(Winsiz/2+1,nseg);

%下面循环是x信号的加窗处理并求出各点频谱能量
for i=1:nseg
n1=(i-1)*Shift+1;n2=n1+(Winsiz-1);
xx=x(n1:n2);xx=xx.*hamming(Winsiz);
y=fft(xx,N);
y=y(1:Winsiz/2+1);
y=y.*conj(y);
A(:,i)=y;
end
%计算总能量
Esum=0;
for i=1:nseg
for j=1:Winsiz/2
Esum=Esum+A(j,i);
end
end
%下面是计算每一帧搭型的谱的能量
for i=1:nseg
for n=1:Winsiz/2
E(n,i)=A(n,i);
end
end
%下面是计算每帧中每个样本点的概率分布
for i=1:nseg
for n=1:Winsiz/2
P(n,i)=E(n,i)/Esum;
end
end
%下面是计算每一帧的谱熵值
H=zeros(1,nseg);
for i=1:nseg
for n=1:Winsiz/2
H(i)=H(i)-P(n,i)*log(P(n,i)+eps);
end
end
%画出wav文件的波形和对应的信息熵
subplot(311)
plot(x);
subplot(312)
plot(H);
%为了消除单个点明改受噪声的影响,现在把4点放在一起,变成一子带,4*32=128
Eb=zeros(64,nseg);Ebsum=0;
for i=1:nseg
for m=1:64
for k=(4*m-3):4*m
Eb(m,i)=Eb(m,i)+E(k,i);
end
Ebsum=Ebsum+Eb(m,i);
end

end
%实现文中公式(8)
for i=1:nseg
for k=1:64
Pb(k,i)=Eb(k,i)/Ebsum;
end
end
%实现文中公式(9)
Hb=zeros(1,nseg);
for i=1:nseg
for k=1:64
Hb(i)=Hb(i)-Pb(k,i)*log(P(k,i)+eps);
end
end
%画出wav文件的波形和对应的信息熵
subplot(313)
plot(Hb);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式