完整版基于MATLAB的数字滤波器毕业设计论文.docx

上传人:b****1 文档编号:13832472 上传时间:2023-06-17 格式:DOCX 页数:14 大小:20.06KB
下载 相关 举报
完整版基于MATLAB的数字滤波器毕业设计论文.docx_第1页
第1页 / 共14页
完整版基于MATLAB的数字滤波器毕业设计论文.docx_第2页
第2页 / 共14页
完整版基于MATLAB的数字滤波器毕业设计论文.docx_第3页
第3页 / 共14页
完整版基于MATLAB的数字滤波器毕业设计论文.docx_第4页
第4页 / 共14页
完整版基于MATLAB的数字滤波器毕业设计论文.docx_第5页
第5页 / 共14页
完整版基于MATLAB的数字滤波器毕业设计论文.docx_第6页
第6页 / 共14页
完整版基于MATLAB的数字滤波器毕业设计论文.docx_第7页
第7页 / 共14页
完整版基于MATLAB的数字滤波器毕业设计论文.docx_第8页
第8页 / 共14页
完整版基于MATLAB的数字滤波器毕业设计论文.docx_第9页
第9页 / 共14页
完整版基于MATLAB的数字滤波器毕业设计论文.docx_第10页
第10页 / 共14页
完整版基于MATLAB的数字滤波器毕业设计论文.docx_第11页
第11页 / 共14页
完整版基于MATLAB的数字滤波器毕业设计论文.docx_第12页
第12页 / 共14页
完整版基于MATLAB的数字滤波器毕业设计论文.docx_第13页
第13页 / 共14页
完整版基于MATLAB的数字滤波器毕业设计论文.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

完整版基于MATLAB的数字滤波器毕业设计论文.docx

《完整版基于MATLAB的数字滤波器毕业设计论文.docx》由会员分享,可在线阅读,更多相关《完整版基于MATLAB的数字滤波器毕业设计论文.docx(14页珍藏版)》请在冰点文库上搜索。

完整版基于MATLAB的数字滤波器毕业设计论文.docx

完整版基于MATLAB的数字滤波器毕业设计论文

唐山学院

数字信号处理课程设计

 

题目基于MATLAB的数字滤波器设计

系(部)

班级

姓名

学号

指导教师

 

2013年6月17日至6月28日共2周

数字信号处理课程设计任务书

一、设计题目、内容及要求

设计题目:

基于MATLAB的数字滤波器设计

设计内容:

所设计的数字滤波器应完成以下功能:

(1)设计低通、带通、高通数字滤波器;

(2)可以对合成信号(含低频、中频、高频分量)、语音信号进行滤波;

(3)通过GUI界面进行控制。

设计要求:

1、根据题目要求进行数字滤波器总体设计。

2.完成数字滤波器具体设计。

(1)输入信号的选定。

(2)确定设计方法、设计指标。

3.滤波器程序的设计。

(1)完整源程序。

(2)运行结果图。

4.书写设计说明书。

二、设计原始资料

范寿康主编,DSP技术与DSP芯片,电子工业出版社。

三、要求的设计成果(课程设计说明书、设计实物、图纸等)

设计结果能正确仿真演示

设计说明书一份(包括总体设计、算法原理图及说明、系统GUI演示、源程序清单等)

四、进程安排

周一:

资料收集

周二:

利用MATLAB完成GUI界面绘制

周三:

程序调试

周四:

书写课程设计说明书

周五:

答辩

五、主要参考资料

1、楼顺天,李博菡.基于MATLAB的系统分析与设计—信号处理.西安电

子科技大学出版社,1998

2、奥本海姆.离散时间信号处理.科学出版社,2000

3、宗孔德,胡广书.数字信号处理.清华大学出版社,1997

指导教师(签名):

教研室主任(签名):

课程设计成绩评定表

出勤

情况

出勤天数

缺勤天数

出勤情况及设计过程表现(20分)

课设答辩(20分)

设计成果(60分)

总成绩(100分)

提问

(答辩)

问题

情况

 

指导教师签名:

年月日

目录

1引言1

2设计任务2

2.1设计内容2

2.2设计要求2

3语音信号的采集及时频分析3

3.1语音信号的采集3

3.2语音信号的时频分析3

4基于MATLAB的数字滤波器的设计5

