数字信号处理课程设计

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

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

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

资源描述

青岛科技大学《数字信号处理》课程设计报告题目________________________________________________________________________指导教师__________________________学生姓名__________________________学生学号_________________________________________________________院(部)____________________________专业________________班__2014____年_1__月14___日数字信号分析及数字滤波器设计张淑军刘云生1108020310信息与科学技术学院信息工程11311.目的与要求1.进一步巩固数字信号处理中的基本原理与方法,提高分析、解决实际问题的能力。2.熟练掌握一门计算机语言,进行数字信号处理应用的开发设计,训练基本技能,如查阅设计资料和手册、程序的设计、调试等。《数字信号分析及数字滤波器设计》1.用以下方式产生三个不同频段的信号:(1)自己录制一段正常的语音文件;(2)录制一段环境噪声文件;(3)利用MATLAB产生一个不同于以上频段的信号。2.对上述三个信号,进行频谱分析,画出三路信号的时域波形和频谱图,对进行对比分析。3.根据三路信号的频谱特点得到性能指标,由性能指标设计三个滤波器,并画出各滤波器的频域响应。4.将三路信号叠加为一路信号。5.用自己设计的滤波器对合成的信号进行滤波,分析得到信号的频谱,并画出滤波后信号的时域波形和频谱。2.主要技术和原理2.1语音采集、记录、读取以及播放的Matlab实现利用matlab的音频信号处理工具箱,可以实现声音的录制和播放。录音函数wavrecord语法为:2y=wavrecord(n,fs,channel,dataType);其中n为采样点数,fs为采样频率,channel(通常取1或者2)为录音通道数,dataType(例如double,single,int16,uint8)是采样点的数据类型。例子:fs=16000;%取样频率duration=2;%录音时间fprintf('Pressanykeytostart%gsecondsofrecording...\n',duration);pause;fprintf('Recording...\n');y=wavrecord(duration*fs,fs);%duration*fs是总的采样点数fprintf('Finishedrecording.\n');fprintf('Pressanykeytoplaytherecording...\n');pause;2.2FIR滤波器窗函数法的设计原理时间窗口设计法是从单位脉冲响应序列着手,使h(n)逼近理想的单位脉冲响应序列hd(n)。我们知道hd(n)可以从理想频响通过付氏反变换获得221)(onjjdddeeHnh但一般来说,理想频响)(jdeH是分段恒定,在边界频率处有突变点,所以,这样得到的理想单位脉冲响应hd(n)往往都是无限长序列,3而且是非因果的。但FIR的h(n)是有限长的,问题是怎样用一个有限长的序列去近似无限长的hd(n)。最简单的办法是直接截取一段hd(n)代替h(n)。这种截取可以形象地想象为h(n)是通过一个“窗口”所看到的一段hd(n),因此,h(n)也可表达为h(n)和一个“窗函数”的乘积,即h(n)=w(n)hd(n)在这里窗口函数就是矩形脉冲函数RN(n),当然以后我们还可看到,为了改善设计滤波器的特性,窗函数还可以有其它的形式,相当于在矩形窗内对hd(n)作一定的加权处理。以一个截止频率为ωc的线性相位理想低通滤波器为例,讨论FIR的设计问题。a.对于给定的理想低通滤波器)(jdeH,计算)(nhdccjjdeeH01)(为低通滤波器的延时则)())(sin(2121)(nndeedeeHnhcnjjnjjddcc理想特性的hd(n)和Hd(ω)图14这是一个以为中心的偶对称的无限长非因果序列,如果截取一段n=0~N-1的hd(n)作为h(n),则为保证所得到的是线性相位FIR滤波器,延时应为h(n)长度N的一半,即2/)1(N.即N长的FIR低通滤波器h(n)的函数表达式为:1,0)21())21(sin()(NnNnNnnhcb.计算)(nh为其它值nNnonhnwnhnhdRd01)()()()(其中)()(nRnwNR三、FIR带通、高通、带阻、多通带多组带滤波器的设计(1)N长的FIR全通滤波器h(n)的函数表达式当c,则低通变为全通:1,0)21())21(sin()(NnNnNnnh(2)N长的FIR高通滤波器h(n)的函数表达式由高通的频谱结构可知,高通滤波器的频谱=全通滤波器的频谱-低通滤波器的频谱。1,0)21())21(sin()21())21(sin()(NnNnNnNnNnnhchp5设计滤波器(高通)绘制时域频域波形设计滤波器(低通)三路信号叠加绘制时域频域波形绘制时域频域波形绘制时域频域波形绘制时域频域波形matlab产生信号噪声采集(录音)语音采集(录音)高通滤波低通滤波3.总体方案设计3.1开发环境和工具PCwindow7matlab2013a3.2功能模块图6语音恢复绘制波形matlab信号恢复语音回放3.3设计步骤和过程3.3.1信号的获取(语音,噪声,matlab信号)(1)录取8秒长的语音信号,有常识知道语音信号的频率范围0到4000赫兹,为了防止频谱混叠,设置抽样频率为8192赫兹。共抽样65536个点。(2)录取4秒长的噪声,由于条件有限,找不到适当频率的噪声源,所以直接录取了白噪声。(3)用matlab产生一个高频信号x(i)=sin(2*pi*f1*i*t)+sin(2*pi*f2*i*t)+sin(2*pi*f3*i*t);f1=28000HZ,f2=25000hHZ,f3=20000HZ.duration1=8;%语音录音时间fprintf('Pressanykeytostart%gsecondsofrecording...\n',duration1);pause;fprintf('Recording...\n');y=wavrecord(duration1*fs,fs);%duration*fs是总的采样点数,语音信号采集Y=fft(y);magY=abs(Y);7duration2=4;%噪声录音时间fprintf('Pressanykeytostart%gsecondsofrecording...\n',duration2);pause;fprintf('Recording...\n');z=wavrecord(duration2*fz,fz);%duration*fs是总的采样点数,噪声信号采集Z=fft(z);magZ=abs(Z);fprintf('matlab产生信号\n');pause;fori=1:1:60000;x(i)=sin(2*pi*f1*i*t)+sin(2*pi*f2*i*t)+sin(2*pi*f3*i*t);%duration*fsmatlab信号采集endfori=60001:65536;x(i)=0;endX=fft(x);magX=abs(X);Fori=1:65536;t(i)=0;End3.3.2信号合成fori=1:65536;t(i)=0;endfori=1:65536;t(i)=y(i)+z(i)+x(i);endT=fft(t);magT=abs(T);3.3.3绘制图像figure(1)subplot(211);plot(y);title('原始语音信号波形');subplot(212);plot(magY);title('原始语音信号幅值');figure(2)subplot(211);plot(z);title('原始噪声信号波形');subplot(212);plot(magZ);title('原始噪声信号幅值');8figure(3)subplot(211);plot(x);title('matlab信号波形');subplot(212);plot(magX);title('matlab信号幅值');figure(4)subplot(211);plot(t);title('三路合成信号波形');subplot(212);plot(magT);title('三路合成信号幅值');3.3.4滤波器设计与滤波低通滤波器的截止频率为6000HZ,为了获取语音信号。高通滤波器的截止频率为15000HZ,为了获取matlab信号。%设计低通滤波器的h(n)______________________________________________________________fori=1:Nifi==M/2h1l_p(i)=wc/pi;%当i==M/2时的极限值elseh1l_p(i)=sin((i-M/2)*wc)/((i-M/2)*pi);%低通滤波器的h(n)表达式endend%设计高通滤波器的h(n)______________________________________________________________fori=1:Nifi==M/2h1h_p(i)=(pi-wh)/pi;%当i==M/2时的极限值elseh1h_p(i)=(sin((i-M/2)*pi)-sin((i-M/2)*wh))/((i-M/2)*pi);%高通滤波器的h(n)表达式endendy_hp=conv(h1h_p,t);%高通滤波fori=1:1000y_hp(i)=0;endfori=65537:75535y_hp(i)=0;endY2=fft(y_hp);magY2=abs(Y2);9y_lp=conv(h1l_p,t);%低通滤波fori=1:1000y_lp(i)=0;endfori=65537:75535y_lp(i)=0;End3.3.5信号的回放与恢复figure(5);subplot(211);plot(y_lp);title('恢复语音信号波形');subplot(212);plot(magY1);title('恢复语音信号幅值');figure(6);subplot(211);plot(y_hp);title('matlab声信号波形');subplot(212);plot(magY2);title('matlab声信号幅值');fprintf('Finishedrecording.\n');fprintf('Pressanykeytoplaytherecording...\n');pause;wavplay(y_lp,fs);4.实验结果与分析4.110114.2125.总结与体会13数字信号处理作为我们的主要专业课之一,虽然在大三开学初我对这门课并没有什么兴趣,觉得那些程序和公式枯燥乏味,但在这次课程设计后我发现自己在一点一滴的努力中对数字信号处理的兴趣也在逐渐增加。这次数字信号课程设计我们历时一个星期,虽然时间很短很紧迫,但经过这一个星期的实践和体验下来,对我来说学到的不仅是那些知识,更多的是团队合作以及独立思考的能力。现在想来,也许学校安排的课程设计有着它更深层的意义吧,它不仅仅让我们综合那些理论知识来运用到设计和创新,还让我们知道了一个团队凝聚在一起时所能发挥出的巨大潜能!在设计课程过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力的提高都

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

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

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

×
保存成功