shiyan4.asv

来自「MATLAB中常用的程序」· ASV 代码 · 共 50 行

ASV
50
字号
%在噪声环境下语音信号的增强 

%语音信号为读入的声音文件 

%噪声为正态随机噪声ns = awgn(s,16) ;

[x, Fs,Nbits]=wavread('cat.wav');
subplot(311),plot(x),title('原始信号');
count1=length(x);
save  x
y= awgn(x,16) ;
count2=length(y)

subplot(312),plot(y),title('加噪后的信号');

[thr,sorth,keepapp]=ddencmp('den','wv',x);
xd=wdencmp('gbl',x,'sym4',2,thr,sorth,keepapp)
subplot(313),plot(xd),title('消噪后的信号');

%=============================
[c,l]=wavedec(x,3,'db1');      %用db1小波对原始信号进行3层分解
a3=appcoef(c,l,'db1',3);       %提取小波分解的低频系数
d3=detcoef(c,l,3);             %提取第三层高频系数
d2=detcoef(c,l,2);             %提取第二层高频系数
d1=detcoef(c,l,1);             %提取第一层高频系数
%=============================
%对信号进行强制性消噪处理并图示结果
dd3=zeros(1,length(d3));
dd2=zeros(1,length(d2));
dd1=zeros(1,length(d1));
c1=[a3 dd3 dd2 dd1];
s1=waverec(c1,l,'db1');            %用db1小波从小波分解系数[c1,l]重建原信号
figure(2),subplot(2,2,2);
plot(s1);grid;
title('强制消噪后的信号');
%=============================



%读出带噪语音信号
wavwrite(x,'e:\c'); 

%读出处理后语音信号
wavwrite(y,'e:\c1');
%读出带噪语音信号,存为'101.wav'
wavwrite(xd,'e:\c2'); 



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?