武汉理工大学《信息群处理课程设计》报告书
8. 语音信号通过全通滤波器
图6.8全通结构混响的时域波形图和频谱图
分析:1) 从时域上看,波形与滤波前的波形大体相同,幅度上有微小变化; 2)从频谱图上看,幅值略微减小,曲线总体趋势向下。
17
武汉理工大学《信息群处理课程设计》报告书
6 小结与体会
通过此次的课程设计,我对语音信号的延时和混响有了进一步的认识,能明白其的原理,特别是对单回声滤波器、多重回声滤波器、全通混响器等几种特别特殊滤波器的系统函数和编程实现都有一定了解。此次的课设过程中,把它与我们所学的专业知识数字信号处理联系在一起,进一步的加深了对数字信号处理的相关知识的学习。
在设计的过程中,由于对所涉及的几种特殊滤波器之前没有接触过,所以遇到了很大的困难,而且关于在数字处理中,对语音信号里加入延时和混响的的资料都非常的少,这给开始的设计带来了很大的麻烦。经过各方面的搜索,最终通过在学校的电子阅览室查询和图书馆借阅相关的书籍得出了设计的方案。
这次的课设中,在多次的编程调试过程中,我对 matlab的掌握更加的熟练了。在实际使用这个软件的过程中,能深刻的体会到matlab的各项功能。作为通信工程专业的学生,熟练的使用matlab软件对我们来说是很重要的技能。 此次的综合课设,涉及的知识较广,也有一定的难度,通过这段时间的努力,从着手开始查阅资料到编程不断调试,直至最后编程通过,在这个过程中,自己独立处理问题的能力得到了锻炼。在以后的学习和工作中常常需要接触到各种新的知识点,很多东西之前都不懂,这就要求我们在已有的知识上,有很强的自学能力,进而达到预期目标。此次课设对我来说无疑是一次很好的提升。
18
武汉理工大学《信息群处理课程设计》报告书
参考文献
[1] 刘慧颖,《MATLAB R2007基础教程》,清华大学出版社. [2] 周开利,《MATLAB基础及其应用教程》,北京大学出版社. [3] 杨述斌,《数字信号处理实践教程》,华中科技大学出版社. [4] 刘幺和、宋庭新,《语音识别与控制技术》,科学出版社. [5] 赵力,《语音信号处理》,机械工业出版社. [6] 胡航,《语音信号处理》,哈尔滨工业大学出版社. [7] 王一世,《数字信号处理》,北京理工大学出版社. [8] 陈杰,《Matlab宝典》,电子工业出版社.
19
武汉理工大学《信息群处理课程设计》报告书
附录
MATLAB程序:
%原始信号
x1=wavread('E:\\mm.wav',[10000 40000]); %读取信号 figure(1);plot(x1);title('原始信号');
sound(5*x1,40000); %对原始声音的回放 %采样信号
[x,fs,bits]=wavread('E:\\mm.wav',[10000 40000]); x=x(:,1); %只取单声道 sound(5*x,fs); %对声音的回放 n1=0:2000; N=size(x,1);
figure(2);subplot(2,1,1);plot(x);title('采样后语音信号的时域波形'); Y=fft(x,2001); subplot(2,1,2); %对信号做2001点FFT变换
plot(n1(1:1000),Y(1:1000)); title('采样后语音信号的频谱图'); %信号幅度 %延时的信号
[x,fs,bits]=wavread('E:\\mm.wav',[10000 40000]); x=x(:,1); %只取单声道 n1=0:2000;
z=[zeros(200,1);x]; figure(3); %信号的延时
subplot(2,1,1);plot(z); title('延时后的时域图'); %画出延时后的信号时域图 Z=fft(z,2001);
subplot(2,1,2);plot(n1(1:1000),Z(1:1000)); %延时后的信号频谱图 title('延时后的频谱图 '); sound(5*z,fs);
%混响后信号
[x,fs,bits]=wavread('E:\\mm.wav',[10000 40000]); %读取语音信号 x=x(:,1); %只取单声道 n1=0:2000;
z=[zeros(200,1);x]; %对语音信号进行延时
x=[x;zeros(200,1)]; %使语音信号与延时后信号同等长度 y1=x+z; %信号的混响
figure(4);subplot(2,1,1);plot(y1); title('混响的时域图'); %混响时域图 Y1=fft(y1,2001); %对混响信号2001点的FFT变换 subplot(2,1,2);plot(n1(1:1000),Y1(1:1000)); %混响频谱图 title('混响的频谱图');
sound(5*y1,fs); %回放混响后的信号 %单回声滤波器
[x,fs,bits]=wavread('E:\\mm.wav',[10000 40000]); %读取语音信号 x=x(:,1); %只取单声道 n1=0:2000;
a=0.5; %a取小于等于1
20
武汉理工大学《信息群处理课程设计》报告书
z=[zeros(200,1);x]; %对语音信号进行延时
x=[x;zeros(200,1)]; %使语音信号与延时后信号同等长度 yy1=x+z*0.5; %信号经单回声滤波
figure(5);subplot(2,1,1);plot(yy1);title('单回声滤波器时域图'); YY1=fft(yy1,2001); %对单回声信号做2001点的FFT变换 subplot(2,1,2);plot(n1(1:1000),YY1(1:1000)); %单回声信号频谱图 title('单回声滤波器频谱图');
sound(5*yy1,fs,bits); %回放经单回声滤波器后的语音信号 %无限回声滤波器
[x,fs,bits]=wavread('E:\\mm.wav',[10000 40000]); %读取语音信号 x=x(:,1); %只取单声道 n1=0:2000;
a=0.5; %a取小于等于1 Bz=[0,0,0,0,0,0,0,0,0,0,1]; %分子的系数 Az=[1,0,0,0,0,0,0,0,0,0,-a]; %分母的系数 yy2=filter(Bz,Az,x); %滤波器进行滤波
figure(6);subplot(2,1,1);plot(yy2); %无限回声滤波器时域波形 title('无限个回声滤波器时域波形');
YY2=fft(yy2,2001); %经无限回声滤波器后的信号做2001点的FFT变换
subplot(2,1,2);plot(n1(1:1000),YY2(1:1000)); %无限回声滤波器频谱图
title('无限个回声滤波器频谱图 ');
sound(5*yy2,fs,bits); %回放经无限回声滤波器后的语音信号 pause(2);
%多重回声滤波器
[x,fs,bits]=wavread('E:\\mm.wav',[10000 40000]); x=x(:,1); %只取单声道 n1=0:2000; a=0.5; N=5
Bz1=[1,0,0,0,0,0,0,0,0,0,-0.5^N]; %分子的系数 Az1=[1,0,0,0,0,0,0,0,0,0,-0.5]; %分母的系数
yy3=filter(Bz1,Az1,x); figure(7); %滤波器进行滤波
subplot(2,1,1);plot(yy3); title('多重回声滤波器的时域图')%多重回声滤波器的混响器时域波形
YY3=fft(yy3,2001); %经多重回声滤波器后的信号做2001点的FFT变换
subplot(2,1,2);plot(n1(1:1000),YY3(1:1000)); %多重回声滤波器的频谱图 title('多重回声的频谱图')
sound(5*yy3,fs,bits); %回放经无限回声滤波器后的语音信号
%全通结构的混响器
[x,fs,bits]=wavread('E:\\mm.wav',[10000 40000]); %读取语音信号 x=x(:,1); %只取单声道 n1=0:2000;
21
武汉理工大学《信息群处理课程设计》报告书
a=0.5; %a取小于等于1
Bz1=[a,0,0,0,0,0,0,0,0,0,1]; %分子的系数 Az1=[1,0,0,0,0,0,0,0,0,0,a]; %分母的系数
yy4=filter(Bz1,Az1,x); figure(8); %滤波器进行滤波
subplot(2,1,1);plot(yy4); title('全通结构混响器的时域图')%全通结构的混响器时域波形
YY4=fft(yy4,2001); %经全通结构的混响器后的信号做2001点的FFT变换
subplot(2,1,2);plot(n1(1:1000),YY4(1:1000)); %全通结构的混响器频谱图
title('全通结构混响器的频谱图')sound(5*yy4,fs,bits);
%回放经全通结构的混响器后的语音信号
22