基于MATLAB的有噪声的语音信号分析与处理设计的源代码及详细分析
答案:2 悬赏:50 手机版
解决时间 2021-02-25 09:21
- 提问者网友:情歌越听越心酸
- 2021-02-25 01:40
我是一个初学者,所以最好附加调试时的截图谢谢
最佳答案
- 五星知识达人网友:何以畏孤独
- 2021-02-25 02:32
这是我刚做的,运行是正确的!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);
m11=fft(z11); %求滤波后的信号
figure(3);
subplot(2,1,1);plot(z11);title('滤波后的信号波形');
subplot(2,1,2);plot(abs(m11),'r');title('滤波后信号的频谱');
原语音信号程序
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);
m11=fft(z11); %求滤波后的信号
figure(3);
subplot(2,1,1);plot(z11);title('滤波后的信号波形');
subplot(2,1,2);plot(abs(m11),'r');title('滤波后信号的频谱');
全部回答
- 1楼网友:蕴藏春秋
- 2021-02-25 03:26
搜一下:基于MATLAB的有噪声的语音信号分析与处理设计的源代码及详细分析
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