文档库 最新最全的文档下载
当前位置:文档库 › 用Matlab设计的低通数字滤波器

用Matlab设计的低通数字滤波器

用Matlab设计的低通数字滤波器
用Matlab设计的低通数字滤波器

指导教师评定成绩:

审定成绩:

重庆邮电大学

自动化学院

综合课程设计报告

低通数字滤波器设计

单位(二级学院):自动化

学生姓名:

专业:自动化

班级:0810902

学号:

指导教师:

设计时间:2012 年11月

重庆邮电大学自动化学院制

摘要

本次设计以AT89S52单片机为控制器件,利用AD/DA转换芯片构成低通数字滤波器。首先利用MATLAB根据要求设计低通滤波器模型并在该平台进行初步仿真得到较为理想的效果。接着利用proteus软件搭建硬件电路,并对编写的程序进行检测;程序检测无误后,再用Protel画出电路图。首先利用ADC0809将模拟信号转换成数字信号输入单片机,正弦模拟信号由AD9850模块产生,是一般正常的低频正弦波;另一个噪声信号是通过单片机产生的高频脉冲信号。然后通过滤波程序将采集的数据进行算法滤波,滤波后的数据通过DAC0832输出,将DA0832的输出信号通过一级运放(UA741)转换成电压输出。最后将运放输出的结果接到示波器上进行显示。

关键字:AT89C51、DDS、ADC0809、DAC0832、UA741

设计题目

题目与要求

低通滤波器是允许低频讯号通过,而不允许高频讯号通过的滤波器。本题目要求用单片机(型号任选)制作一个低通数字滤波器,要求:

1.根据确定的采样频率,用MATLAB设计低通滤波器模型以满足不同截止频率需求,

并进行仿真;

2.用单片机设计并制作一个低通数字滤波器,实现数据采集、滤波处理、信号输出

等功能(包括软、硬件);

3.滤波器能与PC机通信,设计通信协议,实现截止频率参数的调节、原始信号采样

数据与滤波后数据的上传;

4.利用高级语言开发工具,设计PC机端的程序,可以调节滤波器参数,接收滤波器

上传的原始信号采样数据与滤波后数据,并能绘图、保存;

5.设计几种不同频率、类型的噪声,利用滤波器进行试验,记录实验情况并进行分

析、总结;

6.按规定的统一格式设计报告。

目录

第一章 MATLAB仿真 (4)

1.1方案论证 (4)

1.2设计方法及原理介绍 (4)

1.3 matlab编程实现 (5)

1.4 Simulink仿真结构图 (5)

第二章硬件设计方案 (6)

2.1硬件功能整体设计 (6)

2.2单片机最小系统 (7)

2.3 ADC0809和74HC74 (7)

2.4 DAC0832和UA741 (8)

2.5 串口部分 (9)

2.6 DDS部分 (9)

第三章软件设计 (10)

3.1 单片机软件设计 (10)

3.2 PC机通信软件设计 (12)

第四章心得体会 (13)

参考文献 (14)

附件1:方波源程序 (15)

附件2:DDS正弦信号模块 (15)

附件3:主单片机程序 (19)

附录4:protues原理图 (21)

附录5:protel电路图 (22)

附录6:DDS原理图 (22)

第一章 MATLAB 仿真

1.1方案论证

数字滤波器,按功能分类,可以分成低通、高通、带通、带阻、全通滤波器;按实现的网络结构或单位抽样响应分类:可以分成无限脉冲响应滤波器(IIR 滤波器)、有限脉冲响应滤波器(FIR 滤波器)。FIR 滤波器可以对给定的频率特性直接进行设计,而IIR 滤波器目前最通用的方法是利用模拟滤波器的设计方法进行设计。模拟滤波器设计已经有了相当成熟的技术和方法,有完整的设计公式,还有比较完整的图表可以查询,因此我们采用IIR 滤波器的设计方法进行本次滤波器的设计。IIR 数字滤波器在设计上可以借助成熟的模拟滤波器的成果,如巴特沃斯、契比雪夫和椭圆滤波器等,有现成的设计数据或图表可查,其设计工作量比较小,对计算工具的要求不高。在参考相关数字滤波器设计的资料后,我们决定采用巴特沃斯滤波器设计方法进行本次数字低通滤波器的设计。 1.2设计方法及原理介绍

在此介绍一下低通滤波器的技术要求:

p

ω:通带截止频率(又称通带上限频率)

s ω:阻带下限截止频率

p

α:通带允许的最大衰减 s α:阻带允许的最小衰减 (p α,s α的单位dB )

p

Ω:通带上限角频率

s

Ω:阻带下限角频率

结合相关资料,总结IIR 巴特沃斯数字低通滤波器的设计步骤如下:

(1).按一定规则将给出的数字滤波器的技术指标转换成模拟低通滤波器的技术指标。在这里要求在频率小于200Hz 的通带内,幅度特性下降小于3dB ;在频率大于480Hz 的阻带内,衰减大于15dB ,采样频率为1200Hz 。

(2).根据转换后的技术指标设计模拟低通滤波器)(s G 。因为我们设计的滤波器的冲击响应一般都为实数,所以有

2

*)

()

()()()(s j s j G s G s G s G s G Ω=-=Ω=这样,如果我们能由

p

α,

p

Ω,s α,s Ω

求出2

)(Ωj G ,那么就容易得到所需要的)(s G 。巴特沃思(Butterworth)滤波器

2

)

(Ωj G 为

n C j G )(11

)(222

Ω+=

Ω,其中C 为待定常数,N 为待定的滤波器阶次。总结后,

巴特沃思滤波器的设计步骤分为以下五步: A 、确定技术指标,求得数字边缘频率:

1

23

p p s

f rad f ππ

ω=

=

,3p a dB =

1245

s s s f rad f ππ

ω=

=,15s a dB = B 、将数字低通滤波器的技术指标转换为模拟低通滤波器技术指标

用双线性变换法,预畸变公式为2tan 2

T ω

Ω=,可得 C 、确定滤波器阶数N

1520

100.1778s δ-==,2211lg 1lg 1 1.4860.1778 1.022718.4641 1.4530

2lg 2lg 3.4661s s p N δ????-- ? ?????≥

===????Ω ? ? ???Ω?? 取N =1。 D 、该一阶巴特沃斯归一化模拟低通滤波器的系统函数为:

1()1

G p p =+

反归一化后的模拟低通滤波器为:

693

693|

)()(+=+===

s s p G s H s p c

s

p a ΩΩΩ

E 、采用双线性变换法转换为数字低通滤波器的系统函数:

脉冲响应不变法设计的滤波器在ωπ=附近存在哦率混叠失真,从而使其阻带内不满足指标要求,双线性变换法无频率混叠失真,满足要求,但其存在非线性频率失真,且频率越高,失真越明显。

1.3 matlab 编程实现

源程序见附件一,在此介绍几个主要命令的使用方法。 (1).[N,wc]=buttord(wp ,ws ,αp ,αs)

用于计算巴特沃斯数字滤波器的阶数N 和3dB 截止频率wc 。调用参数wp ,ws 分别为数字滤波器的通带、阻带截止频率的归一化值,要求:0≤wp≤1,0≤ws≤1。1表示数字频率pi 。

(2). [z0,p0,k0]=buttap(N)

用于计算N 阶巴特沃斯归一化(3dB 截止频率Ωc=1)模拟低通原型滤波器系统函数的零、极点和增益因子。

(3). [b,a]=zp2tf(z,p,k) 零极点形式的传递函数的转换。

(4). [bt,at] = lp2lp(b,a,Wo) 低通滤波器截止频率变换。

(5). [H,F] = freqz(B,A,N,Fs) 计算数字滤波器的频率响应的函数。 我们在此设定相关参数,通带上限截止频率fp=200Hz;阻带下限截止频率fs=480Hz;通带最大衰减ap=3dB; 阻带最小衰减as=15dB; 抽样频率Fs=1200Hz 。

运行程序得到图1.1。通过图形,我们可以看出滤波器的低频增益基本是常数1,高频衰减较快,通带上限截止频率、阻带下限截止频率等关键指标均满足设计要求。

1.4 Simulink 仿真结构图

经过分析,Simulink 仿真中应包含如下几个模块:

s

rad T p p /6936tan 200)2

