基于Matlab的声音的延迟与混响课程设计论文.doc
《基于Matlab的声音的延迟与混响课程设计论文.doc》由会员分享,可在线阅读,更多相关《基于Matlab的声音的延迟与混响课程设计论文.doc(25页珍藏版)》请在三一办公上搜索。
1、 Dsp课程设计 基于Matlab的声音的延迟与混响摘要数字信号处理技术自诞生以来,有了快速的发展,主要是研究用数字或符号序列表示和处理信号,被广泛应用于各个领域。本次设计是用MATLAB语言对语音信号进行采样分析,并设计数字滤波器对信号进行滤波,比较滤波前后信号特性的变化。用MATLAB提供的GUI界面开发环境设计用户图形界面使布局编程简化。关键词Matlab 语音信号处理正文1. 背景资料:数字信号处理是随着计算机技术的发展而迅速发展起来的一门新兴而古老的学科,它在新的领域如生物医学工程、声学、雷达、地震不、语音通信、数据通信、核科学等学科发挥着重要的作用,而它所采用的各种方法及众多应用已
2、有悠久的历史;同时也是一门具有很强的理论性与实践性,且理论和技术发展都十分迅速的前沿性学科。随着数字化时代的来临,科学技术的进步而生产发展需求的与日俱增,促进了数字信号处理学科的发展,产生了各种巧妙的信号处理算法;特别是计算机技术的飞速发展,为数字信号处理增添了巨大的生命力。数字信号处理主要是研究用数字或符号序列表示和处理信号。处理的目的可以是削弱信号中的多余内容,滤除混杂的噪声和干扰,或者是将信号变换为容易分析和识别的形式,便于估计和选择它的特征参数。例如通过分析和运算,可以估计脑电图或心电图中的某种特征参数,帮助医生查找病因和分析病情,确定合理的治疗方案;又如,信号在传输时,要受到各种干扰
3、,包括失真、衰落和混入的背景噪声,信号处理要排除这些干扰。声音信号是一维连续信号,而计算机只能处理离散信号。为了从离散信号还原连续信号,根据采样定理,可以确定采样频率的最小值。wav文件是一种数字声音文件格式,本课程设计基于Matlab分析了wav声音文件频谱与声音的关系。通过采集个人的一段声音进行频谱分析等处理,然后设计数字滤波器处理这个原始声音的wav文件,并比较滤波以后输出声音信号与原声音信号的异同。2 设计要求(1) 利用Windows下的录音机或其他软件,录制一段语音信号,时间控制在1min左右。(2) 将音频文件加载到matlab中,用合适的方式对信号经行处理(3) 回答以下四个问
4、题:为什么要选择这段语音信号?你怎么处理这段语音信号?为什么你选择用这种方式进行处理?处理结果是什么?3 设计的总体方案与原理3.1 基本思路根据设计要求,我们商定的处理方式是基于matlab来进行声音的延迟与混响3.2 设计流程 录制一段语音信号,时长为15s,并对录制的信号进行采样 语音信号的频谱分析,画出采样后语音信号的时域波形和频谱图 将信号加入延时和混响,再分析其频谱,并与原始信号频谱进行比较 设计几种特殊类型的滤波器:单回声滤波器,多重回声滤波器,无限个回声滤波器,全通结构的混响器,并画出滤波器的频域响应 用自己设计的滤波器对采集的语音信号进行滤波 分析得到信号的频谱,画出滤波后信
5、号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化 回放语音信号3.3 设计的详细原理3.3.1 信号采样(1)采样频率采样频率是指计算机每秒钟采集多少个声音样本,采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。只有采样频率高于声音信号最高频率的两倍时,才能把数字信号表示的声音还原成为原来的声音。(2)采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。声卡的位客观地反映了数字声音信号对输入声音信号描述的准确程度。声卡的主要的作用之一是对声音信息进行录制与回放
6、,在这个过程中采样的位数和采样的频率决定了声音采集的质量。3.3.2 混响与延时(1)混响效果主要是用于增加音源的融合感。自然音源的延时声阵列非常密集、复杂,所以模拟混响效果的程序也复杂多变。常见参数有以下几种:混响时间:能逼真的模拟自然混响的数码混响器上都有一套复杂的程序,其上虽然有很多技术参数可调,然而对这些技术参数的调整都不会比原有的效果更为自然,尤其是混响时间。高频滚降:此项参数用于模拟自然混响当中,空气对高频的吸收效应,以产生较为自然的混响效果。一般高频混降的可调范围为0.11.0。此值较高时,混响效果也较接近自然混响;此值较低时,混响效果则较清澈。扩散度:此项参数可调整混响声阵密度
7、的增长速度,其可调范围为010,其值较高时,混响效果比较丰厚、温暖;其值较低时,混响效果则较空旷、冷僻。预延时:自然混响声阵的建立都会延迟一段时间,预延时即为模拟次效应而设置。声阵密度:此项参数可调整声阵的密度,其值较高时,混响效果较为温暖,但有明显的声染色;其值较低时,混响效果较深邃,切声染色也较弱。频率调制:这是一项技术性的参数,因为电子混响的声阵密度比自然混响稀疏,为了使混响的声音比较平滑、连贯,需要对混响声阵列的延时时间进行调制。此项技术可以有效的消除延时声阵列的段裂声,可以增加混响声的柔和感。调治深度:指上述调频电路的调治深度。(2)延时就是将音源延迟一段时间后,再欲播放的效果处理。
8、依其延迟时间的不同,可分别产生合唱、镶边、回音等效果。当延迟时间在335ms之间时人耳感觉不到滞后音的存在,并且他与原音源叠加后,会因其相位干涉而产生梳状滤波效应,这就是镶边效果。如果延迟时间在50ms以上时,其延迟音就清晰可辨,此时的处理效果才是回音。回音处理一般都是用于产生简单的混响效果。延时、合唱、镶边、回音等效果的可调参数都差不多,具体有以下几项:*延时时间(Dly),即主延时电路的延时时间调整。*反馈增益(FB Gain),即延时反馈的增益控制。*反馈高频比(Hi Ratio),即反馈回路上的高频衰减控制。*调制频率(Freq),指主延时的调频周期。*调制深度(Depth),指上述调
9、频电路的调制深度。*高频增益(HF),指高频均衡控制。*预延时(Ini Dly),指主延时电路预延时时间调整。*均衡频率(EQ F),这里的频率均衡用于音色调整,此为均衡的中点频率选择。由于延时产生的效果都比较复杂多变,如果不是效果处理专家,建议使用设备提供的预置参数,因为这些预置参数给出的处理效果一般都比较好。3.3.3滤波器设计本次设计用IIR滤波器对信号进行滤波,函数名为filter函数filter的调用格式为y=filter(b,a,x)该格式采用数字滤波器对数据进行滤波,既可以用于IIR滤波器,也可以用于FIR滤波器。其中向量b和a分别表示系统函数的分子、分母多项式的系数,若a1,此
10、时表示FIR滤波器,否则就是IIR滤波器。该函数是利用给出的向量b和a,对x中的数据进行滤波,结果放入向量y。(1)单回声滤波器回音可以由简单的延时单元产生。直达声和在R抽样周期后出现的一种单个回音,可以用FIR滤波器产生,微分方程为:yn=xn+xn-R |1传输函数为:H(z)=1+z-R传递函数的幅频响应形状象梳子,这种滤波器又叫梳状滤波器。(2)多重回声滤波器为了产生以间隔R个抽样周期分开的具有指数衰减振幅的多重回声,可用一个以下形式传输函数的FIR滤波器:无限个振幅以指数衰减间隔为R个抽样周期的多重回声可用以下形式传输函数的IIR滤波器生成:IIR多重回声滤波器的基本频率FR=Fs/
11、R,通常锁定在伴音设备的基频上,比如基鼓拍子。(3)无限个回声滤波器的系统函数: , 1 (4)全通结构的混响器的系统函数:全通滤波器的传递函数公式为H(Z)=y(Z)/X(Z)=(-K+Z(-m)/(1-K*Z(-m)其中m为回声延时取样,k为反馈系数。用直接1型表示这个传递函数则为:y(n)=k*x(n)+x(n-m)+k*y(n-m)可见其实际上是一个简单的IIR滤波器,时间n的输出有时间n的输入和m点之前的输入与输出计算而得。由于这个IIR滤波器的频率响应为水平直线,所以被称为全通滤波器。3.3.4 GUI界面图形用户界面GUI (Graphics User Interface) 是由
12、各种图形对象,如图形窗口、图轴、菜单、按钮、文本框等构建的用户界面,是人机交流信息的工具和方法。GUI 设计即可以基本的MATLAB 程序设计为主,也可以鼠标为主利用GUIDE 工具进行设计。GUIDE ( Graphics User Interface Design Environ2ment) 是一个专用于GUI 程序设计的快速开发环境,使用者通过鼠标就能迅速地产生各种GUI 控件,并随心所欲地改变它们的外形、大小及颜色等,从而帮助用户方便地设计出各种符合要求的图形用户界面。调用GUIDE 的方法有2 种,在MATLAB 命令窗口中输入guide 命令,或在MATLAB 主菜单中点击File
13、 New GUI 即可打开一个可编辑的新窗口。在GUIDE 设计环境中,需要用到的工具有属性编辑器、控件布置编辑器、菜单编辑器、对象浏览器、网格标尺设置编辑器以及GUI 应用属性设置编辑器等。GUI 设计面板是GUI 设计工具应用的平台,面板上部提供了菜单和常用工具按钮,左边提供了多种GUI 控件,如按钮、单选按钮、复选框、文本框等。进行GUI 设计时,首先单击GUI 面板左边所需的控件,然后在右边的图形界面编辑区中再次单击某一恰当的位置,这时将在该位置上为图形界面添加一相应的控件,接下来,通过属性编辑器和对齐编辑器对各控件设置相关属性和进行界面布置,以完善界面功能。3.4 程序流程4 程序设
14、计步骤(1) GUI界面的设计function varargout = untitled(varargin)gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, untitled_OpeningFcn, . gui_OutputFcn, untitled_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui
15、_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);endfunction untitled_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); function varargout = untitled_Outpu
16、tFcn(hObject, eventdata, handles) varargout1 = handles.output;(2)原始语音信号时域波形和频谱function pushbutton1_Callback(hObject, eventdata, handles)y,fs,bits=wavread(C:UsersAdministratorDesktop音频信号.wav);%读取原始音频信号y=y(:,1);%只取单信道sound(y,fs,bits);%播放原始信号Y=fft(y);%对原始信号取傅里叶变换subplot(2,2,1:2);plot(y);title(原始信号时域波形)
17、;subplot(2,2,3);plot(abs(Y);title(原始信号幅频);subplot(2,2,4);plot(angle(Y);title(原始信号相频);(3)采样后语音信号的时域波形和频谱function pushbutton2_Callback(hObject, eventdata, handles)y,fs,bits=wavread(C:UsersAdministratorDesktop音频信号.wav,50000 500000);%只取原信号的一部分,即时间区间50000 150000y=y(:,1);Y=fft(y,6001);%抽取6001点subplot(2,2,
18、1:2);plot(y);title(采样信号时域波形);subplot(2,2,3);plot(abs(Y);title(采样信号幅频);subplot(2,2,4);plot(angle(Y);title(采样信号相频);sound(y,fs,bits);%回放采样信号(4)对采样后的信号延时function pushbutton3_Callback(hObject, eventdata, handles)y,fs,bits=wavread(C:UsersAdministratorDesktop音频信号.wav,50000 500000);y=y(:,1);z=zeros(20000,1)
19、;y;%延迟3000Z=fft(z,6001);subplot(2,2,1:2);plot(z);title(延时后时域波形);subplot(2,2,3);plot(abs(Z);title(延时后幅频);subplot(2,2,4);plot(angle(Z);title(延时后相频);sound(y,fs,bits);%回放延迟信号(5)对采样后的信号混响 function pushbutton4_Callback(hObject, eventdata, handles)y,fs,bits=wavread(C:UsersAdministratorDesktop音频信号.wav,50000
20、 150000);y=y(:,1);z=zeros(3000,1);y;y=y;zeros(3000,1);%补3000y1=y+z;%将原始信号与延迟信号相加,产生混响信号Y1=fft(y1,6001);subplot(2,2,1:2);plot(y1);title(混响的时域波形);subplot(2,2,3);plot(abs(Y1);title(混响的幅频);subplot(2,2,4);plot(angle(Y1);title(混响的相频);sound(y,fs,bits);%回放混响信号 (6)单回声滤波器程序设计function pushbutton5_Callback(hObj
21、ect, eventdata, handles)y,fs,bits=wavread(C:UsersAdministratorDesktop音频信号.wav,50000 500000);y=y(:,1);z=zeros(3000,1);y;y=y;zeros(3000,1);a=0.5;R=5000;%滤波器阶数设置,其值越高,回声越明显Bz1=1,zeros(1,R-1),a;%单回声滤波器系统函数分子Az1=(1);%单回声滤波器系统函数分母y2=filter(Bz1,Az1,y);%单回声滤波器系统函数 Y2=fft(y2,6001);h,w=freqz(Bz1,Az1);%求设计的滤波器
22、频谱subplot(3,2,1);plot(abs(h);title(单回声滤波器幅频响应);subplot(3,2,2); plot(angle(h);title(单回声滤波器相频响应);subplot(3,2,3:4);plot(y2);title(单回声滤波器时域图 );subplot(3,2,5);plot(abs(Y2);title(单回声滤波器幅频 );subplot(3,2,6);plot(angle(Y2);title(单回声滤波器相频 );sound(y2,fs,bits); (7)多重回声滤波器程序设计function pushbutton6_Callback(hObjec
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Matlab 声音 延迟 混响 课程设计 论文
链接地址:https://www.31ppt.com/p-4017298.html