手机版

模拟滤波器软件包的设计

发布时间:2024-11-21   来源:未知    
字号:

模拟滤波器软件包的设计

meifa

本科毕业设计说明书

题 目:模拟滤波器软件包的设计 学生姓名:陈觉 学 院:机械学院 系 别:测控系

专 业:测控技术与仪器 班 级:测控08-2

指导教师:谭静 高级实验师

二 〇 一 二 年 六 月

模拟滤波器软件包的设计

摘 要

信号处理问题几乎在所有的工程技术领域中都会涉及到,滤波器作为信号处理的重要组成部分,已发展的相当成熟。本次设计首先要了解滤波器的滤波原理以及模拟滤波器的设计方法。重点了解模拟滤波器的设计与仿真。系统的研究了模拟滤波器(巴特沃斯滤波器和切比雪夫滤波器)的设计原理和方法,并在此基础上论述了模拟滤波器(低通、高通、带通、带阻)的设计。本次设计用VB6.0编程,并在此基础上,用MATLAB7.6虚拟实现模拟滤波器。此设计扩展性好,便于调节滤波器的性能,可以根据不同的要求在MATLAB7.6上加以实现。通过MATLAB的仿真与实现,可以看出传统的模拟滤波器设计方法繁琐且不直观,而MATLAB具有较严谨的科学计算和图形显示这一优点,使设计结果显示的更加直观,而且对滤波器的精度也有了很大的提高,能更好的达到预期效果。本次设计还要求对VB6.0和MATLAB7.6的接口技术有一定的理解,从而实现VB6.0编程在MATLAB7.6上的仿真。

关键词:模拟滤波器、MATLAB7.6、VB6.0

模拟滤波器软件包的设计

Abstract

Signal processing will be involved in almost all engineering and technical field to, filter as an important part of signal processing, has developed quite mature. This design must understand the filtering principle of the filter and analog filter design methods. Especially focus on understanding the design and simulation of analog filters. And a systematic study of analog filter design (Butterworth filter and Chebyshev filter) principles and methods discussed on the basis of the analog filter (low pass、high pass、band pass、band stop) design. This design using the Visual-Basic6.0 to programme, and on this basis, using MATLAB7.6 to simulate analog filter. This design have a good expansibility, easy to adjust the performance of the filter, this can be realized according to different requirements in MATLAB7.6. By MATLAB7.6 simulation, we can see the traditional analog filter design method is cumbersome and not intuitive, and MATLAB7.6 has the advantage of a more rigorous scientific calculation and graphical display, the design results show that the more intuitive, and the filter accuracy has been greatly improved, and be better able to achieve the desired results. This design also requires an excuse for technology in Visual Basic 6.0and MATLAB 7.6have some knowledge of Visual Basic6.0 programming in MATLAB 7.6simulation.

Keywords: analog filter、MATLAB7.6、Visual Basic6.0

模拟滤波器软件包的设计

目 录

引 言 ................................................................. 1 第一章 总体设计思路及方案制定 .......................................... 2 1.1 滤波器简介 ......................................................... 2 1.2模拟滤波器设计的目的及意义 .......................................... 2 1.3设计思路 ............................................................ 2 1.4 设计方案 ........................................................... 3 第二章 信号的各种运算及模拟滤波器设计方法 .............................. 4 2.1信号的各种运算及其MATLAB实现 ....................................... 4

2.1.1相加 .......................................................... 4 2.1.2相乘 .......................................................... 4 2.1.3移位 .......................................................... 4 2.1.4反折 .......................................................... 5 2.1.5尺度变换 ...................................................... 5 2.1.6倒相 .......................................................... 5 2.2模拟滤波器设计 .................................................. 6 2.2.1低通模拟滤波器原型 ............................................ 6 2.2.2模拟高通滤波器的设计 .......................................... 9 2.2.3 模拟带通滤波器的设计 ......................................... 10 2.2.4 模拟带阻滤波器的设计 ......................................... 11 第三章 MATLAB7.6工具箱的介绍 .......................................... 12 3.1 MATLAB 7.6概念 .................................................... 12 3.2 MATLAB 7.6简介 .................................................... 12

3.2.1 MATLAB 7.6系统的五个主要部分 ................................ 12 3.2.2 MATLAB 7.6语言的特点 ........................................ 12 第四章 VB 6.0界面设计与编程 ........................................... 14 4.1 Visual Basic 6.0简介 .............................................. 14