4.1数字滤波器的设计5

4.1.1数字滤波器的基本概念5

4.1.2IIR滤波器设计思想5

4.2IIR数字滤波器设计5

4.2.1IIR低通滤波器设计5

4.2.2IIR带通滤波器设计7

4.2.3IIR高通滤波器设计9

5合成信号及其滤波12

5.1合成信号12

5.2合成信号滤波13

6设计系统界面15

6.1系统界面设计工具—GUI概述15

6.2界面设计及使用说明15

7心得体会18

参考文献19

附录20

1引言

数字信号处理是利用计算机或专用处理设备,以数值计算的方法对信号进行采集、抽样、变换、综合、估值与识别等加工处理,借以达到提取信息和便于应用的目的。

它在语音、雷达、图像、系统控制、通信、航空航天、生物医学等众多领域都获得了极其广泛的应用。

具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等优点。

数字滤波器,是数字信号处理中及其重要的一部分。

随着信息时代和数字技术的发展,受到人们越来越多的重视。

数字滤波器可以通过数值运算实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。

数字滤波器种类很多,根据其实现的网络结构或者其冲激响应函数的时域特性,可分为两种,即有限冲激响应(FIR,FiniteImpulseResponse)滤波器和无限冲激响应(IIR,InfiniteImpulseResponse)滤波器。

IIR滤波器采用递归型结构,即结构上带有反馈环路。

IIR滤波器运算结构通常由延时、乘以系数和相加等基本运算组成,可以组合成直接型、正准型、级联型、并联型四种结构形式,都具有反馈回路。

同时,IIR数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,在设计一个IIR数字滤波器时,我们根据指标先写出模拟滤波器的公式,然后通过一定的变换,将模拟滤波器的公式转换成数字滤波器的公式。

MATALB可以创建图形用户界面GUI(GraphicalUserInterface),它是用户和计算机之间交流的工具。

MATLAB将所有GUl支持的用户控件都集成在这个环境中并提供界面外观、属性和行为响应方式的设置方法,随着版本的提高,这种能力还会不断加强。

而且具有强大的绘图功能,可以轻松的获得更高质量的曲线图。

滤波器的设计可以通过软件或设计专用的硬件两种方式来实现。

随着MATLAB软件及信号处理工具箱的不断完善,MATLAB很快成为应用学科等领域不可或缺的基础软件。

它可以快速有效地实现数字滤波器的设计、分析和仿真,极大地减轻了工作量,有利于滤波器设计的最优化。

2设计任务

2.1设计内容

设计题目为基于MATLAB的数字滤波器设计所设计的数字滤波器应完成以下功能:

1.设计低通、带通、高通数字滤波器;

2.可以对合成信号(含低频、中频、高频分量)、语音信号进行滤波;

3.通过GUI界面进行控制。

2.2设计要求

1.根据题目要求进行数字滤波器总体设计。

2.完成数字滤波器具体设计。

(1)输入信号的选定。

(2)确定设计方法、设计指标。

3.滤波器程序的设计。

(1)完整源程序。

(2)运行结果图。

4.书写设计说明书。

3语音信号的采集及时频分析

3.1语音信号的采集

利用PC机上的声卡和WINDOWS操作系统可以进行数字信号的采集。

将话筒输入计算机的语音输入插口上,启动录音机。

按下录音按钮,接着对话筒说话“语音信号处理”,说完后停止录音,屏幕左侧将显示所录声音的长度。

点击放音按钮,可以实现所录音的重现。

以文件名“li”保存入E:

\MATLAB\work中。

可以看到,文件存储器的后缀默认为.wav,这是WINDOWS操作系统规定的声音文件存的标准。

3.2语音信号的时频分析

利用MATLAB中的“wavread”命令来读入(采集)语音信号,将它赋值给某一向量。

再对其进行采样,记住采样频率和采样点数。

下面介绍Wavread函数几种调用格式。

1.y=wavread(file)

功能说明:

读取file所规定的wav文件,返回采样值放在向量y中。

2.[y,fs,nbits]=wavread(file)

功能说明:

采样值放在向量y中,fs表示采样频率(,N)

参数xn为被变换的时域序列向量,N是DFT变换区间长度,当N大于xn的长度时,fft函数自动在xn后面补零;当N小于xn的长度时,fft函数计算xn的前N个元素,忽略其后面的元素。

