椭圆滤波器的设计教程文件.docx
《椭圆滤波器的设计教程文件.docx》由会员分享,可在线阅读,更多相关《椭圆滤波器的设计教程文件.docx(16页珍藏版)》请在冰豆网上搜索。
椭圆滤波器的设计教程文件
椭圆滤波器的设计
第一章摘要
本文简单、直观地介绍了椭圆低通滤波器的基本理论和设计思想,阐述了设计椭圆低通滤波器的具体步骤,利用MATLAB产生一个包含低频、中频、高频分量的连续信号,并实现对连续信号进行的采样。
文中还对采样信号进行频谱分析,利用设计的椭圆滤波器对采样信号进行滤波处理,并对仿真结果进行分析和处理。
详细介绍了在用MATLAB设计椭圆滤波器用到的工具和命令。
第二章引言
信号处理是科学研究和工程技术许多领域都需要进行的一个重要环节,传统上对信号的处理大都采用模拟系统实现。
随着人们对信号处理要求的日益提高,以及模拟信号处理中一些不可克服的缺点,对信号的许多处理而采用数字的方法进行。
近年来由于大规模集成电路和计算机技术的进步,信号的数字处理技术得到了飞速发展。
数字信号处理系统无论在性能、可靠性、体积、耗电量、成本等诸多方面都比模拟信号处理系统优越的多,使得许多以往采用模拟信号处理的系统越来越多地被数字处理系统所代替,数字信号处理技术在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。
在数字信号处理中,数字滤波器十分重要并已获得广泛应用,数字滤波器与模拟滤波器比较,具有精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配以及实现模拟滤波器无法实现的特殊滤波功能等优点。
在各种滤波器中,椭圆滤波器具有其独特的优点。
本次设计中所用到数学软件为MATLAB。
MATLAB和Mathematica、Maple并称为三大数学软件,它是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
第3章椭圆滤波器的基本理论
3.1椭圆滤波器的概述
常用数字滤波器的类型有巴特沃斯(Butterworth),切比雪夫(Chebyshev)及椭圆型滤波器,其中椭圆滤波器(Ellipticfilter)又称考尔滤波器(Cauerfilter),是一种性能优越的滤波器。
从传递函数来看,巴特沃斯和切比雪夫滤波器的传输函数都是一个常数除以一个多项式,为全极点网络,仅在无限大阻带处衰减为无限大,而椭圆函数滤波器在有限频率上既有零点又有极点。
极零点在通带内产生等波纹,阻带内的有限传输零点减少了过渡区,可获得极为陡峭的衰减曲线。
也就是说在阶数相同的条件下,椭圆滤波器相比于其他类型的滤波器,能获得更窄的过渡带宽和较小的阻带波动,就这点而言,椭圆滤波器是最优的。
它陡峭的过渡带特性是用通带和阻带的起伏为代价来换取的,并且在通带和阻带的波动相同,这一点区别于在通带和阻带都平坦的巴特沃斯滤波器,以及通带平坦、阻带等波纹或是阻带平坦、通带等波纹的切比雪夫滤波器。
总结起来,椭圆滤波器具有以下特点:
1、椭圆低通滤波器是一种零、极点型滤波器,它在有限频率范围内存在传输零点和极点。
2、椭圆低通滤波器的通带和阻带都具有等波纹特性,因此通带,阻带逼近特性良好。
3、对于同样的性能要求,它比前两种滤波器所需用的阶数都低,而且它的过渡带比较窄。
但是椭圆滤波器传输函数是一种较复杂的逼近函数,利用传统的设计方法进行电路网络综合要进行繁琐的计算,还要根据计算结果进行查表,整个设计,调整都十分困难和繁琐。
而用MATLAB设计椭圆滤波器可以大大简化设计过程。
3.2椭圆滤波器设计的数学推导
椭圆滤波器的振幅平方函数为:
(1)
其中
是雅可比(Jacobi)椭圆函数,雅可比椭圆函数
是阶数N的有理函数,N=5时的特性曲线如图1所示。
图1N=5时雅可比椭圆函数的特性曲线
由图1可见,在归一化通带内(-1≤
≤1),
(
)在(0,1)间振荡,而超过
后,
(
)在(
∞)间振荡。
L越大,
也变大。
这一特点使滤波器同时在通带和阻带具有任意衰减量。
L是一个表示波纹性质的参量。
雅可比椭圆函数还具有以下性质:
(2)
阶数N等于通带和阻带内最大点和最小点的总和,ε为与通带衰减有关的参数。
系统函数和阶数N是由系统下面的性能指标来确定的,主要有:
截止频率
通带内最大衰减
和阻带截止频率
以及阻带内最小衰减
。
假定
是频率归一化的基准频率,即
(3)
定义频率的选择性因数k为
(4)
则截止频率分别归一化为
(5)
再次假定
(6)
(7)
(8)
(9)
则得到椭圆滤波器的阶数N为
(10)
这时,令归一化的基准频率为
,则得到归一化后的椭圆低通滤波器的系统函数为
(11)
式中,
所以,实际的椭圆低通滤波器就可以由归一化的系统函数来得到
(12)
图2为典型N为奇数的椭圆滤波器的幅度特性,当
,
,
和A确定后,阶次N即可确定,进而可以设计出椭圆滤波器。
图2椭圆滤波器的幅度特性
3.3关于归一化的讨论
归一化是一种简化计算的方式,主要是为了数据处理方便提出来的,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。
比如,复数阻抗可以归一化书写:
Z=R+jωL=R(1+jωL/R),复数部分变成了纯数量了,没有量纲。
归一化方法(NormalizationMethod)把数据映射到0~1范围之内处理,更加便捷快速,应该归到数字信号处理范畴之内。
其具体作用是归纳统一样本的统计分布性。
归一化在0~1之间是统计的概率分布,归一化在-1~+1之间是统计的坐标分布。
归一化有同一、统一和合一的意思。
无论是为了建模还是为了计算,其基本度量单位要同一。
但是归一化处理并不总是合适的,根据输出值的分布情况,标准化等其它统计变换方法有时可能更好。
具体情况还需具体分析。
第四章设计过程
4.1椭圆滤波器设计结构图
椭圆滤波器设计结构图如图3所示:
图3结构框图
4.2设计椭圆数字滤波器的步骤
由于模拟滤波器的设计方法非常成熟,许多典型系统有成熟的公式、图表可以查阅,便于设计;因此设计数字滤波器的主要方法是:
首先设计一个合适的模拟滤波器,然后将他“变换”成满足给定指标的数字滤波器。
设计椭圆数字滤波器的步骤:
(1)确定数字滤波器性能指标
、
、
、
;
(2)将数字滤波器性能指标转换成相应的模拟滤波器性能指标;
(3)设计满足指标要求的模拟滤波器
;
(4)通过变换将模拟滤波器转换成数字滤波器。
4.3数字椭圆低通滤波器的MATLAB实现
Matlab是MathWorks公司于1984年正式推出的一套集数值计算、符号运算及图形处理等强大功能于一体的科学计算语言。
作为强大的科学计算平台,他几乎能够满足所有的计算需求。
他的应用范围涵盖了当今几乎所有的领域,如电子、半导体制造、医学研究、航空航天、汽车制造、分子模型、影视制作、建筑等行业。
Matlab具有以下优势和特点:
友好的工作平台和编程环境,简单易用的程序语言,强大的科学计算及数据处理能力,出色的图形处理功能,应用广泛的模块集和工具箱,实用的程序接口和发布平台,模块化的设计和系统级的仿真。
随着Matlab的不断完善,尤其是Matlab的信号处理工具箱(SignalProcessingToolbox)的推出,如今Matlab已经成为数字信号处理DSP(DigitalSignalProcessing)应用中分析和仿真设计的主要工具。
4.3.1设计椭圆滤波器所用函数
Matlab的信号处理工具箱提供了设计椭圆滤波器的函数:
ellipord函数、ellip函数和ellipap函数。
1.ellipord函数的功能是求滤波器的最小阶数和截止频率,其调用格式:
[N,
]=ellipord(
)可以得到数字椭圆型滤波器的最小阶数N和截止频率
并使滤波器在通带内(0,
)的波纹系数小于通带最大衰减
阻带内(
1)的波纹系数大于阻带最小衰减
。
其中
是椭圆滤波器通带截止角频率,
是椭圆滤波器阻带起始角频率。
根据本次任务书的设计要求,需要产生一个连续信号,包含低频5Hz,中频15Hz,高频30Hz的三个分量,并对其进行采样,采样频率为100Hz,采样点数为100。
设计低通滤波器对信号进行滤波处理,滤除中频和高频信号。
由于已知参数有限,对于设计中所用到的参数可取
=0.1,
=40,通带截止频率Wp=5Hz,阻带截止频率Ws=10Hz,归一化处理wp=2*Wp/Fs;ws=2*Ws/Fs。
根据程序:
Wp=5;Ws=10;
Fs=100;rp=0.1;rs=40;
wp=2*Wp/Fs;ws=2*Ws/Fs;
[n,wn]=ellipord(wp,ws,rp,rs)
可得出:
n=4
wn=0.1000
2.ellip函数的功能是设计滤波器,其调用格式:
[b,a]=ellip(N,
),利用ellipord函数得到的最小阶数N和截止频率
可以设计低通滤波器。
其中,b、a分别为椭圆滤波器传输函数的分子、分母多项式。
3.ellipap函数的功能是直接返回椭圆滤波器的零点z、极点p和增益k,其调用格式:
[z,p,k]=ellipap(N,
)
4.3.2频谱分析所用函数
Matlab的信号处理工具箱提供了频谱分析函数:
fft函数、filter函数和freqz函数。
1.fft函数的功能是对信号进行快速傅里叶变换,其调用格式:
Y=fft(X)
Y=fft(X,n)
Y=fft(X,[],dim)
Y=fft(X,n,dim)
matlab的fft序号是从1到n,大多数采用从0到n-1,Y=fft(x)之后,这个Y是一个复数,它的模值应该除以(length(x)2),才能得到各个频率信号实际幅值。
fs=100Hz,Nyquist频率为fs/2=50Hz。
整个频谱图是以Nyquist频率为对称轴的。
由此可以知道FFT变换数据的对称性。
因此用FFT对信号做谱分析,只需考察0~Nyquist频率范为内的福频特性。
若没有给出采样频率和采样间隔,则分析通常对归一化频率0~1进行。
另外,振幅的大小与所用采样点数有关,例如:
采用128点和1024点的相同频率的振幅是有不同的表现值,但在同一幅图中,40Hz与15Hz振动幅值之比均为4:
1,与真实振幅0.5:
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(ejω)。
[h,w]=freqz(b,a,n)可得到数字滤波器的n点复频响应值,这n个点均匀地分布在[0,π]上,并将这n个频点的频率记录在w中,相应的频响值记录在h中。
要求n为大于零的整数,最好为2的整数次幂,以便采用FFT计算,提高速度。
缺省时n=512。
[h,f]=freqz(b,a,n,
)用于对
在[0,
/2]上等间隔采样n点,采样点频率及相应