带通滤波器的模拟 - 图文

更新时间:2024-01-31 10:32:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

带通滤波器的模拟

一、摘要

本文介绍低通滤波器的设计方法,设计一个简单的带通滤波器,同时用Matlab仿真,Audition模拟。还观察比较了贝塞尔滤波器,巴特沃斯滤波器、切比雪夫滤波器,椭圆滤波器的特点。

[Abstract] This article mainly introduced the designing of a filter, to design a bandpass filter. Meanwhile , simulating it by using Matlab and Audition ,for observing when a signal passes 4 different types of BPF. Then made a comparison about the effect of these filters of Bessel,Butterworth, Chebychev, and elliptic

二、关键词 带通滤波器设计 Matlab仿真 Audition模拟

三、前言

在通信(如信号传递)过程中,会被外界信号干扰,信号中会叠加一部分噪声等无用信号,有时候在产生某一种信号时,一定会产生噪声,当中也不可避免的会混入一部分干扰信号,不利于信号的接收,这就给现实生活带来很大的麻烦,因此,在信号传递过程中,消除或者减弱干扰信号是必须的。这就需要提取信号,也就是滤波。滤波器的种类很多,有低通,带通,高通,带阻,还有以人名命名的滤波器,本文将以带通滤波器为主题,进行探讨。

四、正文

(一)实现带通滤波器的方法主要分为两种:????????????【1】 1、直接法,通过电阻、电容、电感和运算放大器等元器件直接设计的频率选择性带通滤波器(如高通滤波器和低通滤波器串联),但是这样的滤波器的中心频率由许多元件决定,如果要直接调节中心频率,全部元件都要按照某一种正确的方式同时变化。在实际应用中会很麻烦,而且仅制作一个固定特性的带通滤波器是比较麻烦的。

2、间接法,利用信号的相乘性质,用恰当地将信号移动的方法改变滤波器的中心频率,这样就实现了中心频率可变的带通滤波器,中心频率可以通过调谐旋钮来实现..本文将采用该方法实现带通滤波器的模拟.

(二)原理 现在考虑一个系统,如图所示, 输入一个信号x(t),然后乘以一个复指数信号

图1

然后信号通过一个截止频率为

而傅里叶变换的性质可以得到

的低通滤波器,出来的信号再乘以

Y?j????????c?*X?j???X?j????c??

就等于

向右移

图1中的y(t),w(t),f(t)的频谱图像如图2所示。这样

在F

中靠近附近的频谱就经过频移移到了低通滤波器的通带内。同样,可以得到,F

向左移动

就可以得到,

。由图2可以看到,图1所示的

整个系统可以等效为一个中心频率是

图2 图3 通带为

的带通滤波器,如图3所示,这样只要改变复指数信号的频率

,就可以轻

松的改变带通滤波器的中心频率。

(三)设计带通滤波器 …………………………………… 【2】

<一>模拟滤波器技术指标的转换

模拟带通滤波器的设计指标有中心频率f0,通带截止频率fp1,fp2,阻带截止频率fs1,fs2,通带最大衰耗

,阻带最小衰耗

(1)把模拟频率转换成相应的数字频率

通过公式(式中,T为采样周期)可以把给定的模拟频率转换成数字频率。

(2)通过频率预畸变把数字频率转换成相应的模拟角频率:

?p1??s1???p1???p2?22tan???tan???p2TT?2? ?2? 22??????tan?s1??s2?tan?s2?TT?2? ?2?

?0?2???B??p2??p1tan?0?T2??

(3)将指标转换为归一化模拟低通指标:

经查表我们可以得到从归一化模拟低通滤波器到实际模拟带通滤波器的变换

公式

sB2??02sL?sBB

式中:?0??p1?p2表示通带的中心频率,B??p2??p1表示通带带宽。

?B2??02将s代以j?,则有?L?

?BB因此频率作如下变换

?p12??02?p22??02?c1? ?c2?

?p1B?p2B?s12??02?s22??02?r1? ?r2??s1B?s2B

