matlab语音信号分析源码,保存基于MATLAB的有噪声的语音信号分析与处理设计的源代码及详细分析...

基于MATLAB的有噪声的语音信号分析与处理设计的源代码及详细分析

我是一个初学者,所以最好附加调试时的截图谢谢

这是我刚做的,运行是正确的!ly是语音信号的名字,截图自己运行就会有!

原语音信号程序

figure(1);

[y,fs,nbits]=wavread ('ly');

sound(y,fs,nbits); %回放语音信号

n = length (y) ; %求出语音信号的长度

Y=fft(y,n); %傅里叶变换

subplot(2,1,1);plot(y);title('原始信号波形');

subplot(2,1,2);plot(abs(Y));title('原始信号频谱')

加噪语音信号程序

figure(2);

[y,fs,nbits]=wavread ('ly');

n = length (y) ; %求出语音信号的长度

t=[0:1/8000:2 zeros(1,23520-1)]';

noise=0.04*sin(10000*pi*t);%sin函数产生噪声

s=y+noise; %语音信号加入噪声

sound(s);

subplot(2,1,1);plot(s);title('加噪语音信号的时域波形');

S=fft(s); %傅里叶变换

subplot(2,1,2);plot(abs(S));title('加噪语音信号的频域波形')

滤波后的信号程序

Ft=8000;

Fp=1000;

Fs=1200;

wp=2*pi*Fp/Ft;

ws=2*pi*Fs/Ft;

fp=2*Ft*tan(wp/2);

fs=2*Fs*tan(wp/2);

[n11,wn11]=buttord(wp,ws,1,50,'s'); %求低通滤波器的阶数和截止频率

[b11,a11]=butter(n11,wn11,'s'); %求S域的频率响应的参数

[num11,den11]=bilinear(b11,a11,0.5); %利用双线性变换实现频率响应S域到Z域的变换[y,fs,nbits]=wavread ('ly');

n = length (y) ; %求出语音信号的长度

t=[0:1/8000:2 zeros(1,23520-1)]';

noise=0.04*sin(10000*pi*t);%sin函数产生噪声

s=y+noise; %语音信号加入噪声

z11=filter(num11,den11,s);

sound(z11);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值