数字信号课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

音频信号在MATLAB的生成及处理班级:通信工程电子121班姓名:周源思学号:1207300502指导老师:文珺2014年6月课程设计报告实验14一、实验目的加深理解采用数字信号处理方法对模拟信号处理的过程、掌握使用MATLAB处理的方法。二、实验内容和步骤1)采用MATLAB设计一个类似例4.3.1中的有多个不同频率的音频信号,长度3秒,选择采样频率Fs=8000Hz;例4.3.1中的音频信号为钢琴音频,前三个音频为262,330,392,后面音频范围为493-2500Hz;2)对产生的音频信号进行处理设计一个预滤波器,对输入的信号进行预滤波,以消除超过1/2Fs頻率的信号,防止采样时出现信号混叠。设计参数如下:通带截止频率fp=2500;阻带截止频率fs=3000;通带最大衰减rp=1;阻带最小衰减rs=100;设计一个IIR数字滤波器,对预滤波后的信号进行处理。要求提取出前三个低频基本音,并通过衰减第三个音频幅度,使得前三个钢琴的声基本平衡。根据要求可知滤波器在0~0.282Π频带内幅度平稳,在0.282Π~0.329Π幅度单调下降。设计参数如下:通带截止频率fp=360;阻带截止频率fs=420;通带最大衰减rp=1;阻带最小衰减rs=-15;3)画出处理前后的时域频域图,要求:音频信号处理前后时域波形图要求横坐标是时间,单位s,频域频谱图横坐标要求是模拟频率(范围0-Fs/2),单位Hz;滤波器幅度特性画两幅图,分别是纵坐标是dB、横坐标归一化数字频率(范围0-1)和纵坐标是幅度、横坐标是模拟频率(范围0-Fs/2),单位Hz;画出相应相位图;4)回放音频信号并对处理前后的音频信号频谱进行对比、分析;5)设计GUI;三、具体算法滤波器都是使用巴特沃思数字低通滤波器,数字低通滤波器参数可通过双线性变换法,由模拟巴特沃思低通滤波器参数得到。给出滤波器参数fp,fs,rp,rs通带波纹幅度参数11010/rp阻带波纹幅度参数20/rs10A过渡比参数spk/偏离参数1-A21k模拟巴特沃思低通滤波器系统函数由阶数N和3dB截止频率c决定kklglgN1Np/1c四、GUI设计利用GUI图形用户界面设计工具制作数字滤波器处理面板,框架如下:留有三个音频频率输入端口,主页面有六个窗口,分别可以画出原始信号,滤波后信号的时域,频域,和相位图。旁边有“预滤波器”按钮,执行如下程序functionpushbutton6_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton6(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)globaltimeglobalfxglobalpiano2figure(2)subplot(3,1,1);plot(time,piano2);%滤波后语音信号的时域图形axis([03-2.22.2]);title('预滤波后音频信号时域图形');xlabel('时间(s)');ylabel('幅度');subplot(3,1,2);y2=fft(piano2,2048);%对信号做2048个FFT变换plot(fx,abs(y2(1:1024)),'b');title('预滤波后语音信号的幅频特性(模拟频率)范围0-Fs/2)');xlabel('频率(Hz)');ylabel('幅度');subplot(3,1,3);ph2=angle(y2(1:1024));%Fs/2的相位plot(fx,ph2);title('预滤波后语音信号的相频图(模拟频率)范围0-Fs/2)');xlabel('频率(Hz)');ylabel('幅度');将画出预滤波后信号的时域,频域,和相位图。“数字滤波器”按钮,执行如下程序:functionpushbutton5_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton5(seeGCBO)%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)globalBzglobalAzglobalfs1figure(1)subplot(3,1,1);[h,w]=freqz(Bz,Az);%求出滤波器系统函数hf1=abs(h);hx1=angle(h);fxx1=w*fs1/(2*pi);plot(fxx1,hf1);%系统幅频特性曲线title('滤波器频率响应图形');xlabel('频率(hz)');ylabel('幅度');axis([0100001.2]);subplot(3,1,2);plot(w/pi,20*log10(hf1/max(hf1)));title('滤波器频率响应图形');xlabel('频率(hz)');ylabel('幅度(dB)');subplot(3,1,3);plot(fxx1,hx1);%系统相频特性曲线title('滤波器相频响应图形');xlabel('频率(hz)');ylabel('相位(rad)');axis([01000-44]);“sound1”和“sound2”按钮,功能分别是播放原始音乐和处理后音乐。五、程序运行结果通过原始信号和滤波处理后的信号时域图可以看出,波形变稀疏了。从频域图可以看出,经过滤波器后,大于420Hz的频率都被滤除掉了,并且第三个频率392的幅度被衰弱了,和前两个信号基本平衡,达到了设计要求。原始信号经过预滤波器后,超过2700HZ的高频信号被滤除掉了,保证了滤波后信号频率小于1/2Fs采样频率,达到了要求。数字低通滤波器频率响应从滤波器的频率响应图可以看出,在0—360Hz信号幅度基本无影响,在360Hz—420Hz信号衰弱,达到了设计要求,实现了对392Hz频率的衰弱。六、本次实验遇到的困难1、实验要求用MATLAB生成3s语音信号,因为之前只处理过音频信号,没有生成过音频信号,所以想到了通过逆推采集的音频信号,得到原始信号参数。通过网上百度到的一篇用MATLAB合成东方红音频的文章,参照这篇文章,成功的用MATLAB生成音频文件。但是在对生成的信号进行处理时,发现画出的时域图正常,但fft变换后画出的频谱图却始终错误。询问了助教和学院的老师及研究生,仍没办法解决。后来参考助教建议,用MATLAB生成了时长3秒的混频信号,虽然不能产生音乐,但也达到实验要求了。2、在设计数字低通滤波器时,模拟频率转换数字频域出错,卡在这里很久。七、心得体会数字信号处理一直以来都是一门比较难的课,不仅因为它比较难理解,而且在于这门课学习的东西都是比较抽象的,需要良好的数学基础,同时,因为平时比较缺少这方面知识的接触,所以学习这门课的时候还是感觉到了比较大的压力。开始做时从网上找了先代码看,发现很多看不懂,特别是时域——模拟频域——数字频域的相互转换。果断先不弄MATLAB,把课本看了一遍,习题做了一遍。把书看完后,再看程序轻松了很多了。通过本次课程设计,我们意识到了数字信号处理技术的灵活性,意识到了理论学习的重要性,没有理论知识的认知及学习,就不可能完成好一项实验设计。在拿到题目后,我们首先根据课本了解了基本的实验要求,对于GUI界面的设计是课本上面学不到的,于是我们组先去图书馆借阅了相关的书籍,然后自学完成了本次GUI界面设计,通过这次课程设计我们的确受益匪浅,不仅巩固加强了基础知识,扩展了自己的思维,在设计过程中,学长也不厌其烦的为我们排忧解难。当然,这次的课程设计也让我们暴露了不少的缺点,让我们看到了自己的很多不足。因为对理论知识不是理解很透彻,在设计过程中也遇到了很多的困难,对软件的不熟悉也让我们花费了较多的时间去熟悉软件,因为我们在设计中用到了GUI界面,这是以前在课堂上没有学过的东西,这些都需要我们重新去学习,不过这样也进一步的让我们知道了MATLAB的强大。八、源程序functionvarargout=music(varargin)%MUSICMATLABcodeformusic.fig%MUSIC,byitself,createsanewMUSICorraisestheexisting%singleton*.%%H=MUSICreturnsthehandletoanewMUSICorthehandleto%theexistingsingleton*.%%MUSIC('CALLBACK',hObject,eventData,handles,...)callsthelocal%functionnamedCALLBACKinMUSIC.Mwiththegiveninputarguments.%%MUSIC('Property','Value',...)createsanewMUSICorraisesthe%existingsingleton*.Startingfromtheleft,propertyvaluepairsare%appliedtotheGUIbeforemusic_OpeningFcngetscalled.An%unrecognizedpropertynameorinvalidvaluemakespropertyapplication%stop.Allinputsarepassedtomusic_OpeningFcnviavarargin.%%*SeeGUIOptionsonGUIDE'sToolsmenu.ChooseGUIallowsonlyone%instancetorun(singleton).%%Seealso:GUIDE,GUIDATA,GUIHANDLES%Edittheabovetexttomodifytheresponsetohelpmusic%LastModifiedbyGUIDEv2.507-Jul-201520:05:13%Begininitializationcode-DONOTEDITgui_Singleton=1;gui_State=struct('gui_Name',mfilename,...'gui_Singleton',gui_Singleton,...'gui_OpeningFcn',@music_OpeningFcn,...'gui_OutputFcn',@music_OutputFcn,...'gui_LayoutFcn',[],...'gui_Callback',[]);ifnargin&&ischar(varargin{1})gui_State.gui_Callback=str2func(varargin{1});endifnargout[varargout{1:nargout}]=gui_mainfcn(gui_State,varargin{:});elsegui_mainfcn(gui_State,varargin{:});end%Endinitializationcode-DONOTEDIT%---Executesjustbeforemusicismadevisible.functionmusic_OpeningFcn(hObject,eventdata,handles,varargin)%Thisfunctionhasnooutputargs,seeOutputFcn.%hObjecthandletofigure%eventdatareserved-tobedefinedinafutureversionofMATLAB%handlesstructurewithhandlesanduserdata(seeGUIDATA)%vararg

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功