4.1.1Visual Basic 6.0的功能和特点 ................................. 14 4.2 界面显示 .......................................................... 14 第五章、VB6.0和MATLAB7.6混合编程开发模拟信号分析与处理系统 ........... 17

模拟滤波器软件包的设计

5.1 MATLAB 7.6与Visual Basic 6.0混合编程机理 ........................ 17 5.2 MATLAB 7.6与VB 6.0混合编程开发模拟滤波器(软件说明) ............ 19

5.2.1界面的设计 ................................................... 19 5.2.2软件的使用说明 ............................................... 19 5.2.3软件的优缺点 ................................................. 19 第六章 结论 ........................................................... 21 参考文献 .............................................................. 22 附 录 ................................................................ 23 谢 辞 ................................................................ 38

模拟滤波器软件包的设计

引 言

滤波器是一种能使有用信号顺利通过而同时对无用频率信号进行抑制或衰减的电子装置。工程上常用它来做信号出来、数据传送和抑制干扰等。模拟滤波器就是其中的一种,它是用来处理连续信号的。目前,模拟滤波器的理论和设计方法已经十分成熟,设计时可以选用典型的模拟滤波器,如巴特沃斯滤波器、切比雪夫滤波器和椭圆滤波器等,他们有严格的设计公式、曲线和图表可供参考。巴特沃斯滤波器具有单调下降的幅频特性,切比雪夫滤波器的幅频特性在通带和阻带内有波动,可提高选择性。而在MATLAB7.6中,有上述所有滤波器所需的函数供设计者调用,从而降低了设计难度。本次设计利用VB6.0进行界面设计,MATLAB7.6进行编程,然后运用MATLAB7.6与VB6.0的接口技术来实现模拟滤波器的幅频、相频和冲击响应变化的分析。充分利用了VB6.0良好的用户界面和MATLAB7.6强大的计算功能,能够在较短的时间内处理大量的数据,大大的缩短了设计周期。

MATLAB是由美国MathWorks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它集数值分析、矩阵运算、信号处理、神经网络和图形显示于一体,构成了一个方便、界面友好的用户环境,具有极高的编程效率。

Visual Basic是一种包含协助开发环境的事件驱动编程语言,由微软公司开发。从任何标准来说,VB都是世界上使用人数最多的语言,这不仅是对VB的开发者的赞美,同时也是对VB开发者数量的抱怨。它源自于BASIC编程语言。VB包含图形用户界面(GUI)和快速应用程序开发(RAD)系统,能够轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员能够使用VB提供的组件快速建立一个应用程序。

在信号分析与处理软件包设计中需要对采集的信号进行处理, 包括大量的矩阵运算和图形的绘制。鉴于Visual Basic和MATLAB 的优点,采用Visual Basic6.0 和MATLAB7.6 混合编程开发“信号分析与处理系统 (Signal Analysis and Processing System ) 软件包”,简称SAPS ,它实现了图形与界面的有机结合,将给开发带来极大的方便。

模拟滤波器软件包的设计

第一章 总体设计思路及方案制定

1.1 滤波器简介

从广义上讲,滤波器是指任何对某些频率进行修正的系统。严格地讲,对输入信号中的某些频率范围内的信号进行提取得到输出信号的过程称为滤波。而滤波器就是实现这一过程的电路或设备。

在许多科学技术领域中,广泛应用线性滤波和频谱分析对信号进行加工处理,模拟滤波是处理连续信号,数字滤波则是处理离散信号,而数字滤波是在模拟滤波的基础上发展起来的。无源或有源模拟滤波器是由分立元件构成的线性网络,可以用线性微分方程来描述他们的性能,而数字滤波器是个离散线性系统,要用差分方程来描述,并以离散变换方法来分析。

1.2模拟滤波器设计的目的及意义

模拟滤波器软件包的设计利用了VB6.0能够快速有效的构造Windows应用程序的优点,又利用了MATLAB7.6强大的数学和图像平台,将MATLAB7.6与VB6.0进行数据交换方便了用户对于模拟滤波器的幅频,相频,冲激响应变化的分析。充分利用VB6.0良好的用户界面和MATLAB7.6强大的计算功能,则能够在较短的时间内处理大量的数据,缩短了设计的周期。