tan(2=?==Ωπωs rad T s s /369352tan 200)2tan(2=?==

Ωπω

1.信号发生模块。采用两个离散的正弦信号发生器,一个用于产生能通过滤波器的理想信号,一个用于产生被滤波器滤除的噪声信号。

2.信号叠加模块。采用一个简单的加法器就能将噪声信号叠加到理想信号上去。

3.数字低通滤波器模块。我们采用simulink 中自带的digital filter design ,它能够很方便地进行数字滤波器的设计,模拟数字低通滤波器的滤波功能。

4.信号观测模块。采用示波器模块观察滤波前后波形的变化,从而得出是否有滤波效果。 仿真结论:当噪声信号频率较高,高于所设计滤波器的截止频率时,滤波器能够较完全地将噪声信号滤除,经滤波器输出的信号与理想信号相差不大;当噪声信号频率较低,低于所设计滤波器的截止频率时,滤波器不能地将噪声信号滤除,经滤波器输出的信号还有大量噪声信号。

第二章 硬件设计方案

2.1硬件功能整体设计

1)STC89S52是一款性能相对较低I/O 口并不是很多,但是相对较为便宜,性价比相当高,编程比较容易。

2)采用DDS 模块产生一个低频并且幅值较大的正弦波,利用单片机产生一个高频且幅值较小的模拟噪声脉冲,两个波形通过自制的加法器得到待滤的信号传送给单片机采集处理。

3)常用并且熟练的转换器中,主要有ADC0809,本身题目要求的截止频率不高,程序相对较为简单,价格合适,性价比比较好。

4)波形显示过程中,将滤波后的信号通过AD0832转换为模拟信号输出,再经过一级运放(UA741)将电流型输出转换为电压输出,输出信号通过示波器显示出来。

根据以上的方案选择我们的设计思路基本成熟,通过讨论得到以下的思路方框图2.1:

图2.1 硬件功能框图

整体思路描述:首先给定的信号从A/D 转换器的I/O 口进入,经过模数转换之后得到成为单片机所能识别的二进制信号再经P0接口输入单片机,根据事先存储在单片机内的程序依次对应,接着通过D/A 转换器,转换成模拟信号,由于D/A 转换器所得的信号为电流信号,所以需通过UA741运算放大器,将所得的电流信号转换成电压信号,最后在示波器上显示出

信号输入

AD 转换

AT89S52

D/A 转换

运放 示波器

波形。

2.2单片机最小系统

单片机内部具有一个高增益反相放大器,用于构成振荡器。通常在引脚XTAL1和XTAL2跨接石晶体和两个补偿电容构成自激振荡器,系统时钟电路结构如图3.3所示,可以根据情况选择6MHz、8MHz或12MHz等频率的石英晶体,补偿电容通常选用20—30PF左右的瓷片电容。

单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源上,自动实现复位操作。手动复位要求的电源接通下,在单片机运行期间,用按钮开关操作使单片机复位。复位电路结构图2.2所示。上电自动复位通过电容充电来实现。手动按键复位是通过按键将电阻与VCC接通来实现。

图2.2 单片机最小系统

2.3 ADC0809和74HC74

8位逐次逼近式A/D转换器ADC0809内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。是目前应用最广泛的8位通用A/D芯片,内部结构:ADC0809是CMOS单片型逐次逼近式A/D转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。

74HC74是一块分频芯片,由于单片机的ALE端口输出的频率为4MHZ的方波,相对于ADC0809,频率太大我们需要进行分频,结合常用的分频芯片我们采用的是74HC74进行4分频得到500KHZ的方波作为ADC0809的转换频率。

工作过程:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC 变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。

2.4 DAC0832和UA741

功能:将波形样值得编码转换成模拟值,完成波形的输出。由一片DAC0832和UA741运放组成。DAC0832 是一个具有两个输入数据寄存器的8位DAC。目前生产的DAC芯片分为两类,一类芯片内部设置有数据寄存器,不需要外加电路就可以直接与微型计算机接口。另一类芯片内没有数据寄存器,输出信号随数据输入线的状态的变化而变化,因此不能直接与微型计算机接口,必须通过并行口与微型计算机接口。DAC0832是具有20条引线的双列直插式CMOS器件,它内部具有两级数据寄存器,完成8位电流D/A转换,股不需要外加电路。DAC0832是电流输出型,示波器上显示波形,通常需要电压信号,电流信号到电压信号的转换可以用运算放大器UA741实现。

单片机向DAC0832发送数字编码,产生不同的输出。先利用采样定理对各种波形进行抽样,然后把各种采样值进行编码,收到的数字量存入各个波形表,执行程序时通过查表的方法依次取出,经过D/A转换后输出就可以得到波形。假如N个点构成波形的一个周期,则DAC0832输出N个样点值后,样值点形成运动轨迹,即,一个周期。重复输出N个点后,成为第二个周期。利用单片机的晶振控制输出周期的速度,也就是控制输出的波形的频率

图2.5 数/模转换模块

2.5 串口部分

串行接口Serial Interface是指数据一位位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,并可以利用电话线,从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。

一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成;成本低但传送速度慢。串行通讯的距离可以从几米到几千米;根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。

2.6 DDS部分

2.6.1 DDS概述

直接数字式频率综合器DDS,实际上是一种分频器:通过编程频率控制字来分频系统时钟以产生所需要的频率。DDS是产生高精度、快速变换频率、输出波形失真小的优先选用技术。DDS以稳定度高的参考时钟为参考源,通过精密的相位累加器和数字信号处理,通过高速D/A变换器产生所需的数字波形(通常是正弦波形),这个数字波经过一个模拟滤波器后,得到最终的模拟信号波形。DDS有两个突出特点:一方面,DDS工作在数字域,一旦更新频率控制字,输出的频率就相应改变,其跳频速率高:另一方面,由于频率控制字的宽度宽,频率分辨率高。

2.6.2 DDS工作原理

DDS的基本原理是利用采样定理,通过查表法产生波形。DDS的结构有很多种,其基本的电路原理可用图2.6.1来表示。

图2.6.1电路原理

相位累加器由N位加法器与N位累加寄存器级联构成。每来一个时钟脉冲fs,加法器将频率控制字k与累加寄存器输出的累加相位数据相加,把相加后的结果送至累加寄存器的数据输入端。累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,以使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。用相位累加器输出的数据作为波形存储器(ROM)的相位取样地址,这样就可把存储在波形存储器内的波形抽样值(二进制编码)经查找表查出,完成相位到幅值转换。波形存储器的输出送到D/A转换器,D/A转换器将数字量形式的波形幅值转换成所要求合成频率的模拟量形式信号。低通滤波器用于滤除不需要的取样分量,以便输出频谱纯净的正弦波信号。 DDS在相对带宽、频率转换时间、高分辨力、相位连续性、正交输出以及集成化等一系列性能指标方面远远超过了传统频率合成技术所能达到的水平,为系统提供了优于模拟信号源的性能。

AD9850是AD公司生产的最高时钟为125 MHz、采用先进的CMOS技术的直接频率合成器,主要由可编程DDS系统、高性能模数变换器(DAC)和高速比较器3部分构成,能实现全数字编程控制的频率合成。AD9850内含可编程DDS 系统和高速比较器,可实现全数字编程控制的频率合成。可编程DDS系统的核心是相位累加器,由一个加法器和一个N位相位寄存器组成,N 一般为24~32。每来一个外部参考时钟,相位寄存器便以步长M递加。相位寄存器的输出与相位控制字相加后可输入到正弦查询表地址上。正弦查询表包含一个正弦波周期的数字幅度信息,每一个地址对应正弦波中0°~360°范围的一个相位点。查询表把输入地址的相位信息映射成正弦波幅度信号,然后驱动DAC 输出模拟量。

相位寄存器每过2N/ M 个外部参考时钟后返回到初始状态一次,相应地正弦查询表

每经过一个循环也回到初始位置,从而使整个DDS 系统输出一个正弦波。输出的正弦波频率fout = M*fc/ 2的N次方,fc 为外部参考时钟频率。