而模拟低通滤波器通带最大衰耗与阻带最大衰耗和模拟带通滤波器的相同。

<二>归一化模拟低通滤波器的设计

(1) 确定归一化截频

归一化的模拟低通滤波器取?c?1,而阻带截频?r取?r1,?r2中绝对值较小的。

(2) 确定归一化模拟低通滤波器阶数 低通滤波器的阶数N满足下面的不等式

100.1?r?1lg0.1?p10?1 N?(1.3.1)lg(?r?c)(通常N取满足条件的最小的正整数) 因此,可以通过理论计算来确定N的值。

此外,利用Matlab中的命令语句也可以确定出N的数值。

<三>把归一化的模拟低通滤波器转换成模拟带通滤波器

s2??02将s?分别代入系统函数可得带通滤波器的频率响应函数。

sB

<四>滤波器特点简介

贝塞尔(Bessel filter)滤波器是具有最大平坦的群延迟(线性相位响应)的线性过滤器。

贝赛尔滤波器常用在音频天桥系统中。模拟贝赛尔滤波器描绘为几乎横跨整个通频带的恒定的群延迟,因而在通频带上保持了被过滤的信号波形.

虽然贝塞尔滤波器在它的通频带内提供平坦的幅度和线性相位(即一致的群延时)响应,但它的选择性比同阶(或极数)的巴特沃斯滤波器或切比雪夫滤波器要差。

巴特沃斯滤波器(Butterworth filter)是通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零。 在振幅的对数对角频率的波特图上,从某一边界角频率开始,振幅随着角频率的增加而逐步减少,趋向负无穷大。

切比雪夫滤波器(Chebychev filter),在过渡带比巴特沃斯滤波器的衰减快,但频率响应的幅频特性不如后者平坦。切比雪夫滤波器和理想滤波器的频率响应曲线之间的误差最小,但是在通频带内存在幅度波动

I型切比雪夫滤波器

在通带(或称“通频带”)上频率响应幅度等波纹波动的滤波器称为“I型切比雪夫滤波器”;

II型切比雪夫滤波器

在阻带(或称“阻频带”)上频率响应幅度等波纹波动的滤波器称为“II型切比雪夫滤波器”。

椭圆滤波器(Elliptic filter),是在通带和阻带等波纹的一种滤波器。椭圆滤波器相比其他类型的滤波器,在阶数相同的条件下有着最小的通带和阻带波动。它在通带和阻带的波动相同,这一点区别于在通带和阻带都平坦的巴特沃斯滤波器,以及通带平坦、阻带等波纹或是阻带平坦、通带等波纹的切比雪夫滤波器。

<五>四种带通滤波器的Matlab仿真 Matlab仿真模拟图

序滤 号 波器名称 1 贝塞尔滤波器 最大平坦群时延 频率响应 增益 2 巴特沃斯滤波器 通频带最平坦 3 切比雪夫I型滤波器 通带波纹 4 切比雪夫 II型滤波器 阻带波纹 5 椭圆滤波器 通带阻带都有波纹 5

(当阶数与巴特沃斯滤波器相同时,贝塞尔滤波器的增益小于0,对信号起衰减效应)

(五)四种带通滤波器对粉红噪音信号的过滤模拟----基于Audition

1 贝塞尔滤波器. (6阶) 2 巴特沃斯滤波器. (40阶) (所设Transition Bandwith较窄,接近于理想带通滤波器) 3 切比雪夫I型滤波器 (18阶) . . 4 切比雪夫II型滤波器 (40阶) 阶数增大,波纹条数增多 信号通过滤波器后得到的频谱和波形图如下 (从左至右依次为贝塞尔,巴特沃斯,切比雪夫I型,切比雪夫II型滤波器) 频谱

波形

可以看出,当过渡带较窄时,所滤出的信号具有更加明显的通带-阻带区分。当切比雪夫滤波器阶数增大时,其纹波条数增多。但当滤波器阶数越高时,滤波效果越明显。