1.3设计思路

首先要了解关于模拟滤波器的内容,知道信号的几种运算方法,并且了解低、高通、带通、带阻模拟滤波器的转换。然后是了解MATLAB7.6信号分析工具箱,了解 MATLAB7.6中的信号分析,还有就是模拟滤波器的分析,MATLAB7.6信号处理工具箱为分析滤波器的特性提供了特性函数。它们包括求滤波器幅值和相位角的函数abs()和angle(),频率响应函数freqs()和freqz(),冲击响应函数impulse()和impz()以及其它特性函数grpdelay()、unwrap()、zplane()。接下来是VB编程的学习,要掌握VB6.0编程中各种代码的运用,达到可以进行VB6.0编程的水准。第四项是对VB6.0和MATLAB7.6的借口技术的了解与掌握,因为MATLAB7.6只有供C或FOR-TRAN语言使用的编程接口,无法在VB6.0中对其直接进行调用,所以必须掌握VB6.0与MATLAB7.6的接口技术来实现VB6.0编程在MATLAB7.6中的仿真。最后是一段结束语来总结这次设计的收获与不足。

模拟滤波器软件包的设计

1.4 设计方案

第一章、总体设计思路及方案制定

第二章、信号的各种运算及模拟滤波器设计方法 第三章、MATLAB7.6信号分析工具箱的介绍 第四章、VB6.0界面设计与编程

第五章、VB6.0和MATLAB7.6混合编程开发模拟信号分析与处理系统 第六章、结论

模拟滤波器软件包的设计

第二章 信号的各种运算及模拟滤波器设计方法

2.1信号的各种运算及其MATLAB实现

信号的运算方法有相加、相乘、移位、反折、尺度变换、倒相等六种方法,下

面我们来详细介绍下这六种方法。

2.1.1相加

两个信号的对应时刻值相加即为连续时间信号的相加,即

f t f t1 f t2

下面用MATLAB的运算符号命令来表示两个连续信号的相加,然后用ezplot绘制出波形图。其中、是两个符号表达式表示的连续信号,s为相加得到的和信号的符号表达式[2]。

f1,f2 s symadd

ezplot s

2.1.2相乘

两个信号的对应时刻值相乘即为连续时间信号的相乘,即

f1 t f t1 *f t2

类似于相加运算,下面用MATLAB的运算符号命令来表示两个连续信号的相乘,然后用ezplot绘制出波形图。其中、是两个符号表达式表示的连续信号,为相乘得到的和信号的符号表达式[2]。

f1,f2 w symmul

ezplot w

2.1.3移位

连续信号的移位也称为平移。对于连续信号,如果存在常数,延时信号是将原信号沿t轴正方向平移时间,而是将原信号沿轴负方向平移时间。

上段代码实现了连续信号的平移及绘制其结果的波形图,是用符号表达式表示的连续时间信号,是符号变量,命令将连续信号中的时间变量用来替换[2]。

模拟滤波器软件包的设计

y subs f,t,t t0

ezplot y

2.1.4反折

连续信号的反折与平移类似,是指将信号以纵坐标为轴反折,也就是将信号中的自变量替换为。

我们可以用下面的代码实现连续信号的反折。其中是用符号表达式表示的连续时间信号,是符号变量[2]。

y subs f,t, t ezplot y

2.1.5尺度变换

连续信号的尺度变换是将信号的横坐标进行展宽或是压缩变换,也就是将信号中的自变量替换为,当a>1时,信号以原点为基准,沿横轴压缩到原来的1/a;当0<a<1时,信号将沿横轴展宽到原来的1/a倍。

下面的代码实现了连续信号的尺度变换。其中是用符号表达式表示的连续时间信号,是符号变量[2]。

y subs f,t,a*t

ezplot y

2.1.6倒相

连续信号的倒相是将信号以横轴为对称轴对折得到。

可以用下面的代码实现连续信号的倒相。其中是用符号表达式表示的连续时间信号。

[2]

y f

ezplot y

模拟滤波器软件包的设计

2.2模拟滤波器设计

滤波是信号处理的一种最基本而重要的技术,利用滤波从复杂的信号中提取所需要的信号,抑制不需要的信号。滤波器顾名思义,是用来对输入信号进行滤波的硬件或软件;是具有一定传输特性的信号处理装置。滤波器可以分为模拟滤波器和数字滤波器。我所要做的是模拟滤波器的设计。滤波器的设计最重要的是寻找一个稳定、因果的系统函数去逼近滤波器的技术指标。一个稳定、因果模拟滤波器的传递函数G

