ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:237.13KB ,
资源ID:12927688      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12927688.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字信号处理课程设计.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数字信号处理课程设计.docx

1、数字信号处理课程设计 数字信号处理课程设计 课程总结报告题 目运用matlab的数字音效处理系统设计学 院电子信息工程学院专 业通信工程姓 名赵亚学 号P2* 队 员吴双胜 程勇20 15 年 12月 21日安徽大学电子学院通信工程系1、设计的目的和意义1.1设计的目的和意义现在随着时代的发展,人类已开始进入了信息化时代,用现代手段研究语音信号,使人们能更加有效地产生、传输、存储、获取和应用语音信息,这对于促进社会的发展具有十分重要的意义。学习了数字信号处理以及相关课程,就想自己动手做一段音频处理,来锻炼自己的动手能力,把知识学以致用。一般的录音是单声道的,放音时也是由一个扬声器发出声音,感觉

2、不到立体感,因此就需要我们对声音进行处理,使得声音信号在平时听起来也可以产生立体感。 综合所学的数字信号处理知识,利用MATLAB语言编程进行单回声、多回声、混音和和声的设计,并对处理后的信号进行频谱分析,实现的单回声、多回声、混音及和声的产生。同时通过处理音乐,我们也能更加的了解编码,熟悉运用MATLAB软件来处理音乐、声音,并熟悉数字信号处理方面的理论知识。1.2关于MATLAB软件: 1.MATLAB语言具备高效的数值计算及符号计算功能,能使用户从繁杂的 数学运算分析中解脱出来; 2. 具有完备的图形处理功能,实现计算结果和编程的可视化; 3. 友好的用户界面及接近数学表达式的自然化语言

3、,使学者易于学习和掌握; 4. 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。1.3课题要求1.课题要求(1).录制采集一段自己的语音信号;(2).设计滤波器,实现单回声、多回声、混响效果和和声效果;2、实现方案2.1总体方案 首先,对原始的音频信号进行频谱分析;然后通过数字信号处理对原声信号进行延时,衰减,产生单回声信号及多回声信号,通过图形与原声信号进行比较。 混响效果主要是用于增加音源的融合感。自然音源的延时声阵列非常密集、复杂,所以模拟混响效果也复杂多变。声音在一个密闭的控件到达听众时,包含直达声、早期的反射和混响几部分。早期的反射有几个

4、空间上临近的直达声的基本延迟和衰减组成,而混响则有密集的回声组成。 当振幅有少量变换并声音之间有很少的时间差别时,会产生和声效果。延时可用如下函数实现: 注意:在时刻n处的值通常是一个非整数值,在实际视线中,输出样本值需要用到内插法进行计算。2.2设计流程图打开界面选择功能原信号分析输出原信号分析波形原信号取样设计一个FIR滤波器,进行延时及衰减处理,得到回声信号。频谱分析,绘出信号的频谱图以及时域波形单回声设计一个IIR滤波器,进行延时及衰减处理,得到回声信号。将每一级回声相对于上一级回声一次衰减和延时R个周期频谱分析,绘出信号的频谱图以及时域波形多回声设计全通滤波器,进行延时和叠加,达到混

5、响效果。频谱分析,绘出信号的频谱图以及时域波形混响设计滤波器,把原信号进行不同延迟和衰减,叠加达到和声效果。频谱分析,绘出信号的频谱图以及时域波形和声 1.通过计算机中的y=fft(x)傅里叶变换,对原声信号和回声信号进行频谱分析。 2.通过设计FIR、IIR滤波器对原声信号进行衰减、延时产生一次、多次(次数可通过N改变,此处以三次为例)。三、设计原理3.1回声部分设计原理 回声的定义:当声音投射到距离声源有一段距离的大面积上时,声能的一部分被吸收,而另一部分声能会被反射会俩,如果听者听到由声源直接发出的声和反射回来的声的时间间隔超过1/10秒,就能分辨这是两个声音,将返回的声音成为“回声”。

