椭圆滤波器的设计.docx
《椭圆滤波器的设计.docx》由会员分享,可在线阅读,更多相关《椭圆滤波器的设计.docx(14页珍藏版)》请在冰豆网上搜索。
椭圆滤波器的设计
滤波器的设计(总14页)
-本页仅作为文档封面,使用时请直接删除即可-
-内页可以根据需求调整合适字体及大小-
第一章摘要
本文简单、直观地介绍了椭圆低通滤波器的基本理论和设计思想,阐述了设计椭圆低通滤波器的具体步骤,利用MATLAB产生一个包含低频、中频、高频分量的连续信号,并实现对连续信号进行的采样。
文中还对采样信号进行频谱分析,利用设计的椭圆滤波器对采样信号进行滤波处理,并对仿真结果进行分析和处理。
详细介绍了在用MATLAB设计椭圆滤波器用到的工具和命令。
第二章引言
信号处理是科学研究和工程技术许多领域都需要进行的一个重要环节,传统上对信号的处理大都采用模拟系统实现。
随着人们对信号处理要求的日益提高,以及模拟信号处理中一些不可克服的缺点,对信号的许多处理而采用数宇的方法进行。
近年来由于大规模集成电路和计算机技术的进步,信号的数宇处理技术得到了飞速发展。
数字信号处理系统无论在性能、可乘性、体积、耗电最、成本等诸多方面都比模拟信号处理系统优越的多,使得许多以往采用模拟信号处理的系统越来越多地被数字处理系统所代替,数字信号处理技术在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用,
在数字信号处理中,数字滤波器十分重要并已获得广泛应用,数字滤波器与模拟滤波器比较•具有精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配以及实现模拟滤波器无法实现的特殊滤波功能等优点。
在各种滤波器中,椭圆滤波器具有其独特的优点。
本次设计中所用到数学软件为MATLABoMATLAB和Mathematica、Maple并称为三大数学软件,它是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
第三章椭圆滤波器的基本理论
椭圆滤波器的概述
常用数字滤波器的类型有巴特沃斯(Butterworth),切比雪夫(Chebyshev)及椭圆型滤波器,其中椭圆滤波器(Ellipticfilter)又称考尔滤波器(Cauerfilter),是一种性能优越的滤波器。
从传递函数来看,巴特沃斯和切比雪夫滤波器的传输函数都是一个常数除以一个多项式,为全极点网络•仅在无限大阻带处衰减为无限大,而椭圆函数滤波器在有限频率上既有零点又有极点。
极零点在通带内产生等波纹,阻带内的有限传输零点减少了过渡区,可获得极为陡峭的衰减曲线。
也就是说在阶数相同的条件下,椭圆滤波器相比于其他类型的滤波器,能获得更窄的过渡带宽和较小的阻带波动,就这点而言,椭圆滤波器是最优的。
它陡峭的过渡带特性是用通带和阻带的起伏为代价来换取的,并且在通带和阻带的波动相同,这一点区别于在通带和阻带都平坦的巴特沃斯滤波器,以及通带平坦、阻带等波纹或是阻带平坦、通带等波纹的切比雪夫滤波器。
总结起来,椭圆滤波器具有以下特点:
1、椭圆低通滤波器是一种零、极点型滤波器,它在有限频率范围内存在传输零点和极点。
2、椭圆低通滤波器的通带和阻带都具有等波纹特性,因此通带,阻带逼近特性良好。
3、对于同样的性能要求,它比前两种滤波器所需用的阶数都低,而且它的过渡带比较窄。
但是椭圆滤波器传输函数是一种较复杂的逼近函数,利用传统的设计方法进行电路网络综合要进行繁琐的计算,还要根据计算结果进行查表,整个设计,调整都十分困难和繁琐。
而用MATLAB设计椭圆滤波器可以大大简化设计过程。
椭圆滤波器设计的数学推导
椭圆滤波器的振幅平方函数为
l/g)「=
其中Rn©G卩)是雅可比(Jacobi)椭圆函数,雅可比椭圆函数Ry=(Q/Qp)是阶
图1N二5时雅可比椭圆函数的特性曲线
由图1可见,在归一化通带内(・1WGW1)足(⑵在(0,1)间振荡,而超过怎
后屋(G)在(C,8)间振荡。
l越大,G厶也变大。
这一特点使滤波器同时在通带和阻带具有任意衰减量。
L是一个表示波纹性质的参量。
雅可比椭圆函数还具有以下性质:
阶数N等于通带和阻带内最大点和最小点的总和,£为与通带衰减有关的参数。
系统函数和阶数N是由系统下面的性能指标来确定的,主要有:
截止频率0。
通带内最大衰减4卩和阻带截止频率Cs以及阻带内最小衰减Aso
假定。
()是频率归一化的基准频率,即
定义频率的选择性因数k为
则截止频率分别归一化为
再次假定
g=go+2go'+15g:
+15gf(7)
庆=10("⑻
则得到椭圆滤波器的阶数N为
(10)
这时,令归一化的基准频率为。
0=1,则得到归一化后的椭圆低通滤波器的系统
函数为
式中,
(11)
朋偶数
N为奇数
加)=
1,"为偶数s+b(),N为奇数
所以,实际的椭圆低通滤波器就可以由归一化的系统函数来得到
(12)
图2为典型N为奇数的椭圆滤波器的幅度特性,当C。
,O5,£和人确定后,阶次N即可确定,进而可以设计出椭圆滤波器。
图2椭圆滤波器的幅度特性
关于归一化的讨论
归一化是一种简化计算的方式,主要是为了数据处理方便提出来的,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。
比如,复数阻抗可以归一化书写:
Z=R4-jcuL=R(1+jcuL/R),复数部分变成了纯数量了,没有量纲。
归一化方法(NormalizationMethod)把数据映射到0~1范围之内处理,更加便捷快速,应该归到数字信号处理范畴之内。
其具体作用是归纳统一样本的统计分布性。
归一化在0~1之间是统计的概率分布,归一化在-1~+1之间是统计的坐标分布。
归一化有同一、统一和合一的意思。
无论是为了建模还是为了计算.其基本度量单位要同一。
但是归一化处理并不总是合适的,根据输出值的分布情况,标准化等其它统计变换方法有时可能更好。
具体情况还需具体分析。
第四章设计过程
椭圆滤波器设计结构图
椭圆滤波器设计结构图如图3所示:
连续混合信号
采样频率
椭圆低通
输出
100Hz
滤波器
图3结构框图
设计椭圆数字滤波器的步骤
由于模拟滤波器的设计方法非常成熟,许多典型系统有成熟的公式、图表可以查阅,便于设计;因此设计数字滤波器的主要方法是:
首先设计一个合适的模拟滤波器,然后将他"变换”成满足给定指标的数宇滤波器,设计椭圆数字滤波器的步骤:
⑴确定数字滤波器性能指标厲、0、州、A;
(2)将数字滤波器性能指标转换成相应的模拟滤波器性能指标;
(3)设计满足指标要求的模拟滤波器H“(s);
(4)通过变换将模拟滤波器转换成数字滤波器。
数字椭圆低通滤波器的MATLAB实现
Matlab是MathWorks公司于1984年正式推出的一套集数值计算、符号运算及图形处理等强大功能于一体的科学计算语言。
作为强大的科学计算平台,他几乎能够满足所有的计算需求。
他的应用范围涵盖了当今几乎所有的领域,如电子、半导体制造、医学研究、航空航天、汽车制造、分子模型、影视制作、建筑等行业。
Matlab具有以下优势和特点:
友好的工作平台和编程环境,简单易用的程序语言,强大的科学计算及数据处理能力,出色的图形处理功能,应用广泛的模块集和工具箱,实用的程序接口和发布平台,模块化的设计和系统级的仿真。
随着Matlab的不断完善,尤其是Matlab的信号处理工具箱(SignalProcessingToolbox)的推出,如今Matlab已经成为数字信号处理DSP(DigitaISignalProcessing)应用中分析和仿真设计的主要工具。
设计椭圆滤波器所用函数
Matlab的信号处理工具箱提供了设计椭圆滤波器的函数:
ellipord函数、ellip函数和ellipap函数。
1.ellipord函数的功能是求滤波器的杲小阶数和截止频率,其调用格式:
[N,Wn]=ellipord(VV,©)可以得到数宇椭圆型滤波器的最小阶数N和
截止频率,并使滤波器在通带内(0,叫,)的波纹系数小于通带最大衰减A。
,阻带内(W,,1)的波纹系数大于阻带最小衰减尺。
其中是椭圆滤波器通带截止角频率,VV是椭圆滤波器阻带起始角频率。
根据本次任务书的设计要求,需要产生一个连续信号,包含低频5H乙中频15Hz,高频30Hz的三个分量,并对其进行采样,采样频率为100H乙采样点数为100o设计低通滤波器对信号进行滤浪处理,滤除中频和高频信号。
由于已知参数有限,对于设计中所用到的参数可取心二,尺二40,通带截止频率Wp=5H乙阻带截止频率Ws二10H乙归一化处理wp=2*Wp/Fs;ws=2*Ws/Fso根据程序:
Wp二5;Ws二10;
Fs=100;rp=;rs=40:
wp=2*Wp/Fs;ws=2*Ws/Fs;
[n,wn]=ellipord(wp,ws,rp,rs)
可得岀:
n二4
wn=
2.ellip函数的功能是设计滤波器,其调用格式:
[b,a]二ellip(N,R„,Rs,Wn),利用ellipord函数得到的最小阶数N和截止频率
W„,可以设计低通滤波器。
其中,b、a分别为椭圆滤波器传输函数的分子、分母多项式。
3.ellipap函数的功能是直接返回椭圆滤波器的零点z、极点p和増益k,其调用格式:
[z,p,k]二ellipap(N,Rp,RJ
频谱分析所用函数
Matlab的信号处理工具箱提供了频谱分析函数他函数、filter函数和freqz函数。
:
Lfft函数的功能是对信号进行快速傅里叶变换,其调用格式:
Y=fft(X)
Y=fft(X,n)
Y=fftfX-O.dim)
Y=fft(X,n,dim)
matlab的fft序号是从1到n,大多数采用从0到n-l,丫二fft(x)之后,这个Y是一个复数,它的模值应该除以(length(x)2),才能得到各个频率信号实际幅值。
fs二100Hz,Nyquist频率为fs/2二50Hz。
整个频谱图是以Nyquist频率为对称轴的。
由此可以知道FFT变换数据的对称性。
因此用FFT对信号做谱分析,只需考察0-Nyquist频率范为内的福频特性。
若没有给出采样频率和采样间隔,则分析通常对归一化频率
-9-
07进行。
另外,振幅的大小与所用采样点数有关,例如:
采用128点和1024点的相同频率的振幅是有不同的表现值,但在同一幅图中,40Hz与15Hz振动幅值之比均为4:
1,与真实振幅:
2是一致的。
为了与真实振幅对应,需要将变换后结果乘以2除以N。
2.Freqz函数功能是用来求幅频响应,其调用格式:
[h,w]=freqz(b.a,n)
[h,f]=freqz(b,a,n,Fs)
h=freqz(b,a,w)
h=freqz(b,a,f,Fs)
freqz(b,a,n)
说明:
freqz用于计算数宇滤波器H(Z)的频率响应函数H(ejco)。
[h,w]=freqz(b,a,n)可得到数字滤波器的n点复频响应值,这n个点均匀地分布在[0兀上,并将这n个频点的频率记录在w中,相应的频响值记录在h中。
要求n为大于零的整数,杲好为2的整数次幫,以便采用FFT计算,提高速度。
缺省时n二512。
[h,f]=freqz(b,a,n.Fs)用于对在[0,兀/2]上等间隔采样n点,采样点频率及
相应频响值分别记录在f和h中。
由用户指定鸟(以HZ为单位)值。
h=freqz(b,a,w)用于对H(eJW)在[0,2兀]上进行采样,采样频率点由矢量w指定。
h=freqz(b,a,f,Fs)用于对在[0迟]上采样,采样频率点由矢量f指定。
freqz(b,a,n)用于在当前图形窗口中绘制幅频和相频特性曲线。
3.filter函数功能是利用IIR滤波器和FIR滤波器对数据进行滤波.其调用格式:
fy,zfl=filter(b,a,x)y=filter(b,a,x,zi)
y=filter(b,a,x)
说明:
filter采用数字滤波器对数据进行滤波,其实现采用移位直接II型结构,因而适用于IIR和FIR滤波器。
滤波器的系统函数为
切、一%+咕'+b2z2+如+…+W
1+qz+"忆+佝2anz
即滤波器系数a=[a0a.a2...an],b=[b0b,b2...bn],^入序列矢量为x。
这里,标
准形式为a0=1,如果输入矢量a时,
a()^1,则MATLAB将自动进行归一化系数的操
作;如果%二0,则给出出错信息。
y二filter®,a,x)利用给定系数矢量a
和b对x中的数据进行滤波,结果放入y矢量
中,y的长度取max(N,M)o
y二filter(b,a,x,zi)可在zi中指定x的初始状态。
[y,zf]=filter(b,a,x)除得到矢量y外,
还得到X的最终状态矢量zf0
其他命令函数
在设计过程中出以上功能函数外,
还用到了很多其他的函数。
例如:
clc清除命令窗口中的内容
Clear清除内存中的变量和函数
Plot绘制线性图形
Abs取模等。
椭圆低通滤波器的设计程序
%原始混合信号的产生及对其采样
xlabelC时间/f)
Fs=100;
ylabelCW)
t=(l:
100)/Fs;
title。
原始输入模拟信号,)
sl=sin(2*pi*t*5);
subplot(2zl/2)
s2=sin(2*pi*t*15);
stem(t?
s)
s3=sin(2*pi*t*30);
xlabelC时间/F)
s=sl+s2+s3;
ylabelCW)
figure(l);
titleC采样后的输入信号)
subplot(2,l,l)
%椭圆低通滤波器的设讣
plot(t,s)
%求取最小阶数和截止频率
Wp=5;Ws=10;
axis([O1-11]);
Fs=100;rp=;rs=40;
S=fft(s,512);
wp=2*Wp/Fs;ws=2*Ws/Fs;
SF=fft(st512);
[n/wn]=ellipord(wp/ws/rp/rs)
w=(0:
255)/256*(Fs/2);
[b,a]=ellip(4,,40,5*2/Fs);
figure(4);
[H/w]=freqz(b/a/512);
subplot(2zl/l)
figure
(2);
plot(w,abs⑸1:
256)));
plot(w*Fs/(2*pi)/abs(H));
xlabel('频率/Hz1);
xlabel('频率/Hz');ylabel('幅度J;
ylabel(■幅度•);
title。
椭圆低通滤波器的幅度响应,)
title(■滤波前的傅立叶变换图,)
grid;
grid;
%对滤波后的信号进行分析和变换
subplot(2/l/2)
sf二filter(bas);
plot(wzabs(SF(l:
256)));
figure⑶;plot(t,sf);
xlabef频率/Hz');
xlabelC时间/t‘);
ylabel(■幅度);
ylabelf幅值・);
title。
滤波后的傅立叶变换图')
titleC滤波后的信号')
grid;
第五章仿真图
原始信号及其釆样仿真图,如图3所示
廊始输几罠払匕号
图3原始输入信号及其采样图
椭圆低通滤波器的幅度特性,如图5所示
图5椭圆低通滤波器的幅度特性
对信号进行傅里叶变换的仿真,如图6所示
图6信号的傅里叶变换
第六章结论
在最常用的巴特沃斯、切比雪夫、椭圆函数3种滤波器中,实现同样性能指标所需的阶数及阻带衰减,椭圆滤波器给出的设讣阶数比前两种低,而且频率特性较好,过渡带较窄,但是椭圆滤波器在通带上的非线性相位响应最明显。
数字滤波器的应用十分广泛,利用Matlab,很容易地设计地设汁出数字椭圆滤波器,数字椭圆滤波器可以用较少的阶数获得很高的选择特性,在相位要求不敏感的场合,如语音信号处理等,适合用数字椭圆滤波器。
在设计过程中可以对比滤波器的特性,随时更改参数,已达到滤波器设计的最优。
心得体会
整个设讣过程,让我感触最深的就是MATLAB功能的强大性与掌握编程各种函数和语句的重要性。
当然首先要了解所要编程运行的对象的原理。
在课程设汁的过程中,我深深的感受到我所学的东西太少了,需要学习的东四太多了。
在一周的课程设il•时间里,我每天都过的很充实,查资料、读程序,反复琢磨,学习的过程是艰辛的,但是同时也是快乐的。
通过实实在在的课程设计,发现自己在课堂上所学的知识对于解决实际问题来说,是远远不够的,要想掌握技术,还需要加倍的努力。
不过,在这短短一周的时间里,还是让我对数字信号处理有了更深了解,也学到了新的知识让我掌握了visio、MATLAB等软件的简单使用,明白了软件仿真对设计的重要性。
再次,这次课程设计让我充分认识到团队合作的重要性,只有分工协作才能保证整个项目的有条不紊。
在整个课程设计过程中我再次认识到坚持、耐心、细心等品质的重要,这对今后的学习和工作是有很大帮助的。
总之,这次课程设计让我获益良多。
参考文献
[1]matlab信号处理详解陈亚勇等编著人民邮电出版社,2001年
[2]电子滤波器设计宁彦卿等译科学出版社.2008年
[3]数字信号处理原理及应用谢平王娜李洪彬编著机械工业出版社2008年
[4]数字椭圆滤波器的Matlab设计与实现王靖李永全《现代电子技术》2007年
第6期总第245