应该满足如下条件:

应该是一个实函数,即

是一个具有实系

(1)

滤波器的单位冲击响应函数数s的有理函数。

(2)(3)

的极点必须分布在平面的左半平面。

的分子多项式的阶数必须小于或等于分子分母多项式的阶数。

模拟低通、高通、带通及带阻滤波器主要的设计方法是先通过频率转换关系将要设计的滤波器的技术指标转换成模拟低通滤波器的技术指标,并依据这些技术指标设计出低通滤波器的转移函数,然后再转换成所要设计的滤波器的转移函数。下面介绍低通模拟滤波器原型[7]。

2.2.1低通模拟滤波器原型

在模拟滤波器的设计当中,首先要给定模拟滤波器的技术指标

其中频率,

,

,

,

;

为通带应能达到的最大衰减,为阻带应达到的最小衰减,为通带上限角为阻带下限角频率。希望设计一个低通滤波器

d0 d1s ... dN 1sN 1 dNsN

G(s)=

c0 c1s ... cN 1sN 1 cNsN (2-1)使其对数幅频响应10

处达到

的要求。

的形状,为此,定义了一个衰

都是

的函数,它们的大小取决于

减函数

,即

2

X j 1

=10lg=10lg2 Yj G j

(2-2)

或者

显然

G j =10 (2-3)

2

1 1 10lgG j 1

2

(2-4)

模拟滤波器软件包的设计

这样,式

=10lg

2 2 10lgG j 2

=10lg

2

(2-5)

把低通模拟滤波器的四个技术指标和滤波

器的幅平方特性联系了起来。由于所设计的滤波器的冲击响应函数一般都为实数,所以有:

G s G* s G s G s

s j

G j 2

(2-6),由

如果能根据滤波器的指标

滤波器的传递函数

十分重要的作用。

人们设计出了几种不同的

求出就很容易求得

。因此幅平方特性函数在模拟滤波器的设计中起着

,它们代表着不同的模拟滤波器的类型。在

MATLAB当中也相应的设计出这几种模拟滤波器原型。 (1)巴特沃思滤波器

巴特沃思滤波器的特点是具有通带内最大平坦的幅频特性,而且随着频率升高呈单调减小。因此巴特沃思滤波器又称“最平”的幅频响应滤波器,而且巴特沃思也是简单的滤波器。

巴特沃思滤波器的特性函数:

G j =

2

1 1 c

2N

(2-7)

式中N为滤波器的阶数,为通带宽度或3dB带宽。当阶次N大时,特性越接近于理想的矩形幅频特性

,其极点由下式分母的根决定。 211G j = N2N 22

s s

1 1 j c c (2-8)其中

sp j 11

2N

的圆周上,并且极点

可见,在S平面上由2N个极点等间隔地分布在半径为

都是成复共轭对出现,极点位置与虚轴对称,在虚轴上没有极点。根据系统稳定性

的知识,只有当极点位于左半平面,极点

系统才能稳定,它们

模拟滤波器软件包的设计

构成归一化的如下:

G s

1 N

s 1 k 1 spk

N

2

c

s s

pk

k 1

N

(2-9)

低阶巴特沃思滤波器的

有表可查。

MATLAB信号处理工具箱为低通模拟巴特沃思滤波器的产生提供了buttap(): [Z,P,K]=buttap(n)返回一个N阶巴特沃思滤波器的零点、极点和增益。 (2)切比雪夫 型滤波器

Chebyshev 型滤波器的特性函数为 式中

G j =

2

1

2

(2-10)1 2Cn

是的Chebyshev的多项式,它定义为

Cn =cos[narccos( )] ,

1

的具体数值有表可查。 Chebyshev 型滤波器的极点为

2k 1 2k 1

cosh 2 ,k 1,2,...,2n (2-11) pk sin sinh jcos2 2n2n

其中

jp 1 j 2 arccos

Chebyshev 型滤波器的极点分布在一个椭圆的圆周上,它说明Chebyshev滤波器的极点的实部和虚部满足椭圆方程,取出其中的左半平面上的极点,可得转移函数为

G s

np