AD9850 采用32 位的相位累加器将信号截断成14 位输入到正弦查询表,查询表的输出再被截断成10 位后输入到DAC ,DAC 再输出两个互补的电流。DAC 满量程输出电流通过一个外接电阻RSET调节,典型值3.9千欧。将DAC 的输出经低通滤波后接到AD9850 内部的高速比较器上即可直接输出方波。在125MHz 的时钟下, 32 位频率控制字可使AD9850 输出频率分辨率达0. 0291Hz 。

下图为DDS模块图形。

图2.6.2 DDS模块

第三章软件设计

3.1 单片机软件设计

单片机的采样程序设计,ADC0809采集转换完成的状态信号(EOC)置位后我们有三种方式可以将数据正确的送给单片机(定时传送方式,查询方式,外部中断方式),但结合我们的需要,我们选择的是定时器中断采集以便可以通过上位机改变单片机的采样频率,满足不同截止频率的滤波需求。

最初的方案选择中我们通过资料发现算法滤波的方式很多,我们选用一阶巴特沃斯滤波

器 ,传递函数为

1

1

+s τ,因此本设计采用均值滤波,均值滤波就是通过对信号多次的采样再求其平均值,随着采样次数的增加提高信号的分辨率和降低干扰量的影响。

均值滤波的公式为:1

1n

i i Y X n ==∑

式中:i X 为第i 次采样时的滤波器输入;n 为采样次数,Y 为取均值后滤波器的输出。

在均值滤波中,采样次数与运算量、存储空间是矛盾的。在一定范围内,采样次数n 越大。均值滤波的效果越好;但n 越大,运算量和存储空间开销就越大。因此,我们要综合考虑三者的关系,选择合适的n 的值。

图3.1软件流程图

开始 采样

存入数据缓存

数据数

求平均值

输出

3.2 PC 机通信软件设计

单片机与PC 机通信我们采用的的串口通信。通信原理主要依据是串口中断实现下位机与PC 机及时通信的,PC 机发送给下位机的数据,单片机通过串口中断从缓冲寄存器中读取数据并赋值给下位机软件滤波的参数,实现PC 机对截止频率的控制。单片机要将滤波后的数据上传给PC 机通过单片机的串口发送,上位机我们采用串口调试助手接收并显示接收到得数据。

图3.2串口程序流程图

开始 采样滤波 串口中断? 上传数据

参数修改

第四章心得体会

此次课程设计我组选择的题目是设计低通数字滤波器,在和指导老师进行探讨后,我们首先进行了分工,我主要负责硬件的设计、Proteus电路图的绘制。我组每周闲暇的时候在一起讨论,分析系统的软件和硬件设计,大家都积极参与。我们首先进行了系统设计的设计讨论,在详细了解控制对象和控制要求后确定系统总体方案,分工以后经过和设计软件的同学讨论开始进行硬件设备的选择,经过老师的提醒我们注意了硬件选择时的字长、速度、内存容量、中断能力、外围接口、变送器以及选择执行机构。经过探讨以后,我们开始进行Proteus仿真图的绘制,虽然这时对整体硬件的结构已经有所认识,但是在绘制仿真图的过程中还是遇到了不少的问题。于是我又开始系统的学习Proteus以及protel软件,经过老师的指导和与同学的探讨和请教,我们最终顺利的完成了硬件电路图的设计。

这次课程设计给我带来了很大的收获,让我学到了很多,不仅掌握了简单的电子电路的设计与制作,也掌握了一些芯片的原理与作用。在制作电路时,我深深体会到连接电路时一定要认真仔细,而且要确保每条导线接触良好。在接电路之前,一定要把电路的原理搞清楚,通过查资料把电路中的每个元器件的作用弄明白和把每个芯片的管脚的功能弄清楚,明白每个元器件的各个管脚与它哪里相对应,其实最主要的是要搞清楚元器件与元器件之间的连接关系,它们接在一起可以实现哪些功能。在电路设计中,我觉得电路检查是非常重要的一步,从中我们可以学到很多东西,可以提高自己发现问题解决问题的能力,使自己的动手能力有一定的提高。

此次课程设计使我进一步掌握了电子电路的测量方法和调试方法,可以独立解决设计与调试过程中出现的一些问题,能够正确选用元器件与材料,并查阅各种有关手册和正确拟写设计报告。通过此次电子电路设计才知道自己学的很多知识都是很不扎实的,这次设计不仅拓展了自己电路方面的相关知识,更重要的是锻炼了实践的能力。

参考文献

[1] 张毅刚,彭喜元,董继成.单片机原理及应用[M].高等教育出版社,2003.12

[2] 杨素行.模拟电子技术基础简明教程[M].高等教育出版社,2007.05

[3] 杜刚.电路设计与制版protel应用教程.清华大学出版社.2006

[4] 赵晶编著.电路设计与制版protel99高级应用.人民邮电出版社.2000.11

附件1:方波源程序

#include

#include

#define uint unsigned int //定义unsigned int 为uint

#define uchar unsigned char

uint jishu = 0;

sbit time_c = P2^1;

void main()

{

TMOD = 0x22;

TH0 = 256-10;

TL0 = 256-10;

EA=1; //总中断打开

ET0=1; //定时器中断打开

TR0=1;

while(1)

{

//P2=P1;

}

}

void caiyan( ) interrupt 1

{ jishu ++;

if(jishu == 5*5 ) ///周期5毫秒

{

time_c =~ time_c;

jishu = 0;

}

}

附件2:DDS正弦信号模块

# include

# include

# include

sbit ad9850_w_clk =P2^2; //P2.2口接ad9850的w_clk脚/PIN7 sbit ad9850_fq_up =P2^1; //P2.1口接ad9850的fq_up脚/PIN8 sbit ad9850_rest =P2^0; //P2.0口接ad9850的rest脚/PIN12

sbit ad9850_bit_data =P1^7; //P1.7口接ad9850的D7脚/PIN25 //P1为8位数据口

//***************************************************//

// ad9850复位(并口模式) //

//---------------------------------------------------//

void ad9850_reset()

{

ad9850_w_clk=0;

ad9850_fq_up=0;

//rest信号

ad9850_rest=0;

ad9850_rest=1;

ad9850_rest=0;

}

//***************************************************//

// ad9850复位(并口模式) //

//---------------------------------------------------//

void ad9850_reset_serial()

{

ad9850_w_clk=0;

ad9850_fq_up=0;

//rest信号

ad9850_rest=0;

ad9850_rest=1;

ad9850_rest=0;

//w_clk信号

ad9850_w_clk=0;

ad9850_w_clk=1;

ad9850_w_clk=0;

//fq_up信号

ad9850_fq_up=0;

ad9850_fq_up=1;

ad9850_fq_up=0;

}

//***************************************************//

// 向ad9850中写命令与数据(并口) //

//---------------------------------------------------//

void ad9850_wr_parrel(unsigned char w0,double frequence)

{

unsigned char w;

long int y;

double x;

//计算频率的HEX值

x=4294967295/125;//适合125M晶振

//如果时钟频率不为180MHZ,修改该处的频率值,单位MHz !!!frequence=frequence/1000000;

frequence=frequence*x;

y=frequence;

//写w0数据

w=w0;

P1=w; //w0

ad9850_w_clk=1;

ad9850_w_clk=0;

//写w1数据

w=(y>>24);

P1=w; //w1

ad9850_w_clk=1;

ad9850_w_clk=0;

//写w2数据

w=(y>>16);

P1=w; //w2

ad9850_w_clk=1;

ad9850_w_clk=0;

//写w3数据

w=(y>>8);

P1=w; //w3

ad9850_w_clk=1;

ad9850_w_clk=0;

//写w4数据

w=(y>>=0);

P1=w; //w4

ad9850_w_clk=1;

ad9850_w_clk=0;

//移入始能

ad9850_fq_up=1;

ad9850_fq_up=0;

}

//***************************************************//

// 向ad9850中写命令与数据(串口) //

//---------------------------------------------------//

void ad9850_wr_serial(unsigned char w0,double frequence)