6、 1、单回声滤波器: 回声可以由简单的延时单元产生。直达声和在R抽样周期后出现的一种单个回音可以用FIR滤波器产生。微分方程为: y(n)=x(n)+x(n-R)该差分方程的系统函数可表示为: H(z)=1+传递函数的幅频响应形状像梳子,这种滤波器又叫做梳状滤波器 此滤波器为FIR滤波器,其结构图如下: 图2.2FIR滤波器结构2、多重回声滤波器: 为了产生以间隔R个抽样周期分开的具有指数衰减振幅的多重回声,可用一个以下形式传输函数的IIR滤波器: 无限个振幅以指数衰减间隔为R个抽样周期的多重回声可用以下形式传输函数的IIR滤波器生成: IIR滤波器结构图: 图2.3IIR滤波器结构图3.2混

7、响部分设计原理混响则有密集的回声组成。上述多重回声滤波器不能提供自然声音混响。有其幅频特性可知其幅度响应对于所有频率不是常数,不能达到应产生的效果。为了产生更真实的混响效果,采用全通结构的混响器器,其传输函数为:3.3和声部分设计原理和声是对原始信号进行不同程度的衰减和延时,最后这些信号和原信号进行叠加会产生和声效果。延时可用如下函数实现:四、设计过程4.1设计方案 1.读取语音信号与回放 一段合适的原声信号,用“x,fs=audioread(d:v4.mp3);”来读取录制好的语音信号,这是以采样频率fs来读取语音,并将采样信号值放入x中。用sound(x,fs)对声音信号进行回放。 2.傅

8、里叶变换FFT 傅里叶变换调用格式:y=fft(x) 其中,x是序列,y是序列的FFT,x可以为一向量或矩阵,若x为一向量,y是x的FFT。且和x相同长度。若x为一矩阵,则y是对矩阵的每一列向量进行FFT。如果x长度是2的幂次方,函数fft执行高速基-2FFT算法;否则fft执行一种混合基离散傅里叶变换算法,计算速度大较慢。 3.函数filter函数filter的调用格式为:y=filter(b,a,x)该格式采用数字滤波器对数据进行滤波,既可以用于IIR滤波器,也可以用于FIR滤波器。其中向量b和a分别表示系统函数的分子、分母多项式的系数,若a=1,此时表示FIR滤波器,否则就是IIR滤波器

9、。该函数是利用给出的向量b和a,对x中的数据进行滤波,结果放入向量y。 4.函数zearos 函数的一种调用格式为:B=zeros(n)返回一个n*n的矩阵,其元素都为0,如果参数n不是一个标量就会报错。 函数的另一种调用格式为:B=zeros(m,n)或B=zeros(m n)返回一个m*n的零矩阵。 函数的另一种调用格式为:B=zeros(m,n,p,.)或B=zeros(m n p .)返回一个m*n*p*.的零矩阵。注意:参数m,n,p都是非负整数,负整数都会看成0。4.2实验程序 4.2.1原始信号分析 读取一段语音信号,画出其时域波形图,用fft对语音信号进行傅里叶变换,并画出其相