<六>如何根据实际选择带通滤波器

若要最大限度的保持信号不失真,一般选择贝塞尔带通滤波器,但是贝塞尔滤波器的的一个弊端是,在阶数相同的情况下,其选择性不如巴特沃斯等带通滤波器。只满足相频特性而不关心幅频特性。贝塞尔滤波器又称最平时延或恒时延滤波器。其相移和频率成正比,即为一线性关系。但是由于它的幅频特性欠佳,而往往限制了它的应用。从幅频特性提出要求,而不考虑相频特性。巴特沃斯滤波器具有最大平坦幅度特性,切贝雪夫滤波器也是从幅频特性方面提出逼近要求的,与巴特沃斯逼近特性相比较,这种特性虽然在通带内有起伏,但对

同样的n值在进入阻带以后衰减更陡峭,更接近理想情况。切贝雪夫滤波器与巴特沃斯滤波器进行比较,切贝雪夫滤波器的通带有波纹,过渡带轻陡直,因此,在不允许通带内有纹波的情况下,巴特沃斯型更可取;从相频响应来看,巴特沃斯型要优于切贝雪夫型,只满足相频特性而不关心幅频特性。巴特沃斯型相频响应更接近于直线。至于椭圆滤波器,则是对于通带和阻带的波纹都有限制条件,而且还要求过渡带较小。

五、结论

本文给出了带通滤波器的模拟原理,并且给出了常用的带通滤波器的Matlab程序以及彼此之间的异同,巴特沃斯滤波器的衰减因数小于椭圆滤波器,但是其阻带波纹小,最终趋向于0,切比雪夫滤波器只是阻带或者通带有波纹。并通过Audition进行了模拟滤波测试,观察滤波器滤波效果。但是,对于滤波器的设计方法并没有给出过程,并没有用物理方法实现各种带通滤波器

六、参考文献

【1】奥本海姆.信号与系统(第二版).刘树棠译

【2】梁虹.信号与线性系统分析——基于MATLAB的方法与实现.高等教育出版社

七、附录

Matlab代码

基于Matlab设计的带通滤波器 fs=20;fp1=2;fp2=4;fs1=1.5;fs2=4.5; Ap=0.0877;As=16.9897;

wpa=2*pi*fp1/fs;wpb=2*pi*fp2/fs;wsa=2*pi*fs1/fs;wsb=2*pi*fs2/fs; c=sin(wpa+wpb)/(sin(wpa)+sin(wpb)); omegap=abs((c-cos(wpb))/sin(wpb));

omegasa=(c-cos(wsa))/sin(wsa);omegasb=(c-cos(wsb))/sin(wsb); omegas=min(abs(omegasa),abs(omegasb)); ep=sqrt(10^(Ap/10)-1);es=sqrt(10^(As/10)-1); N=ceil(log(es/ep)/log(omegas/omegap)); omega0=omegap/ep^(1/N); w=(0+eps):pi/300:pi;

Hw2=1./(1+((c-cos(w))./(omega0*sin(w))).^(2*N)); plot(w/pi,Hw2); grid;

巴特沃斯带通滤波器 模拟程序

wp1=0.45*pi; wp2=0.65*pi; ws1=0.3*pi; ws2=0.75*pi; Rp=1; Rs=40;

Wp=[wp1/pi,wp2/pi]; Ws=[ws1/pi,ws2/pi]; [N,Wn]=buttord(Wp,Ws,Rp,Rs); [B,A]=butter(N, Wn);

[h,omega]=freqz(B,A,64);

subplot(1,2,1);plot(omega/pi,abs(h));grid; xlabel('\\omega/\\pi');ylabel('|H(s)|');

subplot(1,2,2);plot(omega/pi,20*log10(abs(h)));grid; xlabel('\\omega/\\pi');ylabel('增益.dB');

切比雪夫带通滤波器 I型模拟程序

wp1=0.45*pi; wp2=0.65*pi; ws1=0.3*pi; ws2=0.75*pi; Rp=1; Rs=40;