*2n 1 s pk p

k 1

n

(2-12)

MATLAB信号处理工具箱为低通模拟Chebyshev 型滤波器原型的产生提供了函数cheblap():

[Z,P,K]=cheblap(n,rp) 返回一个N阶Chebyshev 型滤波器的零点、极点和增益。这个滤波器在通带内的最大衰减为rp。Chebyshev 型滤波器的主要特点是在阻带内达到最大平滑。 (3)Chebyshev Ⅱ 型滤波器:

模拟滤波器软件包的设计

Chebyshev Ⅱ 型滤波器的特性函数为

G j

2

1

2 2Cn 5 1

C2 5 n (2-13)

MATLAB信号处理工具箱为低通模拟Chebyshev Ⅱ 型滤波器的产生提供了函cheb2ap():

[Z,P,K]=cheb2ap(n,rs)该函数返回一个N阶Chebyshev Ⅱ 型滤波器的零点、极点和增益。这个滤波器在阻带内的最大衰减为rs。Chebyshev Ⅱ 型滤波器的主要特点是在通带内达到最大平滑。 (4)椭圆滤波器

椭圆滤波器的特性函数为

G j

2

1

22

1 Un (2-14)

MATLAB信号处理工具箱为低通模拟椭圆滤波器的产生提供了函数ellipap(): [Z,P,K]=ellipap(n,rp,rs)该函数返回一个n阶椭圆低通模拟滤波器原型的零点、极点和增益。该函数在通带内的最大衰减为rp,在阻带内的最大衰减为rp。

[1]

2.2.2模拟高通滤波器的设计

由于滤波器的幅频特性都是频率的偶函数,通过比较低通滤波器与高通滤波器的幅频特性函数

的曲线,可以得出高通滤波器的频率转换成低通滤波

器的频率的数学表达式:

而通带与阻带衰减函数

1 (2-15)

保持不变,这样就可以设计出模拟低通滤波器的转移

由于:

q j j

1

得:

H q G p

1

p (2-16)

1p q

1 G q

(2-17)

模拟滤波器软件包的设计

又因为:

q j j

s p p

(2-18)

所以,模拟高通滤波器的传递函数为:

H s G p p p

s

(2-19)

使用函数实现低通模拟原型滤波器至高通滤波器的频率转换[1]。

2.2.3 模拟带通滤波器的设计

模拟带通滤波器的4个频率参数是与上限频率

,化处理。

令通带带宽为: BW h l 并以通带带宽为参考频率对轴作归一化处理,有:

是下阻带的上限频率

,

,其中

分别是带通的下限

是下阻带的下限频率.首先要将它作归一

sl sl BW sh shBW

l l bw h h BW

再令:

lh l h

为通带的中心频率,其归一化值为:

2 lh l h

2

比较归一化的带通滤波器幅频特性与低通滤波器幅频特性函数曲线,可以得出带通滤波器的频率与低通滤波器的频率的转换关系为:

2 lh2

l h

h l2 p

(2-20)

2

lh

由于 h l 1, p 1,所以有:

2

2 lh

(2-21)

从而实现了带通滤波器与低通滤波器之间的频率转换。根据低通滤波器的技术指标

,可设计出低通滤波器的转移函数

模拟滤波器软件包的设计

由:

S l h 2

2 22222

BW lhqj lhq lh BW s2 l h

p j j j

qjqs BWs h l2

(2-22)

所以::

H s G p

p

s2 l h

s h l

(2-23)

这样,带通滤波器的转移函数

就求出来了。

在MATLAB中,使用lp2bp函数实现低通模拟原型滤波器至带通滤波器的频率转换[1]。

2.2.4 模拟带阻滤波器的设计

模拟带阻滤波器的

4个频率参数是限与上限频率,

是下阻带的上限频率

,

,

其中

分别是带阻的下

是下阻带的下限频率.利用通带带宽

作为参考,

将频率归一化[1]

。 比较归一化的带阻滤波器幅频特性

与低通滤波器幅频特性

函数

曲线,可以得出带阻滤波器的频率与低通滤波器的频率的转换关系为:

2

lh2 p

2 (2-24) h l

由于,于是有:

低通滤波器传递函数系为:

p

2

2lh

中的s之对应关

中p的与带阻滤波器的传递函数

s h l s2 l h (2-26)

模拟滤波器软件包的设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)