10、位与幅值。 (1)实验程序:x,fs=audioread(d:v4.mp3);x=x(:,1);n1=0:2000;N=size(x,1);figure(1);subplot(2,1,1);plot(x);title(原始信号的时域波形);Y=fft(x);subplot(2,1,2);plot(n1(1:1000),Y(1:1000); title(原始信号的频谱图);figure(2);subplot(2,1,1);plot(abs(Y);title(幅值);subplot(2,1,2);plot(angle(Y);title(相位);sound(x,fs); (2)实验结果 4.2.2回

11、声信号的产生 对原始信号取出单声道信号,并用filter函数对其进行衰减和延时,得到回声信号。 1、FIR滤波器产生一次回声 (1)实验程序:x,fs=audioread(d:v4.mp3);R=5000;n1=0:2000;num=1,zeros(1,R-1),0.8;den=1;y=filter(num,den,x);figure(1);subplot(2,1,1);plot(y);title(单回声后信号时域波形);y1=fft(y);subplot(2,1,2);plot(n1(1:1000),y1(1:1000);title(单回声后信号频谱图);figure(2);subplot(

12、2,1,1);plot(abs(y1);title(单回声后信号幅值);subplot(2,1,2);plot(angle(y1);title(单回声后信号相频响应);sound(y,fs);(2)实验结果: 2.IIR滤波器产生多次回声: yy2=filter(1,1,zeros(1,80000/(N+1),0.7,b,zeros(1,40000);通过改变的N的数值可设置回声的次数, (1)实验程序:x,fs=audioread(d:v4.mp3);N=3;a=0.8;R=5000;n1=0:2000;num=1,zeros(1,N*R-1),0.8N;den=1,zeros(1,N*R-

13、1),0.8;z=filter(num,den,x);figure(1);subplot(2,1,1);plot(z);title(多回声后信号时域波形);z1=fft(z);subplot(2,1,2);plot(n1(1:1000),z1(1:1000);title(多回声后信号频谱图);figure(2);subplot(2,1,1);plot(abs(z1);title(多回声后信号幅频响应);subplot(2,1,2);plot(angle(z1);title(多回声后信号相频响应);sound(z,fs);(2)实验结果:4.2.3混响的产生在整理资料时发现,其中对原信号的读取位

14、数大小和FFT变换的点数都会影响其频谱图。(1)实验程序: x,fs=audioread(d:v4.mp3);N1=3;a1=0.6;R1=2000;n1=0:2000;num1=1,zeros(1,N1*R1-1),0.6N1;den1=1,zeros(1,R1-1),0.6;p1=filter(num1,den1,x);N2=4;a2=0.7;R2=2000;num2=1,zeros(1,N2*R2-1),0.7N2;den2=1,zeros(1,R2-1),0.7;p2=filter(num2,den2,x);p3=p1+p2;a8=0.8;R8=1100;num11=0.8,zeros

15、(1,R8-1),1;den11=1,zeros(1,R8-1),0.8;p4=filter(num11,den11,p3);y=x+p4;h1,w1=freqz(num1,den1);h2,w2=freqz(num2,den2);h3,w3=freqz(num11,den11);H=(h1+h2).*h3;figure(1);subplot(2,1,1);plot(y);title(混响时域波形);y1=fft(y);subplot(2,1,2);plot(n1(1:1000),y1(1:1000);title(混响频谱图);figure(2)subplot(2,1,1);H1=fft(y)

16、;plot(abs(H1);title(混响信号幅频响应);subplot(2,1,2);plot(angle(H1);title(混响信号相频响应);sound(y,fs);(2)实验结果: 4.2.4和声的产生 和声是对原始信号进行不同程度的衰减和延时,最后这些信号和原信号进行叠加产生的:(1)实验程序:x,fs=audioread(d:v4.mp3);x1=x(1:526463);N=length(x);for i=1:N;w1=2*pi;a1=0.6;R1=800;D1=R1/2*(1-cos(w1*i)/fs);DC1=ceil(D1);if (D1=(i-1); y1(i)=a1*

17、(x(i-DC1)+(x(i-DC1+1)-x(i-DC1)*(DC1-D1);endendN=length(x);for i=1:N;w2=2*2*pi;a2=0.5;R2=600;D2=R2/2*(1-cos(w2*i)/fs);DC2=ceil(D2);if (D2=(i-1); y2(i)=a2*(x(i-DC2)+(x(i-DC2+1)-x(i-DC2)*(DC2-D2);endendfor i=1:N;w3=2*3*pi;a3=0.7;R3=750;D3=R3/2*(1-cos(w3*i)/fs);DC3=ceil(D3);if (D3=(i-1); y3(i)=a3*(x(i-D

18、C3)+(x(i-DC3+1)-x(i-DC3)*(DC3-D3);endendy4=x1+y2+y3;sound(y4,fs);figure(1)subplot(2,1,1);Y=fft(y4);plot(abs(Y);title(和声幅频);subplot(2,1,2);plot(angle(Y);title(和声相频);sound(y4,fs);(2)实验结果:4.4.5简易的界面设计 4.5实验结果分析 通过实验得到的频谱图分析发现,多重回声效果叫单回声效果更加明显,如果延时调试得当,会得到更好的回声效果,混响较前两者更加明显,和声的效果由于叠加的声音较少导致效果不明显,但可以分辨出和

19、声效果与会声效果的区别。(完整程序代码见附录一) 五、设计总结 本次DSP课程设计,我主要做的是混响部分的设计。通过编程与GUI界面的实现,完成回声信号产生器的基本功能与混响、和声功能的实现。通过实验得到的频谱图分析发现,多重回声效果较单回声效果更加明显,如果延时得当,会得到很好的回声效果,产生类似在演唱会现场的效果,自然混响的效果则较前两个更加明显,和声的效果由于人数较少不太明显,但能确实的分辨出和声效果与回声效果的区别。 5.1课程设计的可取之处:1.回声信号产生器可设置N的值自主选择产生多少次的回声,并且可设置回声的延时时长。2.可对声音信号进行不同的混响及和音效果。 5.2课程设计的不

20、足1.回声信号采用点增多,执行程序时间过长,在GUI演示时已经体现出来2.GUI界面插入背景图片会影响下静态文本框界面,因而造成不太美观 5.3编程中遇到的问题1.之前并没有接触过matlab这个软件,所以从软件的安装到后期的编程都学习了很多的知识,包括从图书馆借的书和利用网络资源进行学习。2.分析声音信号时,要注意选择单声道信号进行分析。由于起初并没有进行选择,出现了很多问题。至于单声道问题,我觉得应该是对信号的收集是单边调制的缘故。3.在读取语音信号程序中,用”x,fs,bits=wavread(y,1 40000)”读取出现音频读不全的现象,后来改动数值40000读取的声音更多,但后来又

21、读取较长音频文件时发现仍不能完全读出,所以后来就缺省采样位数1 40000,最终实现了声音的完美呈现。六、收获与感受通过实验,是我对MATLAB有了一个基础的了解,在学习MATLAB编程中需要很多的参考书,要尽量多的熟悉matlab自带的函数及其作用,因为matlab的自带函数特别多,基本上能够满足一般的数据和矩阵的计算,所以基本上不用你自己编函数。这一点对程序非常有帮助,可以使程序简单,运行效率高,可以节省很多时间。本次课设中用了很多MATLAB自带的函数,使程序变得很简单而有效。在编程的过程中学习,程序需要什么知识再去补充,编程是一点一点积累的,所以需要做一些随手笔记什么的。课题需要什么函

22、数,需要什么模块就应该去着重看那个知识点,就应该一步一步学,如果太急于把所有东西都学到,也是不好的,更是实现不了的。总之,通过这次学习,我了解了一下这个软件总体的功能,以及通过自己编写一些代码也学到了一些用法和知识。我相信通过不时的积累,我会慢慢的学会使用MATLAB。七、参考文献1数字信号处理,朱军,合肥工业大学出版社2MATLAB 6.5及其在信号处理中的应用王宏,清华大学出版社,20043数字信号处理教程M,程佩青,清华大学出版社,2002附录一function varargout = cy(varargin)% CY MATLAB code for cy.fig% CY, by its

23、elf, creates a new CY or raises the existing% singleton*.% H = CY returns the handle to a new CY or the handle to% the existing singleton*.% CY(CALLBACK,hObject,eventData,handles,.) calls the local% function named CALLBACK in CY.M with the given input arguments.% CY(Property,Value,.) creates a new C

24、Y or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before cy_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to cy_OpeningFcn via varargin.% *See GUI Options on GUI

25、DEs Tools menu. Choose GUI allows only one% instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help cy % Last Modified by GUIDE v2.5 21-Dec-2015 20:51:55 % Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct(gui_

26、Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, cy_OpeningFcn, . gui_OutputFcn, cy_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else

27、gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT % - Executes just before cy is made visible.function cy_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a

28、future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to cy (see VARARGIN) % Choose default command line output for cyhandles.output = hObject; % Update handles structureguidata(hObject, handles); % UIWAIT makes cy wait for user respons

29、e (see UIRESUME)% uiwait(handles.figure1); % - Outputs from this function are returned to the command line.function varargout = cy_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structurevarargout1 = handles.output; % - Executes on button press in pushbutton1.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1