资源描述:
《基于MATLAB地语音信号加回声技术地实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《数字信号处理》课程设计报告基于MATLAB的语音信号加回声技术的实现基于MATLAB的语音信号加回声技术的实现一、设计目的回波是现代通信中影响通信质量的噪声干扰。本课程设计要求用MATLAB语言编程实现回波信号的产生。在进一步娴熟运用matlab这种以数值计算和数据图示为主的计算机软件的同时,加深对声频信号中噪声的认识。掌握MATLAB程序设计,为以后的毕业设计奠定一定的基础。二、设计任务提取一段音频信号,用MATLAB自带的函数功能读取语音信号,通过延迟叠加产生回波信号信号来模拟回声。三、设计原理1,语音信号采集:使用现成的“*.wav”格式的声音信号,matlab会自动进行16khz的采
2、样。2,声音信号的读取:使用MATLAB中的wavread()函数读取,记录信号,采样率fs。3,带回波信号的产生:利用MATLAB中的基本矩阵计算产生原始信号的延迟以及只有一个衰减延迟的回波信号附加到原始信号回波信号。四、设计过程4.1声音信号x[n]的产生1、制作一段wav格式的音频,然后把它存放到对应程序段所在的磁盘中,用MATLAB函数wavread()将其提取出来绘制其时域波形对此音频信号用FFT作谱分析,用plot()函数绘制其图形。信号采集程序如下:%声音信号的提取[x,fs]=wavread('luyin.wav');%把语音信号进行加载入Matlab仿真软件平台中wavpla
3、y(x,fs);%回放语音信号。或者sound(x,fs)figure(1);N=length(x);%求语音信号的长度subplot(3,1,1);plot(x(1:N));title('原始信号波形');y=fft(x,N);%傅立叶变换subplot(3,1,2);plot(abs(y));title('原始信号幅值');subplot(3,1,3);plot(angle(y));title('原始信号相位');2,产生的原是信号的波形,以及其幅度、相位谱如下所示:4.2声音信号y[n]的产生1,参数的设置:因为人耳能分辨出的声音延迟至少是0.1s,因此,最小延迟量不能小于0.1s。在此
4、先先延迟时间为0.2s,即最小延迟量N=0.2*fs=0.2*16000=3200。在已有声音信号x的基础上产生带回声的声音信号,可以表达为在于娜信号的基础上叠加其延时的分量。假设只有一个回声的情况下,可简化其模型为y(n)=x(n)+ax(n-N)A为反射系数;N为延迟时间。这里设N=3200a=0.42,利用矩阵置零产生x的延迟,以及得到y信号:为了保证图像的完整性,对读取的信号先延长4000个采样点,将原始信号延长3200个采样点,然后再在后面补上800个点,得到如下代码:%回波的产生[x,fs]=wavread('luyin.wav');%把语音信号进行加载入Matlab仿真软件平台中
5、。N=length(x);%语音信号的长度。x1=x(1:N);x2=x(1:N);x1=[x1,zeros(1,4000)];%zeros(1,4000)产生1行3000列全零矩阵加到x1后面。x2=[zeros(1,3200),0.4*x2,zeros(1,800)];%N+3200+x=N+4000,得x=800y=x1+x2;%加入回音的信号。figure(2);subplot(3,1,1);plot(y(1:3200.+N));title('含回声信号波形');y1=fft(y);subplot(3,1,2);plot(abs(y1));title('含回声信号幅值');subplo
6、t(3,1,3);plot(angle(y1));title('含回声信号相位');sound(y,fs);其波形图如下五、收获与体会通过此次试验,熟悉了MATLAB软件的应用,学会了软件的基本技能,对其常用函数有了进一步的研究,同时学会了应用数学软件对信号进行分析的方法,加深了对数字信号处理可曾中相关概念的理解,对回声的产生有了更一步的认识。总体而言,这次试验只是对信号的简单处理,但是在程序设计中遇到很多问题,这些都是在平时学习中所不曾注意到的,面对这些问题我通过查阅资料、网络、与同组同学的探讨,得到很大程度的解决。