椭圆高通滤波器设计马肖茗 0331.docx
- 文档编号:10946044
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:14
- 大小:536.31KB
椭圆高通滤波器设计马肖茗 0331.docx
《椭圆高通滤波器设计马肖茗 0331.docx》由会员分享,可在线阅读,更多相关《椭圆高通滤波器设计马肖茗 0331.docx(14页珍藏版)》请在冰豆网上搜索。
椭圆高通滤波器设计马肖茗0331
成绩
齐鲁理工学院
课程设计说明书(论文)
题目椭圆高通滤波器的设计
课程名称数字信号处理
二级学院机电工程学院
专业通信工程
班级2013级通信工程一班
学生姓名马肖茗
学号201310537033
设计地点电气信息工程训练中心
指导教师王彩峰
设计起止时间:
2016年6月13日至2016年6月24日
目录
一、设计任务与要求:
3
二、总体方案设计:
3
三、单元程序设计与参数计算:
4
四、程序与仿真:
6
五、分析及总结:
11
六、心得与体会12
七、参考文献12
椭圆高通滤波器的设计
一、课程设计目的
滤波器是自动控制、信号处理和通信领域的重要组成部分,广泛地应用于各种系统中。
通过本课程的学习,能够使学生掌握数字信号处理的基础知识、分析与计算的基本方法,具备进行试验的初步技能,并为后续课程的学习打下基础。
课程设计是理论教学之后的一个综合性实践教学环节,是对课程理论和课程实验的综合和补充。
通过查找资料、选择方案、撰写报告,完成一个较完整的设计过程,将抽象的理论知识与实际的设计联系在一起,使学生在掌握基本设计方法的同时,加深对课程知识的理解和综合应用,培养学生综合应用基础理论知识和专业知识解决实际工程设计问题的能力,以及工程意识和创新能力。
二、课程设计的基本要求
1.通过MATLAB编程可以很容易实现低通、高通、带通、带阻滤波器,并能画出滤波器的幅频特性曲线。
2.通过利用MATLAB滤波滤波器设计函数直接实现椭圆滤波器的设计,找到应用MATLAB来设计椭圆滤波器的方法。
3.给出了基于MATLAB设计高通椭圆型滤波器的具体步骤和利用MATLAB产生一个包含低频、中频、高频分量的连续信号,并实现对信号进行采样。
4.对采样信号进行频谱分析和利用设计的椭圆滤波器对采样信号进行滤波处理,并对仿真结果进行分析和处理。
椭圆高通滤波器的设计
一、设计任务与要求:
1.通过MATLAB编程可以很容易实现低通、高通、带通、带阻滤波器,并能画出滤波器的幅频特性曲线。
2.通过利用MATLAB滤波滤波器设计函数直接实现椭圆滤波器的设计,找到应用MATLAB来设计椭圆滤波器的方法。
3.给出了基于MATLAB设计高通椭圆型滤波器的具体步骤和利用MATLAB产生一个包含低频、中频、高频分量的连续信号,并实现对信号进行采样。
4.对采样信号进行频谱分析和利用设计的椭圆滤波器对采样信号进行滤波处理,并对仿真结果进行分析和处理。
二、总体方案设计:
(一)模拟滤波器的基本理论:
模拟滤波器是电子设备中最重要的部分之一。
常用的滤波器有巴特沃斯(Butterworth)和切比雪夫(Chebyshev)及椭圆型(Elliptical)滤波器,其中巴特沃斯。
和切比雪夫滤波器的传输函数都是一个常数除以一个多项式,为全极点网络,仅在无限大处阻带衰减为无限大,而椭圆函数滤波器在有限频率上既有零点又有极点。
零、极点在通带内产生等纹波,阻带内的有限传输零点减少了过渡区,可获得极为陡峭的衰减曲线。
也就是说对于给定的阶数和波纹要求,椭圆滤波器能获得较其它滤波器更窄的过渡带宽,就这点而言,椭圆滤波器是最优的。
(2)椭圆滤波器的特点:
椭圆滤波器传输函数是一种较复杂的逼近函数,利用传统的设计方法进行电路网络综合要进行繁琐的计算,还要根据计算结果进行查表,整个设计、调整都十分困难和繁琐。
有许多方法都是希望能快速简便地设计并实现椭圆滤波器从而把电子电路设计者从烦琐的模拟滤波器设计中解放出来。
本文采用的方法是MATLAB设计出滤波器的传输函数,然后再用通用的可编程滤波器来实现。
幅值响应在通带和阻带内都是等波纹的,对于给定的阶数和给定的波纹要求,椭圆滤波器能获得较其它滤波器为窄的过渡带宽。
(三)采样定理及相关定理
模拟信号经过(A/D)变换转换为数字信号的过程称之为采样,信号采样后其频谱产生了周期延拓,每隔一个采样频率fs,重复出现一次。
理想采样就是假设采样开关闭合时间无限短。
此时采样序列可表示为一个冲激函数序列。
采样定理:
要想采样后能够不失真地还原出原模拟信号,则采样频率必须大于两倍原模拟信号频谱的最高截止频率。
(4)设计步骤
1.确定模拟滤波器的性能指标:
Wp,Ws,αp,αs。
2.由性能指标计算出滤波器阶次N。
3.通过归一化及去归一化求出的模拟滤波器Ha(s)。
三、单元程序设计与参数计算:
(一)、 Matlab的信号处理软件提供了设计椭圆滤波器的函数:
ellipord函数和ellip函数。
1). Ellipord函数的功能是求滤波器的最小阶数。
确定模拟滤波器的性能指标:
Wp,Ws,Rp,Rs。
设计要求是高通滤波器,需要屏蔽的是5Hz和15Hz的波形,所以可令Wp=30*2/Fs,设Ws=1,Rp<0.1dB,Rp>40dB,由这些参数可用ellipord函数求的椭圆滤波器的阶数,其程序如下:
Rp=0.1; Rs=40;
Wp=30*2/Fs; Ws=1;
[n,Wn]=ellipord(Wp,Ws,Rp,Rs,'s');
各个参量意义:
N-椭圆滤波器最小阶数;Wn为椭圆滤波器的带宽;Wp-椭圆滤波器通带截止角频率;Ws-椭圆滤波器阻带起始角频率;Rp-通带波纹(dB);Rs-阻带最小衰减(dB);
计算结果为:
N=5,Wn= 0.6,即至少需要5阶椭圆滤波器。
2)、Ellip函数的功能是用来设计椭圆滤波器,其调用格式:
[b,a]=ellip(n,αp,αs,Wp)(3-1)
[b,a]=ellip(n,αp,αs,Wp,'ftype')(3-2)
其中:
'ftype'='high'高通滤波器;'ftype'='low'低通滤波器;'ftype'='stop'带阻滤波器
(二)、Matlab的信号处理工具箱提供了频谱分析函数:
fft函数、filter函数和freqz函数。
1.fft函数功能:
对信号进行离散傅里叶变换。
其调用格式:
fft(X)(3-3)
fft(X,N)(3-4)
fft(X,[],DIM)或fft(X,N,DIM)(3-5)
说明:
fft(X)是对输入信号X的离散傅里叶变换。
fft(X,N)是N点傅里叶变换,如果X少于N点则补0凑齐位数,长于N点则截断。
如果x是个矩阵,列的长度将会以同样的方式调整,fft会对每列进行傅里叶变换,并返回一个相同维数的矩阵。
fft(X,[],DIM)或fft(X,N,DIM)是离散傅里叶变换在DIM尺度上的应用。
DIM可适应于任意维度的fft运算。
2.filter函数功能:
利用IIR滤波器和FIR滤波器对数据进行滤波。
其调用格式:
y=filter(b,a,x)(3-6)
[y,zf]=filter(b,a,x)(3-7)
y=filter(b,a,x,zi)(3-8)
说明:
filter采用数字滤波器对数据进行滤波,其实现采用移位直接Ⅱ型结构,因而适用于IIR和FIR滤波器。
即滤波器系数a=[a0a1a2...an],b=[b0b1...bm],输入序列矢量为x。
这里,标准形式为a0=1,如果输入矢量a时,a0≠1,则MATLAB将自动进行归一化系数的操作;如果a0=0,则给出出错信息。
y=filter(b,a,x)利用给定系数矢量a和b对x中的数据进行滤波,结果放入y矢量中,y的长度取max(N,M)。
y=filter(b,a,x,zi)可在zi中指定x的初始状态。
[y,zf]=filter(b,a,x)除得到矢量y外,还得到x的最终状态矢量zf。
3.freqz函数功能:
离散时间系统的频率响应。
其调用格式:
[h,w]=freqz(b,a,n)(3-9)
[h,f]=freqz(b,a,n,Fs)(3-10)
h=freqz(b,a,w)(3-11)
h=freqz(b,a,f,Fs)(3-12)
freqz(b,a,n)(3-13)
说明:
freqz用于计算数字滤波器H(Z)的频率响应函数H(e)。
[h,w]=freqz(b,a,n)可得到数字滤波器的n点幅频响应值,这n个点均匀地分布在[0,π]上,并将这n个频点的频率记录在w中,相应的频响值记录在h中。
要求n为大于零的整数,最好为2的整数次幂,以便采用FFT计算,提高速度。
缺省时n=512。
jω[h,f]=freqz(b,a,n,Fs)用于对H(e)在[0,Fs/2]上等间隔采样n点,采样点频率及相应频响值分别记录在f和h中。
由用户指定FS(以HZ为单位)值。
h=freqz(b,a,w)用于对H(e)在[0,2π]上进行采样,采样频率点由矢量w指定。
h=freqz(b,a,f,Fs)用于对H(e)在[0,FS]上采样,采样频率点由矢量f指定。
freqz(b,a,n)用于在当前图形窗口中绘制幅频和相频特性曲线。
四、程序与仿真:
一)、高通滤波器设计程序:
%连续信号的产生及采样
clear Fs=100;
t=(1:
100)/Fs;
s1=sin(2*pi*t*5);
s2=sin(2*pi*t*15);
s3=sin(2*pi*t*30);
s=s1+s2+s3;
plot(t,s)
xlabel('时间(s)')
ylabel('幅值')
a、连续信号仿真图:
图4-1
图4.1:
连续信号的仿真图
%椭圆高通滤波器的设计
Rp=0.1; Rs=40;
Wp=30*2/Fs; Ws=1;
[n,Wn]=ellipord(Wp,Ws,Rp,Rs,'s');
[b,a]=ellip(n,Rp,Rs,Wp,'high');
[H,w]=freqz(b,a,512);
plot(w*Fs/(2*pi),abs(H));
xlabel('频率(Hz)');
ylabel('频率响应图');
grid;
b、椭圆高通滤波器的仿真图图4-2
图4-2:
椭圆高通滤波器的仿真图
%对滤波后的信号进行分析和变换
sf=filter(b,a,s);
plot(t,sf);
xlabel('时间 (s)');
ylabel('幅值');
axis([0 1 -1 1]);
S=fft(s,512);
SF=fft(sf,512);
w=(0:
255)/256*(Fs/2);
plot(w,abs([S(1:
256)' SF(1:
256)']));
xlabel('频率(Hz)');
ylabel('傅立叶变换图');
grid;
legend({'before','after'});
c、信号通过椭圆高通滤波器的仿真图,如图
图4-3:
信号通过椭圆高通滤波器的仿真图
二)、给原始信号加一个白噪声则
%给连续采样信号增加一个噪声
clear
Fs=100;
t=(1:
100)/Fs;
s1=sin(2*pi*t*5);
s2=sin(2*pi*t*15);
s3=sin(2*pi*t*30);
s=s1+s2+s3;
noise=randn(size(s));
plot(t,noise)
xlabel('时间(s)')
ylabel('幅值')
图4.4连续信号加噪声后的仿真图
%对滤波后的加噪信号进行分析和变换
sf=filter(b,a,noise);
plot(t,sf);
xlabel('时间(s)');
ylabel('幅值');
axis([01-11]);
S=fft(noise,512);
SF=fft(sf,512);
w=(0:
255)/256*(Fs/2);
plot(w,abs([S(1:
256)'SF(1:
256)']));
xlabel('频率(Hz)');
ylabel('傅立叶变换图');
grid;
legend({'before','after'});
图4.5:
加噪信号通过椭圆高通滤波器的仿真
五、分析及总结:
椭圆滤波器能得到较其它滤波器更窄的过渡带宽,可以获得对理想滤波器幅频响应的最好逼近,是一种性价比很高的滤波器。
利用Matlab语言,其信号处理工具箱提供了丰富的设计方法,可以使得繁琐的程序设计简化成函数的调用,只要以正确的指标参数调用函数,就可以正确快捷地得到设计结果从而较方便地设计出椭圆滤波器。
椭圆滤波器可以用较少的阶数获得很高的选择特性,在设计过程中可以对比滤波器的特性,随时更改椭圆滤波器通带截止角频率Wp,阻带起始角频率Ws,通带波纹αp,阻带最小衰减αs等参数,观察滤波器的滤波效果。
通过在设计中计算出的阶次,考虑到实际应用中计算机计算时间的限制,滤波器阶次不可能过高,左右浮动试验多次后得出5阶为最佳阶数。
通过图可知,设计出的滤波器具有较理想的高通性能,对中频和低频信号能有明显的截止作用,同时也不会对高频信号造成损失,很好的满足了设计要求。
六、心得与体会
通过一个星期的数字信号处理课程设计,我对教材中所学知识有了更深的理解和认识,教材中的基本定理和原理对我的设计起到了很好的指导作用,同时学习应用了数字信号处理软件Matlab,感叹于其功能的强大性与掌握编程各种函数和语句的重要性。
通过了解所要编程运行的对象的原理,我学会了熟练运用其基本功能。
我觉得近一周的课程设计对我来说,它不仅仅是让我们把所学的理论知识与实践相结合起来,提高自己的实际动手能力和独立思考的能力,更重要的是同学间的团结,课程设计反映的是一个从理论到实际应用的过程,但是更远一点可以联系到毕业以后从学校到踏上社会的一个过程。
同组同学的方案和建议使得我们的设计得以完善,在仿真中遇到的问题也都得到了解决。
在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。
为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。
另外在设计过程中也用到了许多高数等其他基础课的知识,对以前的内容有了更加综合的掌握。
由于首次进行应用数字信号处理的设计,很多知识还未做到灵活运用的程度,如果以后有机会,我会继续锻炼自己的能力。
七、参考文献
[1]肖有平,胡霞.高阶椭圆滤波器的设计与仿真[J].电子测量技术,2007,(3)。
[2]王靖,李永全.椭圆滤波器Matlb设计与实现[J].现代电子技术,2007,(6)。
[3]谢平王娜林洪彬.信号处理及应用.机械工业出版社。
[4]吴湘肖熙郝晓丽.信号、系统与信号处理的软硬件实现.电子工业出版社。
机电工程学院数字信号处理课程设计成绩评定表
专业:
通信工程班级:
2013级通信工程一班学号:
201310537033姓名:
马肖茗
课题名称
椭圆高通滤波器的设计与仿真
设计任务与要求
1.通过MATLAB编程可以很容易实现低通、高通、带通、带阻滤波器,并能画出滤波器的幅频特性曲线。
2.通过利用MATLAB滤波滤波器设计函数直接实现椭圆滤波器的设计,找到应用MATLAB来设计椭圆滤波器的方法。
3.给出了基于MATLAB设计高通椭圆型滤波器的具体步骤和利用MATLAB产生一个包含低频、中频、高频分量的连续信号,并实现对信号进行采样。
4.对采样信号进行频谱分析和利用设计的椭圆滤波器对采样信号进行滤波处理,并对仿真结果进行分析和处理。
教师评语
课程设计成绩
指导教师:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 椭圆高通滤波器设计马肖茗 0331 椭圆 滤波器 设计 马肖茗