{

unsigned char i,w;

long int y;

double x;

//计算频率的HEX值

x=4294967295/125;//适合125M晶振

//如果时钟频率不为180MHZ,修改该处的频率值,单位MHz !!!

frequence=frequence/1000000; frequence=frequence*x;

y=frequence;

//写w4数据

w=(y>>=0);

for(i=0;i<8;i++)

{

ad9850_bit_data=(w>>i)&0x01; ad9850_w_clk=1;

ad9850_w_clk=0;

}

//写w3数据

w=(y>>8);

for(i=0;i<8;i++)

{

ad9850_bit_data=(w>>i)&0x01; ad9850_w_clk=1;

ad9850_w_clk=0;

}

//写w2数据

w=(y>>16);

for(i=0;i<8;i++)

{

ad9850_bit_data=(w>>i)&0x01; ad9850_w_clk=1;

ad9850_w_clk=0;

}

//写w1数据

w=(y>>24);

for(i=0;i<8;i++)

{

ad9850_bit_data=(w>>i)&0x01; ad9850_w_clk=1;

ad9850_w_clk=0;

}

//写w0数据

w=w0;

for(i=0;i<8;i++)

{

ad9850_bit_data=(w>>i)&0x01; ad9850_w_clk=1;

ad9850_w_clk=0;

}

//移入始能

ad9850_fq_up=1;

ad9850_fq_up=0;

}

//***************************************************// // 测试程序1000Hz // //---------------------------------------------------//

main()

{

P0=0x00;

P1=0x00;

P2=0x00;

P3=0x00;

//---------------------------------------------------//

//---------------------------------------------------//

//串行写1000Hz程序

ad9850_reset_serial();

ad9850_wr_serial(0x00,10);

//---------------------------------------------------//

while(1)

{

}

}

附件3:主单片机程序

#include

#include

#define uint unsigned int //定义unsigned int 为uint

#define uchar unsigned char

uint shuru,shuchu,shuru1,shuru2;

uint time_c = 0;

巴特沃斯数字低通滤波器

目录 1.题目.......................................................................................... .2 2.要求 (2) 3.设计原理 (2) 3.1 数字滤波器基本概念 (2) 3.2 数字滤波器工作原理 (2) 3.3 巴特沃斯滤波器设计原理 (2) 3.4脉冲响应不法 (4) 3.5实验所用MA TLAB函数说明 (5) 4.设计思路 (6) 5、实验内容 (6) 5.1实验程序 (6) 5.2实验结果分析 (10) 6.心得体会 (10) 7.参考文献 (10)

一、题目:巴特沃斯数字低通滤波器 二、要求:利用脉冲响应不变法设计巴特沃斯数字低通滤波器,通带截止频率100HZ,采样频率1000HZ ,通带最大衰减为0.5HZ ,阻带最小衰减为10HZ ,画出幅频、相频相应相应曲线。并假设一个信号x(t)=sin(2*pi*f1*t)+sin(2*pi*f2*t),其中f1=50HZ,f2=200HZ 。用此信号验证滤波器设计的正确性。 三、设计原理 1、数字滤波器的基本概念 所谓数字滤波器,是指输入、输出均为数字信号,通过数值运算处理改变输入信号所含频率成分的相对比例,或者滤波器除某些频率成分的数字器件或程序,因此,数字滤波的概念和模拟滤波相同,只是的形式和实现滤波方法不同。正因为数字滤波通过数值运算实现滤波,所以数字滤波处理精度高、稳定、体积小、质量轻、灵活、不存在阻抗匹配问题,可以实验模拟滤波器无法实现的特殊滤波功能。如果要处理的是模拟信号,可通过A\DC 和D\AC,在信号形式上进行匹配转换,同样可以使用数字滤波器对模拟信号进行滤波。 2、数字滤波器的工作原理 数字滤波器是一个离散时间系统,输入x(n)是一个时间序列,输出y(n)也是一个时间序列。如数字滤波器的系统函数为H(Z),其脉冲响应为h(n),则在时间域内存在下列关系 y(n)=x(n) h(n) 在Z 域内,输入输出存在下列关系 Y(Z)=H(Z)X(Z) 式中,X(Z),Y(Z)分别为输入x(n)和输出y(n)的Z 变换。 同样在频率域内,输入和输出存在下列关系 Y(jw)=X(jw)H(jw) 式中,H(jw)为数字滤波器的频率特性,X(jw)和Y(jw)分别为x(n)和y(n)的频谱。w 为数字角频率,单位rad 。通常设计H(jw)在某些频段的响应值为1,在某些频段的响应为0.X(jw)和H(jw)的乘积在频率响应为1的那些频段的值仍为X(jw),即在这些频段的振幅可以无阻碍地通过滤波器,这些频带为通带。X(jw)和H(jw)的乘积在频段响应为0的那些频段的值不管X(jw)大小如何均为零,即在这些频段里的振幅不能通过滤波器,这些频带称为阻带。 一个合适的数字滤波器系统函数H(Z)可以根据需要输入x(n)的频率特性,经数字滤波器处理后的信号y(n)保留信号x(n)中的有用频率成分,去除无用频率成分。 3、巴特沃斯滤波器设计原理 (1)基本性质 巴特沃斯滤波器以巴特沃斯函数来近似滤波器的系统函数。巴特沃斯滤波器是根据幅频特性在通频带内具有最平坦特性定义的滤波器。 巴特沃思滤波器的低通模平方函数表示1 () ΩΩ+ =Ωc N /22 a 11 ) (j H

绝对经典的低通滤波器设计报告

经典 无源低通滤波器的设计

团队:梦知队 团结奋进,求知创新,追求卓越,放飞梦想 队员: 日期:2010.12.10 目录 第一章一阶无源RC低通滤波电路的构建 (3) 1.1 理论分析 (3) 1.2 电路组成 (4) 1.3 一阶无源RC低通滤波电路性能测试 (5) 1.3.1 正弦信号源仿真与实测 (5) 1.3.2 三角信号源仿真与实测 (10) 1.3.3 方波信号源仿真与实测 (15) 第二章二阶无源LC低通滤波电路的构建 (21) 2.1理论分析 (21) 2.2 电路组成 (22) 2.3 二阶无源LC带通滤波电路性能测试 (23) 2.3.1 正弦信号源仿真与实测 (23) 2.3.2 三角信号源仿真与实测 (28)

2.3.3 方波信号源仿真与实测 (33) 第三章结论与误差分析 (39) 3.1 结论 (39) 3.2 误差分析 (40) 第一章一阶无源RC低通滤波电路的构建1.1理论分析 滤波器是频率选择电路,只允许输入信号中的某些频率成分通过,而阻止其他频率成分到达输出端。也就是所有的频率成分中,只是选中的部分经过滤波器到达输出端。 低通滤波器是允许输入信号中较低频率的分量通过而阻止较高频率的分量。 图1 RC低通滤波器基本原理图 当输入是直流时,输出电压等于输入电压,因为Xc无限大。当输入

频率增加时,Xc减小,也导致Vout逐渐减小,直到Xc=R。此时的频率为滤波器的特征频率fc。 解出,得: 在任何频率下,应用分压公式可得输出电压大小为: 因为在=时,Xc=R,特征频率下的输出电压用分压公式可以表述为: 这些计算说明当Xc=R时,输出为输入的70.7%。按照定义,此时的频率称为特征频率。 1.2电路组成

matlab滤波器设计

长安大学 数字信号处理综合设 计 专业_______电子信息工程_______ 班级__24030602___________ 姓名_______张舒_______ 学号2403060203 指导教师陈玲 日期_______2008-12-27________

一、课程设计目的: 1. 进一步理解数字信号处理的基本概念、基本理论和基本方法; 2.熟悉在Windows环境下语音信号采集的方法; 3.学会用MATLAB软件对信号进行分析和处理; 4.综合运用数字信号处理理论知识,掌握用MATLAB软件设计FIR和IIR数字滤波器的方法; 5. 提高依据所学知识及查阅的课外资料来分析问题解决问题的能力。 二、课程设计内容: 1.语音信号的采集 利用windows下的录音机录制一段自己的话音,时间控制在1秒左右;并对语音信号进行采样,理解采样频率、采样位数等概念。 2.语音信号的频谱分析 利用函数fft对采样后语音信号进行快速傅里叶变换,得到信号的频谱特性。 3.设计数字滤波器 采用窗函数法和双线性变换法设计下列要求的三种滤波器,根据语音信号的特点给出有关滤波器的性能指标: 1)低通滤波器性能指标,fp=1000Hz,fc=1200Hz, As=100dB,Ap=1dB; 2)高通滤波器性能指标,fc=4800Hz,fp=5000Hz ,As=100dB,Ap=1dB; 3)带通滤波器性能指标,fp1=1200Hz,fp2=3000Hz,fc1=1000Hz,fc2=3200Hz,As=100dB,Ap=1dB。 4.对语音信号进行滤波 比较用两种方法设计的各滤波器的性能,然后用性能好的滤波器分别对采集的语音信号进行滤波;并比较滤波前后语音信号的波形及频谱,分析信号的变化。 5.回放语音信号,感觉滤波前后的声音变化。 三、实验原理 (一)基于双线性Z变换法的IIR数字滤波器设计 由于的频率映射关系是根据推导的,所以使jΩ轴每隔2π/Ts便映射到单位圆上一周,利用冲激响应不变法设计数字滤波器时可能会导致上述的频域混叠现象。为了克服这一问题,需要找到由s平面到z平面的另外的映射关系,这种关系应保证: 1) s平面的整个jΩ轴仅映射为z平面单位圆上的一周; 2) 若G(s)是稳定的,由G(s)映射得到的H(z)也应该是稳定的; 3) 这种映射是可逆的,既能由G(s)得到H(z),也能由H(z)得到G(s); 4) 如果G(j0)=1,那么。 双线性Z变换满足以上4个条件的映射关系,其变换公式为