Wp1=tan(wp1/2); Wp2=tan(wp2/2); Ws1=tan(ws1/2); Ws2=tan(ws2/2);

BW=Wp2-Wp1; W0=Wp1*Wp2; W00=sqrt(W0); WP=1; WS=WP*(W0^2-Ws1^2)/(Ws1*BW); [N,Wn]=cheb1ord(WP,WS,Rp,Rs,'s'); [B,A]=cheby1(N,Rp,Wn,'s'); [BT,AT]=lp2bp(B,A,W00,BW); [num,den]=bilinear(BT,AT,0.5); [h,omega]=freqz(num,den,64);

subplot(1,2,1);plot(omega/pi,abs(h)); xlabel('\\omega/\\pi');ylabel('|H(s)|');

subplot(1,2,2);plot(omega/pi,20*log10(abs(h))); xlabel('\\omega/\\pi');ylabel('增益.dB');

II型模拟程序

wp1=0.45*pi; wp2=0.65*pi; ws1=0.3*pi; ws2=0.75*pi; Rp=1; Rs=40;

Wp1=tan(wp1/2); Wp2=tan(wp2/2); Ws1=tan(ws1/2); Ws2=tan(ws2/2);

BW=Wp2-Wp1; W0=Wp1*Wp2; W00=sqrt(W0); WP=1; WS=WP*(W0^2-Ws1^2)/(Ws1*BW); [N,Wn]=cheb2ord(WP,WS,Rp,Rs,'s'); [B,A]=cheby2(N,Rs,Wn,'s'); [BT,AT]=lp2bp(B,A,W00,BW); [num,den]=bilinear(BT,AT,0.5); [h,omega]=freqz(num,den,64);

subplot(1,2,1);plot(omega/pi,abs(h)); xlabel('\\omega/\\pi');ylabel('|H(s)|');

subplot(1,2,2);plot(omega/pi,20*log10(abs(h)));

axis([0 1 -100 0]);xlabel('\\omega/\\pi');ylabel('增益.dB');

椭圆带通滤波器 模拟程序

wp1=0.45*pi; wp2=0.65*pi; ws1=0.3*pi; ws2=0.75*pi; Rp=1; Rs=40;

Wp1=tan(wp1/2); Wp2=tan(wp2/2); Ws1=tan(ws1/2); Ws2=tan(ws2/2);

BW=Wp2-Wp1; W0=Wp1*Wp2; W00=sqrt(W0); WP=1; WS=WP*(W0^2-Ws1^2)/(Ws1*BW); [N,Wn]=ellipord(WP,WS,Rp,Rs,'s'); [B,A]=ellip(N,Rp,Rs,Wn,'s'); [BT,AT]=lp2bp(B,A,W00,BW); [num,den]=bilinear(BT,AT,0.5); [h,omega]=freqz(num,den,64);

subplot(1,2,1);plot(omega/pi,abs(h));grid; xlabel('\\omega/\\pi');ylabel('|H(s)|');

subplot(1,2,2);plot(omega/pi,20*log10(abs(h)));grid; xlabel('\\omega/\\pi');ylabel('增益.dB');

贝塞尔带通滤波器 模拟程序

wp1=0.45*pi; wp2=0.65*pi; ws1=0.3*pi; ws2=0.75*pi; Rp=1; Rs=40;

Wp=[wp1/pi,wp2/pi]; Ws=[ws1/pi,ws2/pi]; [N,Wn]=buttord(Wp,Ws,Rp,Rs); [B,A]=besself(N, Wn); [h,omega]=freqz(B,A,64);

subplot(1,2,1);plot(omega/pi,abs(h));grid; xlabel('\\omega/\\pi');ylabel('|H(s)|');

subplot(1,2,2);plot(omega/pi,20*log10(abs(h)));grid; xlabel('\\omega/\\pi');ylabel('增益.dB');

本文来源:https://www.bwwdw.com/article/v0iw.html

Top