harejavahill 发表于 2007-1-30 13:48

帮我看看我的程序错在哪里

各位高手请帮我编个程
就是知道一被污染的语音s,然后我想用不同的阀值对其去噪,看去噪结果,可我不知道怎样引用那些阀值方法。比如rigrsure,'heursure,sqtwolog,minimaxi方法。下面是小弟编的一个程序:
fs=22050;                  %语音信号采样频率为22050
x1=wavread('d:\huzhoushifanxueyuan.wav'); %读取语音信号的数据,赋给变量x1   
figure(1)
plot(x1)                   %做原始语音信号的时域图形
title('原始语音信号');
xlabel('时间 n');
ylabel('幅值 n');
x2=x1+0.04*randn(size(x1));
figure(2)
plot(x2)
title('加噪后的信号');
xlabel('时间 n');
ylabel('幅值 n');
thr=thselect(x2,'heursure')
ythard=wthresh(x2,'h',thr);
ytsoft=wthresh(x2,'s',thr);
figure(3);
plot(ythard);
title('硬阈值信号');
figure(4);
plot(ytsoft);
title('软阈值信号');
可是结果是一条直线,绝对是程序错误了,请告诉我的错误点。谢谢。

请问如何能实现去噪。(希望有源程序,十分感谢!)

[ 本帖最后由 xinyuxf 于 2007-7-25 15:16 编辑 ]
页: [1]
查看完整版本: 帮我看看我的程序错在哪里