matlab中关于数字滤波器的函数介绍

MATLAB下的数字信号处理实现示例 一信号、系统和系统响应 1、理想采样信号序列 (1)首先产生信号x(n),0<=n<=50 n=0:50; %定义序列的长度是50 A=444.128; %设置信号有关的参数 a=50*sqrt(2.0)*pi; T=0.001; %采样率 w0=50*sqrt(2.0)*pi; x=A*exp(-a*n*T).*sin(w0*n*T); %pi是MATLAB定义的π,信号乘可采用“.*”close all %清除已经绘制的x(n)图形 subplot(3,1,1);stem(x); %绘制x(n)的图形 title(‘理想采样信号序列’); (2)绘制信号x(n)的幅度谱和相位谱 k=-25:25; W=(pi/12.5)*k; X=x*(exp(-j*pi/12.5)).^(n’*k); magX=abs(X); %绘制x(n)的幅度谱 subplot(3,1,2);stem(magX);title(‘理想采样信号序列的幅度谱’); angX=angle(X); %绘制x(n)的相位谱 subplot(3,1,3);stem(angX) ; title (‘理想采样信号序列的相位谱’)(3)改变参数为:1,0734.2,4.0,10==Ω==TAα n=0:50; %定义序列的长度是50 A=1; %设置信号有关的参数 a=0.4; T=1; %采样率 w0=2.0734; x=A*exp(-a*n*T).*sin(w0*n*T); %pi是MATLAB定义的π,信号乘可采用“.*”close all %清除已经绘制的x(n)图形 subplot(3,1,1);stem(x); %绘制x(n)的图形 title(‘理想采样信号序列’); k=-25:25; W=(pi/12.5)*k; X=x*(exp(-j*pi/12.5)).^(n’*k); magX=abs(X); %绘制x(n)的幅度谱 subplot(3,1,2);stem(magX);title(‘理想采样信号序列的幅度谱’); angX=angle(X); %绘制x(n)的相位谱 subplot(3,1,3);stem(angX) ; title (‘理想采样信号序列的相位谱’) 2、单位脉冲序列 在MatLab中,这一函数可以用zeros函数实现: n=1:50; %定义序列的长度是50 x=zeros(1,50); %注意:MATLAB中数组下标从1开始

IIR数字滤波器设计原理

IIR 数字滤波器设计原理 利用双线性变换设计IIR 滤波器(只介绍巴特沃斯数字低通滤波器的设计),首先要设计出满足指标要求的模拟滤波器的传递函数)(s H a ,然后由)(s H a 通过双线性变换可得所要设计的IIR 滤波器的系统函数)(z H 。 如果给定的指标为数字滤波器的指标,则首先要转换成模拟滤波器的技术指标,这里主要是边界频率 s p w w 和的转换,对s p αα和指标不作变化。边界频率的转换关系为)21tan(2w T =Ω。接着,按照模拟低通滤波器的技术指标根据相应 设计公式求出滤波器的阶数N 和dB 3截止频率c Ω;根据阶数N 查巴特沃斯归一 化低通滤波器参数表,得到归一化传输函数 )(p H a ;最后,将c s p Ω=代入)(p H a 去归一,得到实际的模拟滤波器传输函数)(s H a 。之后,通过双线性变换法转换公式 11 112--+-=z z T s ,得到所要设计的IIR 滤波器的系统函数)(z H 。 步骤及内容 1) 用双线性变换法设计一个巴特沃斯IIR 低通数字滤波器。设计指标参数为: 在通带内频率低于π2.0时,最大衰减小于dB 1;在阻带内[]ππ,3.0频率区间上,最小衰减大于dB 15。 2) 以π02.0为采样间隔,绘制出数字滤波器在频率区间[]2/,0π上的幅频响应特 性曲线。 3) 程序及图形 程序及实验结果如下: %%%%%%%%%%%%%%%%%%

%iir_1.m %lskyp %%%%%%%%%%%%%%%%%% rp=1;rs=15; wp=.2*pi;ws=.3*pi; wap=tan(wp/2);was=tan(ws/2); [n,wn]=buttord(wap,was,rp,rs,'s'); [z,p,k]=buttap(n); [bp,ap]=zp2tf(z,p,k); [bs,as]=lp2lp(bp,ap,wap); [bz,az]=bilinear(bs,as,.5); [h,f]=freqz(bz,az,256,1); plot(f,abs(h)); title('双线性z 变换法获得数字低通滤波器,归一化频率轴'); xlabel('\omega/2\pi'); ylabel('低通滤波器的幅频相应');grid; figure; [h,f]=freqz(bz,az,256,100); ff=2*pi*f/100; absh=abs(h); plot(ff(1:128),absh(1:128)); title('双线性z 变换法获得数字低通滤波器,频率轴取[0,\pi/2]'); xlabel('\omega'); ylabel('低通滤波器的幅频相应');grid on; 运行结果: 00.050.10.150.20.25 0.30.350.40.450.500.1 0.2 0.3 0.40.50.60.70.8 0.9 1 双线性z 变换法获得数字低通滤波器,归一化频率轴 ω/2π低通滤波器的幅频相应

切比雪夫1型数字低通滤波器

目录 1. 数字滤波器的设计任务及要求 (2) 2. 数字滤波器的设计及仿真 (2) 2.1数字滤波器的设计 (3) 2.2数字滤波器的性能分析 (3) 3. 数字滤波器的实现结构对其性能影响的分析 (8) 3.1数字滤波器的实现结构一及其幅频响应 (10) 3.2数字滤波器的实现结构二及其幅频响应 (12) 3.3 数字滤波器的实现结构对其性能影响的小结 (12) 4. 数字滤波器的参数字长对其性能影响的分析 (13) 4.1数字滤波器的实现结构一参数字长及幅频响应特性变化 4.2数字滤波器的实现结构二参数字长及幅频响应特性变化 4.3 数字滤波器的参数字长对其性能影响的小结 (16) 5. 结论及体会 (16) 5.1 滤波器设计、分析结论 (16) 5.2 我的体会 (16) 5.3 展望 (16)

