您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 基于matlab数字信号处理探究性实验报告
《数字信号处理》课程研究性学习报告姓名学号同组成员学号学号学号时间Matlab对任意确定信号的频谱分析一、背景前言随着大规模集成电路和微处理器技术的迅猛发展,信号处理逐渐发展成为一门独立的学科,成为信息科学的重要组成部分,在语音处理、图像处理、多媒体技术、通信、生物医学工程等众多领域中得到广泛应用,且其研究范围和应用领域还在不断地发展和扩大。MATLAB是一种强大的分析、计算及可视化工具。MATLAB功能强大、简单易学、编程效率高,被广泛运用于信息处理领域,同时也很方便地进行语音信号地分析、处理和设计。本课题的设计主要是用MATLAB作为工具平台,设计中涉及到语音信号的抽样、频谱分析,滤波器的设计及语音信号的滤波,通过数字信号处理课程的理论知识的综合运用。从实践上初步实现了对数字信号的处理。二、设计内容(1)对给定的CEG和弦音音频文件取合适长度的采样记录点,然后进行频谱分析(信号的时域及幅频特性曲线要画出)。(2)分析CEG和弦音频谱特点,对该信号频谱能量相对较为集中的频带(分低、中、高频)实现滤波(分别使用低通,带通及高通),显示滤波后信号的时域和频域曲线,并对滤波后的信号与原信号的音频进行声音回放比较。(3)在低、中、高三个频带中,各滤出三个能量最集中的频簇,显示滤波后信号的时域和频域曲线。讨论:根据上述结果,分析什么是和弦音。三、设计原理采用双线性变换法设计滤波器,其原理如下:S平面与z平面之间满足以下映射关系:s平面的虚轴单值地映射于z平面的单位圆上,s平面的左半平面完全映射到z平面的单位圆内。双线性变换不存在混叠问题。双线性变换时一种非线性变换,这种非线性引起的幅频特性畸变可通过预畸而得到校正。IIR低通、高通、带通数字滤波器设计采用双线性原型变换可以利用上面提到的原理分别用双线性变化法设计以上3种滤波器,可以利用函数fir1设计FIR滤波器,可以利用函数butte,cheby1和ellip设计IIR滤波器;利用MATLAB中的函数freqz画出各滤波器的频率响应。四、设计内容及结果分析1、对给定的CEG和弦音音频文件取合适长度的采样记录点,然后进行频谱分析,并画出信号的时域及幅频特性曲线。和弦音信号的时域及幅频特性曲线如下:2、对该信号频谱能量相对较为集中的频带(分低、中、高频)实现滤波(分别使用低通,带通及高通),同时显示滤波后信号的时域和频域曲线,并对滤波后的信号与原信号的音频进行声音回放比较。(1)低通滤波器滤波结果如下:(2)高通滤波器滤波结果如下:(3)带通滤波器滤波结果如下:结果分析:将三个(或三个以上)不同的音阶,按照一定的关系结合在一起,即为和弦,这就是和弦音的定义。通过MATLAB对音频文件经过简单的低通,带通和高通滤波器滤波,即对三个不同的频带分别进行频谱分析及声音比较,再将三个不同的频带信号合成并比较声音。可以知道,和弦音可分解为不同频带的单音信号,在不同频带其频率分布及其振幅大小的不同都会造成音律不同,同理,不同频带的单音信号重建也会组合成音律不同的和弦音。五、学习体会收获采用MATLAB进行数字信号处理课程设计,使我加深了对课堂抽象概念的理解,巩固了课堂上所学的理论知识,并能较好地理解数字信号处理中的基本概念、基本原理、基本分析方法。特别是关于IIR滤波器处理音频文件有了更深的理解。由于课本知识掌握不好,知识面不够,在整个设计过程中有很多地方出错,但通过网上查阅资料和到图书馆查资料并请教同学,最后得到很好的解决。在与同学的相互讨论和自己的努力下,我终于把课程设计完成了。通过这次设计,我对MATLAB和滤波器有了更深入的理解。六、参考文献1、数字信号处理(第三版)高西全丁美玉编著西安电子科技大学出版社2、百度搜索调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱3、MATLAB7简明教程李南南吴清曹辉林编著清华大学出版社4、张贤达编《现代信号处理(第二版)》清华大学出版社2002七、附录程序弦音信号的时域及幅频特性:程序如下:Fs=8000;%语音信号采样频率为8000x=wavread('CEG.wav',[10008000]');%读取和弦音从1000到8000点的值sound(x);%播放原语音t=(0:[8000-1000])/Fs;%计算从1000到8000点的时间y=fft(x,5000);%对语音信号进行FFT运算f=Fs*(0:2499)/5000;figure(1);subplot(2,1,1)%按两行一列画出图形plot(x);%画出时域图形title('和弦音信号的时域图');%标题为原始信号的时域图xlabel('时间');%X轴标题为时间ylabel('幅值');%y轴标题为幅值subplot(2,1,2);plot(f,abs(y(1:2500)));%画出幅值图title('和弦音信号的频谱图');xlabel('频率');ylabel('幅值');设计低通滤波器:Fs=8000;x=wavread('CEG.wav',[10008000]');%读出和弦音信号t=(0:[8000-1000])/Fs;%计算从1000到8000点的时间y=fft(x,5000);%对和弦音信号进行FFT运算f=Fs*(0:2499)/5000;Ws=2*1200*1/8000;%滤波器的阻带截止频率Wp=2*1000*1/8000;%滤波器的通带截止频率Rs=100;Rp=1;%数字低通滤波器参数[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs);%估计切贝雪夫I型滤波器阶数[num,den]=cheby1(N,Rp,Wn,'low');%切贝雪夫I型低通滤波器系统函数;[h,w]=freqz(num,den);%计算幅频响应subplot(3,1,1);%画出图象位置plot(w/pi,abs(h));grid;%画网格xlabel('\omega/\pi');%x轴坐标ylabel('振幅');%y轴坐标为振幅title('契比雪夫Ⅰ型低通滤波器的幅频响应');%标题f1=filter(num,den,x);%滤波y=fft(f1,8000);%进行fft变换subplot(3,1,2);%画出图象位置plot(f1);%画出原语音信号经低通后图像title('低通滤波后的信号');%标题xlabel('时间');%x轴坐标ylabel('幅值');%y轴坐标subplot(3,1,3);%输出图象位置plot(abs(y(1:4000)));%画出频谱图像title('低通后滤波信号频谱')%标题xlabel('频率');%x轴坐标ylabel('幅值');%y轴坐标wavwrite(f1,'低通.wav');%写出低通后信号x1=wavread('低通.wav');%读取低通后信号sound(x1);设计高通滤波器:Fs=8000;x=wavread('CEG.wav',[10008000]');%读出和弦音信号t=(0:[8000-1000])/Fs;%计算从1000到8000点的时间y=fft(x,5000);%对和弦音信号进行FFT运算f=Fs*(0:2499)/5000;Ws1=2*3000*1/8000;Wp1=2*3200*1/8000;Rs1=100;Rp1=1;[N1,Wn1]=cheb1ord(Wp1,Ws1,Rp1,Rs1);%估计切贝雪夫Ⅰ型滤波器阶数[num1,den1]=cheby1(N1,Rp1,Wn1,'high');%切贝雪夫I型高通滤波器系统函数;[h1,w1]=freqz(num1,den1);%计算幅频响应subplot(3,1,1);%显示图象位置plot(w1/pi,abs(h1));%画出幅值图xlabel('\omega/\pi');%x轴坐标ylabel('振幅');%y轴坐标title('契比雪夫Ⅰ型高通滤波器的幅频响应');%标题f2=filter(num1,den1,x);%滤波y1=fft(f2,8000);%进行fft变换subplot(3,1,2);%输出图像位置plot(f2);%做原始语音信号的时域图形title('高通滤波后的信号');%标题xlabel('时间');%x轴坐标ylabel('幅值');%y轴坐标subplot(3,1,3);%输出图像位置plot(abs(y1(1:4000)));%画出频谱图像title('高通滤波后的信号频谱');%标题xlabel('频率');%x轴坐标ylabel('幅值');%y轴坐标wavwrite(f2,'高通.wav');%写出高通后信号x2=wavread('高通.wav');%读出高通后信号sound(x2);%播放高通后信号设计带通滤波器:Fs=8000;x=wavread('CEG.wav',[10008000]');%读出和弦音信号t=(0:[8000-1000])/Fs;%计算从1000到8000点的时间y=fft(x,5000);%对和弦音信号进行FFT运算f=Fs*(0:2499)/5000;Wp2=[2*1200/Fs2*3000/Fs];%在1的dB衰减处的边带频率Ws2=[2*1000/Fs2*3200/Fs];%在衰减为100dB处的边带频率Rp2=1;%通带损耗不大于1dBRs2=100;%阻带衰减不小于100dB[N2,Wn2]=cheb1ord(Wp2,Ws2,Rp2,Rs2);%估计切贝雪夫滤波器阶数[num2,den2]=cheby1(N2,Rp2,Wn2);%切贝雪夫滤波器系统函数[h2,w2]=freqz(num2,den2);%计算频谱响应figure(4);%第四个图形subplot(3,1,1);%输出图像位置plot(abs(h2));grid;%画出幅值图xlabel('\omega/\pi');%x轴坐标名称ylabel('振幅');%y轴坐标名称title('契比雪夫Ⅰ型带通滤波器的幅频响应');%图形名称f3=filter(num2,den2,x);%滤波y3=fft(f3,8000);%作fft变换subplot(3,1,2);%输出图像位置plot(f3);%做原始语音信号的时域图形title('带通滤波后的信号');%图像名称xlabel('时间');%x轴名称ylabel('幅值');%y轴名称subplot(3,1,3);%输出图像位置plot(abs(y3(1:4000)));%画出频谱图像title('带通滤波后的信号频谱')%图像名称xlabel('频率');%x轴坐标名称ylabel('幅值');%y轴名称wavwrite(f3,'带通.wav');%写出过滤后带通信号x3=wavread('带通.wav');%读出过滤后带通信号sound(x3);
本文标题:基于matlab数字信号处理探究性实验报告
链接地址:https://www.777doc.com/doc-2570494 .html