在本次设计中,我们利用fft对语音信号进行快速傅里叶变换,就可以得到信号的频谱特性。

其程序如下:

[y,fs,nbits]=wavread('F:

\ppp.wav');

sound(y,fs,nbits);

N=length(y);

Y=fft(y,N);

axes()的特性来区分的,IIR滤波器的h(n)是无限长序列,而FIR滤波器的h(n)是有限长序列。

4.1.2IIR滤波器设计思想

IIR滤波器设计思想是:

利用已有的模拟滤波器设计理论,首先根据设计指标设计一个合适的模拟滤波器,然后再通过脉冲响应不变法或双线性变换法,完成从模拟到数字的变换。

常用的模拟滤波器有巴特沃斯(Butterworth)滤波器、切比雪夫(Chebyshev)滤波器、椭圆(Ellipse)滤波器、贝塞尔(Bessel)滤波器等,这些滤波器各有特点,供不同设计要求选用。

滤波器的模拟数字变换,通常是复变函数的映射变换,也必须满足一定的要求。

利用双线性变化法设计滤波器的变换原理:

双线性变换法是使数字滤波器的频率响应与模拟滤波器的频率响应相似的一种变换方法。

为了克服脉冲响应不变法的多值映射这一缺点,首先把整个s平面压缩变换到某一中介的s1平面的一横带里,然后再通过标准变换关系将此横带变换到整个z平面上去,这样就使s平面与z平面是一一对应关系,消除了多值变换性,同时也就消除了频谱混叠现象。

利用完全设计法设计数字滤波器的步骤:

1.将设计指标归一化处理。

2.根据归一化频率,确定最小阶数N和频率参数Wn。

可供选用的阶数选择函数有:

buttord,cheblord,cheb2ord,ellipord等。

3.运用最小阶数N设计模拟低通滤波器原型。

根据最小阶数直接设计模拟低通滤波器原型,用到的函数有:

butter,chebyl,cheby2,ellip和bessel。

如[B,A]=butter(N,Wn,'type')设计'type'型巴特沃斯(Butterworth)滤波器filter。

N为滤波器阶数,Wc为截止频率,type决定滤波器类型,type=(wp2);

fs=2*Fs*tan(ws2);

[n11,wn11]=buttord(wp,ws,1,50,'s');

[b11,a11]=butter(n11,wn11,'s');

[num11,den11]=bilinear(b11,a11,0.5);

[(pi*Fp1Ft);

wp2=tan(pi*Fp2Ft);

ws1=tan(pi*Fs1Ft);

ws2=tan(pi*Fs2Ft);

w=wp1*wp2ws2;

bw=wp2-wp1;

wp=1;

ws=(wp1*wp2-w.^2)(bw*w);

[n12,wn12]=buttord(wp,ws,1,50,'s');

[b12,a12]=butter(n12,wn12,'s');

[num2,den2]=lp2bp(b12,a12,sqrt(wp1*wp2),bw);

[num12,den12]=bilinear(num2,den2,0.5);

[(pi*FpFt);

ws1=tan(pi*FsFt);

wp=1;

ws=wp1*wpws1;

[n13,wn13]=cheb1ord(wp,ws,1,50,'s');

[b13,a13]=cheby1(n13,1,wn13,'s');

[num,den]=lp2hp(b13,a13,wn13);

[num13,den13]=bilinear(num,den,0.5);

[(2*pi*t*f1);

x2=sin(2*pi*t*f2);

x3=sin(2*pi*t*f3);

x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);

n=[1:

100];t=n2000

X=fft(x,512);w=(0:

255)256*1000;

x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);

axes((wp2);

fs=2*Fs*tan(ws2);

[n11,wn11]=buttord(wp,ws,1,50,'s');

[b11,a11]=butter(n11,wn11,'s');

[num11,den11]=bilinear(b11,a11,0.5);

[=length(y);

s=y;

S=fft(s);

z11=filter(num11,den11,s);

sound(z11);

m11=fft(z11);

axes((pi*Fp1Ft);

wp2=tan(pi*Fp2Ft);

ws1=tan(pi*Fs1Ft);

ws2=tan(pi*Fs2Ft);

w=wp1*wp2ws2;

bw=wp2-wp1;

wp=1;

ws=(wp1*wp2-w.^2)(bw*w);

[n12,wn12]=buttord(wp,ws,1,50,'s');

[b12,a12]=butter(n12,wn12,'s');

[num2,den2]=lp2bp(b12,a12,sqrt(wp1*wp2),bw);

[num12,den12]=bilinear(num2,den2,0.5);

[=length(y);

s=y;

S=fft(s);

z12=filter(num12,den12,s);

sound(z12);

m12=fft(z12);

axes((pi*FpFt);%高通到低通滤波器参数转换

ws1=tan(pi*FsFt);

wp=1;

ws=wp1*wpws1;

[n13,wn13]=cheb1ord(wp,ws,1,50,'s');%求模拟的低通滤波器阶数和截止频率

[b13,a13]=cheby1(n13,1,wn13,'s');%求S域的频率响应的参数

[num,den]=lp2hp(b13,a13,wn13);%将S域低通参数转为高通的

[num13,den13]=bilinear(num,den,0.5);%利用双线性变换实现S域到Z域转换

[=length(y);%求出语音信号的长度

s=y;

S=fft(s);%傅里叶变换

z13=filter(num13,den13,s);

sound(z13);

m13=fft(z13);%求滤波后的信号

axes((2*pi*t*f1);%绘制x(t)的图形

x2=sin(2*pi*t*f2);

x3=sin(2*pi*t*f3);

x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);

n=[1:

100];t=n2000

X=fft(x,512);w=(0:

255)256*1000;

x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);

Ft=8000;

Fp=1000;

Fs=1200;

As=100;

Ap=1;

wp=2*pi*FpFt;

ws=2*pi*FsFt;

fp=2*Fp*tan(wp2);

fs=2*Fs*tan(ws2);

[n11,wn11]=buttord(wp,ws,1,50,'s');

[b11,a11]=butter(n11,wn11,'s');

[num11,den11]=bilinear(b11,a11,0.5);

[(2*pi*t*f1);%绘制x(t)的图形

x2=sin(2*pi*t*f2);

x3=sin(2*pi*t*f3);

x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);

n=[1:

100];t=n2000

X=fft(x,512);w=(0:

255)256*1000;

x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);

Ft=8000;

Fp1=1200;

Fp2=3000;

Fs1=1000;

Fs2=3200;

As=100;

Ap=1;

wp1=tan(pi*Fp1Ft);

wp2=tan(pi*Fp2Ft);

ws1=tan(pi*Fs1Ft);

ws2=tan(pi*Fs2Ft);

w=wp1*wp2ws2;

bw=wp2-wp1;

wp=1;

ws=(wp1*wp2-w.^2)(bw*w);

[n12,wn12]=buttord(wp,ws,1,50,'s');

[b12,a12]=butter(n12,wn12,'s');

[num2,den2]=lp2bp(b12,a12,sqrt(wp1*wp2),bw);

[num12,den12]=bilinear(num2,den2,0.5);

[(2*pi*t*f1);%绘制x(t)的图形

x2=sin(2*pi*t*f2);

x3=sin(2*pi*t*f3);

x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);

n=[1:

100];t=n2000

X=fft(x,512);w=(0:

255)256*1000;

x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);

Ft=8000;

Fp=4000;

Fs=3500;

wp1=tan(pi*FpFt);%高通到低通滤波器参数转换

ws1=tan(pi*FsFt);

wp=1;

ws=wp1*wpws1;

[n13,wn13]=cheb1ord(wp,ws,1,50,'s');%求模拟的低通滤波器阶数和截止频率

[b13,a13]=cheby1(n13,1,wn13,'s');%求S域的频率响应的参数

[num,den]=lp2hp(b13,a13,wn13);%将S域低通参数转为高通的

[num13,den13]=bilinear(num,den,0.5);%利用双线性变换实现S域到Z域转换

[h,w]=freqz(num13,den13);

z13=filter(num13,den13,x);

sound(z13);

m13=fft(z13);%求滤波后的信号

axes(handles.axes1);

plot(abs(x),'g');

title('滤波前信号的频谱');

axes(handles.axes2);

plot(abs(m13),'r');

title('滤波后信号的频谱');

axes(handles.axes3);

plot(x);

title('滤波前信号的波形');

axes(handles.axes4);

plot(z13);

title('滤波后的信号波形');

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2