1.数字滤波器的设计任务及要求 1. 设计说明 每位同学抽签得到一个四位数,由该四位数索引下表确定待设计数字滤波器的类型及其设计方法,然后用指定的设计方法完成滤波器设计。 要求:滤波器的设计指标: 低通: (1)通带截止频率πrad (id) pc 32 ln = ω (2)过渡带宽度πrad ) (i d 160 10log tz ≤?ω (3)滚降dB αroll 60= 其中,i d — 抽签得到那个四位数(学号的最末四位数),本设计中i d =0201。 2. 滤波器的初始设计通过手工计算完成; 3. 在计算机辅助计算基础上分析滤波器结构对其性能指标的影响(至少选择两种以上合适的滤波器 结构进行分析); 4. 在计算机辅助计算基础上分析滤波器参数的字长对其性能指标的影响; 5. 以上各项要有理论分析和推导、原程序以及表示计算结果的图表; 6. 课程设计结束时提交设计说明书。 2.数字滤波器的设计及仿真 2.1数字滤波器(编号0201)的设计 数字滤波器是数字信号处理的重要工具之一,它通过数值运算处理改变输入信号所含频率成分的相对比例或者滤出某些频率成分的数字器件或程序,而数字滤波器处理精度高、体积小、稳定、重量轻、灵活、不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊功能。 本次课程设计使用MATLAB 信号处理箱和运用切比雪夫法设计数字滤波器,将手工计算一个切比雪夫I 型的IIR 的低通模拟滤波器的系统函数,并在MATLAB 的FDATool 设计工具分析其性能指标。

简单低通滤波器设计及matlab仿真

东北大学 研究生考试试卷 考试科目: 课程编号: 阅卷人: 考试日期: 姓名:xl 学号: 注意事项 1.考前研究生将上述项目填写清楚. 2.字迹要清楚,保持卷面清洁. 3.交卷时请将本试卷和题签一起上交. 4.课程考试后二周内授课教师完成评卷工作,公共课成绩单与试卷交研究生院培养办公室, 专业课成绩单与试卷交各学院,各学院把成绩单交研究生院培养办公室. 东北大学研究生院培养办公室

数字滤波器设计 技术指标: 通带最大衰减: =3dB , 通带边界频率: =100Hz 阻带最小衰减: =20dB 阻带边界频率: =200Hz 采样频率:Fs=200Hz 目标: 1、根据性能指标设计一个巴特沃斯低通模拟滤波器。 2、通过双线性变换将该模拟滤波器转变为数字滤波器。 原理: 一、模拟滤波器设计 每一个滤波器的频率范围将直接取决于应用目的,因此必然是千差万别。为了使设计规范化,需要将滤波器的频率参数作归一化处理。设所给的实际频 率为Ω(或f ),归一化后的频率为λ,对低通模拟滤波器令λ=p ΩΩ/,则1 =p λ, p s s ΩΩ=/λ。令归一化复数变量为p ,λj p =,则p p s j j p Ω=ΩΩ==//λ。所以巴 特沃思模拟低通滤波器的设计可按以下三个步骤来进行。 (1)将实际频率Ω规一化 (2)求Ωc 和N 11010/2-=P C α s p s N λααlg 1 10 110lg 10 /10/--= 这样Ωc 和N 可求。 p x fp s x s f

根据滤波器设计要求=3dB ,则C =1,这样巴特沃思滤波器的设计就只剩一个参数N ,这时 N p N j G 222 )/(11 11)(ΩΩ+= += λλ (3)确定)(s G 因为λj p =,根据上面公式有 N N N p j p p G p G 22)1(11 )/(11)()(-+= += - 由 0)1(12=-+N N p 解得 )221 2exp(πN N k j p k -+=,k =1,2, (2) 这样可得 1 )21 2cos(21 ) )((1 )(21+-+-= --= -+πN N k p p p p p p p G k N k k 求得)(p G 后,用p s Ω/代替变量p ,即得实际需要得)(s G 。 二、双线性变换法 双线性变换法是将s 平面压缩变换到某一中介1s 平面的一条横带里,再通过标准变换关系)*1exp(T s z =将此带变换到整个z 平面上去,这样就使s 平面与z 平面之间建立一一对应的单值关系,消除了多值变换性。 为了将s 平面的Ωj 轴压缩到1s 平面的1Ωj 轴上的pi -到pi 一段上,可以通过以下的正切变换来实现: )21 tan(21T T Ω= Ω 这样当1Ω由T pi -经0变化到T pi 时,Ω由∞-经过0变化到∞+,也映射到了整个Ωj 轴。将这个关系延拓到整个s 平面和1s 平面,则可以得到

基于matlab的数字滤波器设计

淮北煤炭师范学院 2009届学士学位论文 基于MA TLAB的数字滤波器设计 学院、专业物理与电子信息学院 电子信息科学与技术 研究方向基于MATLAB的数字滤波器设计 学生姓名耿博 学号200513432024 指导教师姓名邹锋 指导教师职称讲师 2009 年4 月18

基于MATLAB的数字滤波器设计 耿博 (淮北煤炭师范学院物理与电子信息学院235000) 摘要随着信息时代和数字世界的到来,数字信号处理已成为今一门极其重要的学科和技术领域。数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理应用中,数字滤波器十分重要并已获得广泛应用。 数字滤波是数字信号处理的重要内容,数字滤波器可分为IIR和FIR两大类。对于IIR数字滤波器的设计,需要借助模拟原型滤波器,再将模拟滤波器转化为数字滤波器,文中采用的设计方法是脉冲响应不变法、双向性变换法和完全函数设计法;对于FIR数字滤波器的设计,可以根据所给定的频率特性直接设计,文中采用的设计方法是窗函数法。本文根据IIR滤波器和FIR滤波器的特点,在MATLAB坏境下分别用双线性变换法设计IIR和用窗函数设计FIR数字滤波器,并对采集的语音信号进行分析,最后给出了IIR和FIR对语音滤波的效果。 关键词数字滤波器;IIR ;FIR ;MATLAB

The Design of Digital Filter based on MATLAB Geng Bo School of Physics and Electronics Information, Huaibei Coal Industry Teachers? College, 235000 ABSTRACT Along with the information age and the digital world arrival, the digital signal processing has become a now extremely important discipline and the area of technology.The digital signal processing in the correspondence, the multitudinous domains the pronunciation such as the image, the automatic control, the radar, the military, the aerospace, the medical service and the domestic electric appliances and so on have obtained the widespread application.In the digital signal processing application, the digital filter are extremely important and have obtained the widespread application. The digital filter are the digital signal processing important content, the digital filter may divide into IIR and the FIR two main kinds. As for the IIR digital filter design, we need the help of analog prototype filter, and then transform analog filter into digital filter. In the paper we use the design of the pulse response invariable method, the bilinear method and full function design; as for the FIR filter, we can design it directly based on the giving frequency, in the paper it uses the design of the window function.This article according to the IIR filter and the FIR filter characteristic, uses the bilinearity method of transformation under the MATLAB bad boundary to design IIR and to design the FIR numeral filter separately with the window box number, and carries on the analysis to the gathering pronunciation signal, and finally gives IIR and FIR to the pronunciation filter effect. Keywords Digtial Filter;IIR;FIR;MATLAB

有源低通滤波器设计报告要点

课程设计(论文)说明书 题目:有源低通滤波器 院(系):信息与通信学院 专业:通信工程 学生姓名: 学号: 指导教师: 职称: 2010年 12 月 19 日

摘要 低通滤波器是一个通过低频信号而衰减或抑制高频信号的部件。理想滤波器电路的频响在通带内应具有一定幅值和线性相移,而在阻带内其幅值应为零。有源滤波器是指由放大电路及RC网络构成的滤波器电路,它实际上是一种具有特定频率响应的放大器。滤波器的阶数越高,幅频特性衰减的速率越快,但RC网络节数越多,元件参数计算越繁琐,电路的调试越困难。根据指标,本次设计选用二阶有源低通滤波器。 关键词:低通滤波器;集成运放UA741;RC网络 Abstract Low-pass filter is a component which can only pass the low frequency signal and attenuation or inhibit the high frequency signal . Ideal frequency response of the filter circuit in the pass band should have a certain amplitude and linear phase shift, and amplitude of the resistance band to be zero. Active filter is composed of the RC network and the amplifier, it actually has a specific frequency response of the amplifier. Higher the order of the filter, the rate of amplitude-frequency characteristic decay faster, but more the number of RC network section, the more complicated calculation of device parameters, circuit debugging more difficult. According to indicators ,second-order active low-pass filter is used in this design . Key words:Low-pass filter;Integrated operational amplifier UA741;RC network,

数字滤波器的MATLAB设计与DSP上的实现

数字滤波器的MAT LAB设计与 DSP上的实现 数字滤波器的MATLAB 设计与DSP上的实现 公文易文秘资源网佚名2007-11-15 11:56:42我要投稿添加到百度搜藏 摘要:以窗函数法设计线性相位FIR数字滤波器为例,介绍用MATLAB工具软件设计数字滤波器的方法和在定点DSP上的实现。实现时,先在CCS5000仿真开发,然后将程序加载到TMS320VC5409评估板上实时运行,结果实现了目标要求。文中还讨论了定标、误差、循环寻址等在DSP上实现的关键问题。关键词 摘要:以窗函数法设计线性相位 FIR数字滤波器为例,介绍用 MATLAB工具软件设计数字滤波器的方法和在定点DSP上的实现。实现时,先在 CCS5000仿真开发,然后将程序加载到 TMS320VC5 409评估板上实时运行,结果实现了目标要求。文中还讨论了定标、误差、循环寻址等在DSP上实 现的关键问题。 关键词:数字滤波器MATLAB DSP 引言 随着信息时代和数字世界的到来,数字信号处理已成为今一门极其重要的学科和技术领域。数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应

用。在数字信号处理应用中,数字滤波器十分重要并已获得广泛应用。 1数字滤波器的设计 1.1数字滤波器设计的基本步骤 数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR )滤波器和有限长冲激响应(FIR )滤波器。IIR滤波器的特征是,具有无限持续时间冲激响应。种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。FIR滤波器的冲激响应只能延续一定时间, 在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。数字滤波器的设计方法有多种,如双线性变换法、窗函数设计法、插值逼近法和Chebyshev逼近法等等。随着 MATLAB软件尤 其是MATLAB的信号处理工作箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。 数字滤波器设计的基本步骤如下: (1确定指标 在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数字滤波器常常被用来实现选频操作。因此,指标的形式一般在频域中给岀幅度和相位响应。幅度指标主要以两种方式给岀。第一种是绝对指标。它提供对幅度响应函数的要求,一般应用于FI R滤波器的设计。第二种指标是相对指标。它以分贝值的形式给岀要求。在工程实际中,这种指标最受欢迎。对于相位响应指标形式,通常希望系统在通频带中人有线性相位。运用线性相位响应指标进行滤波器设计具有如下优点:①只包含实数算法,不涉及复数运算;②不存在延迟失真,只有固定数量的延迟;③长度为N的滤波器(阶数为N-1),计算量为N/2数量级。因此,本文中滤波器的设计就以线性相位FIR滤波器的设计为例。 (2)逼近

数字滤波器matlab的程序

数字滤波器matlab的源代码 function lvbo(Ua,Ub,choise) %参考指令:lvbo(2*pi,10*pi,1/0/-1) U1=min(Ua,Ub); U2=max(Ua,Ub); Us=16*U2; T=2*pi/Us; T_sum=4*max(2*pi/Ua,2*pi/Ub); sum=T_sum/T; t=T:T:T_sum; x=sin(U1*t)+0.8*sin(U2*t); X=DFT(x); figure(1); subplot(221) U=Us/sum:Us/sum:Us; stem(U,abs(X));grid on axis([Us/sum,Us/2,0,1.2*max(abs(X))]) title('原模拟信号采样频谱图') Ucd=U1+(U2-U1)*1/5;Usd=U2-(U2-U1)*1/5; switch choise case 1 Hz_ejw=IIR_DF_BW(Ucd,1,Usd,30,T,sum); case -1 Hz_ejw=IIR_DF_CF(Ucd,1,Usd,30,T,sum); case 0 Hz_ejw=FIR_DF_HM(U1,U2,T,sum); otherwise Hz_ejw=IIR_DF_BW(Ucd,1,Usd,30,T,sum); end Y=X.*Hz_ejw; y=1/sum*conj(DFT(conj(Y))); figure(1); subplot(224) plot(t,real(y)); title('模拟信号滤波后');grid on axis([0,T_sum,-max(real(y))*1.5,max(real(y))*1.5]) subplot(222); plot(t,x); hold on

设计数字低通滤波器(用matlab实现)

DSP 设计滤波器报告 姓名:张胜男 班级:07级电信(1)班 学号:078319120 一·低通滤波器的设计 (一)实验目的:掌握IIR 数字低通滤波器的设计方法。 (二)实验原理: 1、滤波器的分类 滤波器分两大类:经典滤波器和现代滤波器。 经典滤波器是假定输入信号)(n x 中的有用成分和希望取出的成分各自占有不同的频带。这样,当)(n x 通过一个线性系统(即滤波器)后可讲欲去除的成分有效的去除。 现代滤波器理论研究的主要内容是从含有噪声的数据记录(又称时间序列)中估计出信号的某些特征或信号本身。 经典滤波器分为低通、高通、带通、带阻滤波器。每一种又有模拟滤波器(AF )和数字滤波器(DF )。对数字滤波器,又有IIR 滤波器和FIR 滤波器。 IIR DF 的转移函数是: ∑∑=-=-+==N k k k M r r r z a z b z X z Y z H 10 1)()()( FIR DF 的转移函数是: ∑-=-=10)()(N n n z n h z H FIR 滤波器可以对给定的频率特性直接进行设计,而IIR 滤波器目前最通用的方法是利用已经很成熟的模拟滤波器的设计方法进行设计。 2、滤波器的技术要求 低通滤波器: p ω:通带截止频率(又称通带上限频率) s ω:阻带下限截止频率 p α:通带允许的最大衰减 s α:阻带允许的最小衰减 (p α,s α的单位dB ) p Ω:通带上限角频率 s Ω:阻带下限角频率 (s p p T ω=Ω,s s s T ω=Ω)即 C p p F ωπ2=Ω C s s F ωπ2=Ω 3、IIR 数字滤波器的设计步骤:

fir低通滤波器设计(完整版)

电子科技大学信息与软件工程学院学院标准实验报告 (实验)课程名称数字信号处理 电子科技大学教务处制表

电 子 科 技 大 学 实 验 报 告 学生姓名: 学 号: 指导教师: 实验地点: 实验时间:14-18 一、实验室名称:计算机学院机房 二、实验项目名称:fir 低通滤波器的设计 三、实验学时: 四、实验原理: 1. FIR 滤波器 FIR 滤波器是指在有限范围内系统的单位脉冲响应h[k]仅有非零值的滤波器。M 阶FIR 滤波器的系统函数H(z)为 ()[]M k k H z h k z -==∑ 其中H(z)是k z -的M 阶多项式,在有限的z 平面内H(z)有M 个零点,在z 平面原点z=0有M 个极点. FIR 滤波器的频率响应 ()j H e Ω 为 0 ()[]M j jk k H e h k e Ω -Ω ==∑ 它的另外一种表示方法为 () ()()j j j H e H e e φΩΩΩ=

其中 () j H e Ω和()φΩ分别为系统的幅度响应和相位响应。 若系统的相位响应()φΩ满足下面的条件 ()φαΩ=-Ω 即系统的群延迟是一个与Ω没有关系的常数α,称为系统H(z)具有严格线性相位。由于严格线性相位条件在数学层面上处理起来较为困难,因此在FIR 滤波器设计中一般使用广义线性相位。 如果一个离散系统的频率响应 ()j H e Ω 可以表示为 ()()()j j H e A e αβΩ-Ω+=Ω 其中α和β是与Ω无关联的常数,()A Ω是可正可负的实函数,则称系统是广义线性相位的。 如果M 阶FIR 滤波器的单位脉冲响应h[k]是实数,则可以证明系统是线性相位的充要条件为 [][]h k h M k =±- 当h[k]满足h[k]=h[M-k],称h[k]偶对称。当h[k]满足h[k]=-h[M-k],称h[k]奇对称。按阶数h[k]又可分为M 奇数和M 偶数,所以线性相位的FIR 滤波器可以有四种类型。 2. 窗函数法设计FIR 滤波器 窗函数设计法又称为傅里叶级数法。这种方法首先给出()j d H e Ω, ()j d H e Ω 表示要逼近的理想滤波器的频率响应,则由IDTFT 可得出滤波器的单位脉冲响应为 1 []()2j jk d d h k H e e d π π π ΩΩ-= Ω ? 由于是理想滤波器,故 []d h k 是无限长序列。但是我们所要设计的FIR 滤波 器,其h[k]是有限长的。为了能用FIR 滤波器近似理想滤波器,需将理想滤波器的无线长单位脉冲响应 []d h k 分别从左右进行截断。 当截断后的单位脉冲响应 []d h k 不是因果系统的时候,可将其右移从而获得因果的FIR 滤波器。

实验11 用MATLAB设计FIR数字滤波器

实验11 用MATLAB 设计FIR 数字滤波器 一、实验目的: 1、加深对窗函数法设计FIR 数字滤波器的基本原理的理解。 2、学习用MA TLAB 语言的窗函数法编写设计FIR 数字滤波器的程序。 3、了解MATLAB 语言有关窗函数法设计FIR 数字滤波器的常用函数用法。 二、实验内容及步骤 2、选择合适的窗函数设计FIR 数字低通滤波器,要求: w p =0.2π,R p =0.05dB ; w s =0.3π,A s =40dB 。描绘该滤波器的脉冲响应、窗函数及滤波器的幅频响应曲线和相频响应曲线。 分析:根据设计指标要求,并查表11-1,选择汉宁窗。程序清单如下: function hd=ideal_lp(wc,N) wp=0.2*pi;ws=0.3*pi;deltaw=ws-wp; tao=(N-1)/2; n=[0:(N-1)]; m=n-tao+eps; hd=sin(wc*m)./(pi*m); function[db,mag,pha,grd,w]=freqz_m(b,a); [H,w]=freqz(b,a,1000,'whole'); H=(H(1:501))';w=(w(1:501))'; mag=abs(H); db=20*log10((mag+eps)/max(mag)); pha=angle(H); grd=grpdelay(b,a,w); wp=0.2*pi;ws=0.3*pi;deltaw=ws-wp; wc=(ws+wp)/2; 课程名称:数字信号处理 实验成绩: 指导教师: 实 验 报 告 院系: 信息工程学院 班级: 电信二班 学号: 姓名: 日期:

低通滤波器的设计

低通滤波器的设计 模拟滤波器在各种预处理电路中几乎是必不可少的,已成为生物医学仪器中的基本单元电路。有源滤波器实质上是有源选频电路,它的功能是允许指定频段的信号通过,而将其余频段上的信号加以抑制或使其急剧衰减。各种生物信号的低噪声放大,都是首先严格限定在所包含的频谱范围之内。 最常用的全极点滤波器有巴特沃斯滤波器和切比雪夫滤波器。就靠近ω=0处的幅频特性而言,巴特沃斯滤波器比切比雪夫滤波器平直,即在频率的低端巴特沃斯滤波器幅频特性更接近理想情况。但在接近截止频率和在阻带内,巴特沃斯滤波器则较切比雪夫滤波器差得多。本设计中要保证低频信号不被衰减,而对高频要求不高,因此选择了巴特沃斯滤波器。巴特沃思滤波电路(又叫最平幅度滤波电路)是最简单也是最常用的滤波电路,这种滤波电路对幅频响应的要求是:在小于截止频率ωc。的范围内,具有最平幅度响应,而在ω>ωc。后,幅频响应迅速下降。 因为本设计中要保证低频信号不被衰减,而对高频要求不高,所以选择 二阶滤波器即可。本系统采用二阶Butterworth低通滤波器,截止频率f H=100HZ,其电路原理图如1: 图1 低通滤波器图 根据matlab软件算得该设计适合二阶低通滤波器,FSF=628选Z=10000,则

Z R R FSF Z ?=?=的归一值的归一值 C C 3.2脉象信号的的前置放大 由于人体信号的频率和幅度都比较低,很容易受到空间电磁波以及人体其它生理信号的干扰,因此在对其进行变换、分析、存储、记录之前,应该进行一些预处理,以保证测量结果的准确性。因此需要对信号进行放大,“放大”在信号预处理中是第一位的。根据所测参数和所用传感器的不同,放大电路也不同。用于测量生物电位的放大器称为生物电放大器,生物电放大器比一般放大器有更严格的要求。 在本研究中放在传感器后面的电路就是前置放大电路,由于从传感器取得的信号很微弱,且混杂了一些其他的干扰信号。因此前置放大电路的主要功能是,滤除一些共模干扰信号,同时进行一定的放大。该电路由4部分构成:并联型双运放仪器放大器,阻容耦合电路,由集成仪用放大器构成的后继放大器和共模信号取样电路。并联型双运放仪器放大器的优点是不需要精密的匹配电阻,理论上它的共模抑制比为无穷大,且与其外围电阻的匹配程度无关。集成仪用放大器将由并联型双运放仪器放大器输出的双端差动信号转变为单端输出信号,并采用阻容耦合电路隔离直流信号,可以使集成仪用放大器取得较高的差模增益,从而得到很高的共模抑制比。共模取样驱动电路由两个等值电阻和一只由运放构成的跟随器构成,能够使共模信号不经阻容耦合电路的分压直接加在集成放大器的输入端,避免了由于阻容耦合电路的不匹配而降低电路整体的共模抑制比。此电路中也采用了右腿驱动电路来抑制位移电流的影响。前置放大电路参数选择:此部分总的增益取为1000,其中并联型双运放仪器放大器的增益为5,集成仪用放大器的增益为200。具体设计电路如图2所示

matlab数字滤波器设计程序

%要求设计一butterworth低通数字滤波器,wp=30hz,ws=40hz,rp=0.5,rs=40,fs=100hz。>>wp=30;ws=40;rp=0.5;rs=40;fs=100; >>wp=30*2*pi;ws=40*2*pi; >> [n,wn]=buttord(wp,ws,rp,rs,'s'); >> [z,p,k]=buttap(n); >> [num,den]=zp2tf(z,p,k); >> [num1,den1]=impinvar(num,den); Warning: The output is not correct/robust. Coeffs of B(s)/A(s) are real, but B(z)/A(z) has complex coeffs. Probable cause is rooting of high-order repeated poles in A(s). > In impinvar at 124 >> [num2,den2]=bilinear(num,den,100); >> [h,w]=freqz(num1,den1); >> [h1,w1]=freqz(num2,den2); >>subplot(1,2,1); >>plot(w*fs/(2*pi),abs(h)); >>subplot(1,2,2); >>plot(w1*fs/(2*pi),abs(h1)); >>figure(1); >>subplot(1,2,1); >>zplane(num1,den1); >>subplot(1,2,2); >>zplane(num2,den2);

高级数字滤波器设计及Matlab实现

高级数字滤波器设计及Matlab 实现 利用Parks-McClellan 算法设计线性相位FIR 滤波器 一、 算法原理 长度为2n+1的线性相位数字滤波器的传输函数为:20 ()n k k k G z h Z -== ∑。当 Z=exp(j T ω)=exp(2j F π)时,可得到频率响应: ()exp(2)cos 2n k k G F j nF d k F ππ==-∑ exp(2)()j F H F π=- 其中2n k k d h -=,k=0,……,n-1,0n d h = max ()()()W F D F H F - 对于一个理想的低通滤波器上式中的H(F)可以表示为: 误差加权函数: 允许设计者自己给定通带和阻带内的误差范围。令p s B B A = ,设计长度为2n+1的线性相位低通滤波器只要找到k d 并使得m a x ()()()W F D F H F -最小。 设空间A 是[0,1/2]的封闭子空间,为了使0 ()cos 2n k k H F d kF π== ∑是D(F) 在A 上唯一的最佳逼近,加权误差方程()()[()()]E F W F D F H F =-在A 上至少要有n+2个交错点。因此1()()i i E F E F E -=-=±,011,n i F F F F A +<∈ ,

max ()E E F =。算法的流程如图1所示。 对于给定的n+2个频率点,需要计算n+2个方程: ()(()())(1)k k k k W F H F D F ρ-=-- 写成矩阵的形式就是: 图 1.

0000001 1 1 1 1011 1 1 1 11 1cos 2cos 4cos 2()()11cos 2cos 4cos 2()()()(1)1cos 2cos 4cos 2()n n n n n n n F F nF W F d D F d F F nF D F W F d D F F F nF W F ππππππρπππ++++++?? ???? ?? ?? ??-????????????=??????????????????-?? ????? ? 通过该方程组可得: 其中: 利用拉格朗日插值公式可得: 这里 利用求得的H(F)求出误差函数E(F)。如果对所有的频率都有()E F ρ≤,说明ρ是纹波极值,交错频率点121,n F F F + 是交错频率点。若存在某些频率使得()E F ρ>,说明初始交错点组中的某些点需要交换。 对于上次确定的121,n F F F + 中每一点,都检查其附近是否存在某一频率 ()E F ρ>,如果有再在该点附近找出局部极值点,并用该,点代替原来的

相关文档
相关文档 最新文档