基于DSP的FIR数字滤波器

基于DSP的FIR数字滤波器
基于DSP的FIR数字滤波器

基于DSP的FIR数字滤波器

学号

******************** 成绩

评语

题目基于DSP 的FIR数字滤波器设计

作者************* 班级********

院别************** 专业电子信息

完成时间2012年05月23号

目录

一概述 (2)

1.1 数字滤波器的研究现状 (2)

1.2 论文主要完成的工作 (2)

二系统硬件设计 (3)

2.1 系统设计方案 (3)

2.2 主控模块 (6)

2.3 显示模块 (7)

三系统软件设计 (10)

3.1 软件整体设计 (10)

3.2 测量模块 (10)

四系统测试结果与总结 (11)

4.1 硬件调试中要注意到的问题 (11)

4.2 软件调试中要注意到的问题 (11)

4.3 结果 (11)

4.4 总结 (12)

五参考文献 (13)

六附件 (14)

基于DSP的 FIR数字滤波器设计

一、概述

1.1 数字滤波器的研究现状

滤波器的主要分类有以下几种:

(1)按处理信号类型分类,可分为模拟滤波器和离散滤波器两大类。其中模拟滤波器又可分为有源、无源、异类三个分类;离散滤波器又可分为数字、取样模拟、混合三个分类。

(2)按选择物理量分类,滤波器可分为频率选择、幅度选择、时间选择(例如PCM制中的话路信号)和信息选择(例如匹配滤波器)等四类滤波器。

(3)按频率通带范围分类,滤波器可分为低通、高通、带通、带阻、全通五个类别,而梳形滤波器属于带通和带阻滤波器,因为它有周期性的通带和阻带。

为适应各种需要,出现了一批新型滤波器,这里介绍几种已得到广泛应用的新型滤波器:

(1)电控编程CCD横向滤波器(FPCCDTF):电荷耦合器(CCD)固定加权的横向滤波器(TF)在信号处理中,其性能和造价均可与数字滤波器和各种信号处理部件媲美。这种滤波器主要用于自适应滤波;P-N序列和Chirp波形的匹配滤波;通用化的频域滤波器及相关积运算;语音信号和相位均衡;相阵系统的波束合成和电视信号的重影消除等均有应用。当然,更多的应用有待进一步开拓。总之,FPCCDTF 是最有希望的发展方向。

(2)晶体滤波器:它是适应单边带技术而发展起来的。在20世纪70年代,集成晶体滤波器的产生,使它的发展产生一个飞跃。近十年来,晶体滤波器致力于下面一些研究:实现最佳设计,除具有优良的选择外,还具有良好的时域响应;寻求新型材料;扩展工作频率;改造工艺,使其向集成化发展。它广泛应用于多路复用系统中作为载波滤波器,在收发信中,单边带通信机中作为选频滤波器,在频谱分析仪和声纳装置中作为中频滤波器。

(3)声表面滤波器:它是理想的超高频器件。它的幅频特性和相位特性可以分别控制,以达到要求,而且它还有体积小,长时间稳定性好和工艺简单等特点。通常应用于:电视广播发射机中作为残留边带滤波器;在彩色电视接收机中调谐系统的表面梳形滤波器。此外,在国防卫星通信系统中已广泛采用。声表面滤波器是电子学和声学相结合的产物,而且可以集成,所以,它在所有无源滤波器中最有发展前途的。

我国现有滤波器的种类和所覆盖的频率已基本上满足现有各种电信设备。从整体而言,我国有源滤波器发展比无源滤波器缓慢,尚未大量生产和应用。从下面的生产

应用比例可以看出我国各类滤波器的应用情况:LC 滤波器占50%;晶体滤波器占20%;机械滤波器占15%;陶瓷和声表面滤波器各占1%;其余各类滤波器共占13%。从这些应用比例来看,我国电子产品要想实现大规模集成,滤波器集成化仍然是个重要课题。

随着电子工业的发展,对滤波器的性能要求越来越高,功能也越来越多,并且要求它们向集成方向发展。我国滤波器研制和生产与上述要求相差甚远,为缩短这个差距,电子工程和科技人员负有重大的历史责任。

1.2 论文主要完成的工作

本课题主要应用MATLAB 软件设计FIR 数字滤波器,并对所设计的滤波器进行仿真:应用DSP 集成开发环境—CCS 调试汇编程序,用TMS320C5402来实现了FIR 数字滤波。主要完成的工作有:

(1)对FIR 数字滤波器的基本理论进行了分析和探讨;

(2)采用MATLAB 软件来学习数字滤波器的基本知识,计算数字滤波器的系放,研究算法的可行性,对FIR 低通数字滤波器进行前期的设计和仿真;

(3)系统介绍了TI 公司TMS320C54x 系列数字信号处理器的硬件结构、性能特点和DSP 的集成开发环境CCS ;应用DSP 集成开发环境-℃CS 调试汇编程序,用TMS320C5402来实现了FIR 数字滤波。

(4)用窗函数法实现FIR 滤波器,通过调用四种窗口函数,截取不同的带通与低通滤波原型,满足以下性能要求:

带通滤波器:

下阻带边缘:πω2.01=s ,dB

A s 60=;下通带边缘:πω35.01=p ,d

B R p 1=,

上通带边缘:πω65.02=p ,dB R p 1=;上阻带边缘:πω8.02=s

,dB A s 60=,

低通滤波器:πω2.0=p ,dB R p 25.0=;πω3.0=s ,dB

A s 50=;

(5)研究DSP 的结构特点,了解TI 公司的TMS3205410 DSP 器件,掌握DSP 系统的构成及软硬件设计方法和CCS 软件的调试方法;并以TI 公司的TMS3205410 DSP 为核心处理器,在DSP 上实现FIR 滤波器系统。

二、 系统硬件设计

2.1系统设计方案

通常一个典型的 DSP 系统如图1所示。

图2.1 典型的DSP 系统

上图是一个用DSP 做信号处理的典型框图。由于DSP 是用来对数字信号进行处理的,所以首先必须将输入的模拟信号变换为数字信号。于是先对输入模拟信号进行调整,输出的模拟信号经过A/D 变换后变成DSP 可以处理的数字信号,DSP 根据实际需要对其进行相应的处理,如FFT 、卷积等;处理得到的结果仍然是数字信号,可以直接通过相应通信接口将它传输出去,或者对它进行D/A 变换将其转换为模拟采样值,最后再经过内插和平滑滤波就得到了连续的模拟波形模拟信号。

一般来说DSP 的设计过程应遵循一定的设计流程,如图2示。

图2.2 DSP 基本设计流程

DSP 定义系硬件调

选择

软件编硬件设系统集软件调

系统测

在数字信号处理系统中,常常要用到FIR 数字滤波器,这是因为用FIR 滤波器可以逼近任意幅频特性的滤波器,并获得很好的性能。故我们将设计基于DSP 的FIR 数字滤波器。

本次数字滤波器的实现采用线性缓冲区法。利用线性缓冲区法实现一个K 阶数字FIR 滤波器的计算时,除在存储空间中定义一个长度为K 的存储去用于存放滤波器的系数外,还需要专门定义一个长度为K 的存储区域用来存放K 个输入数据,该区域称为循环缓冲区。在开始计算前,先给循环缓冲区中所有单元全部赋值为0,开始计算后,每来一个新的输入数据,将其按顺序写入循环缓冲区,并将循环缓冲区数据于滤波器系数按相应的规则进行K 次乘法累加计算,产生一个输出数据。直到循环缓冲区被填满,下一个输入数据到来时,用其替换循环缓冲区中最早的那个数据点,并相应地进行K 次循环累加运算,产生相应的滤波输出。如此循环直到输入数据序列计算结束。这样在循环缓冲中读取数据时总是在这一段地址范围内循环读数,因此将这一算法称为循环缓冲区法。循环缓冲区法的数据寻址示意图如下图4所示:

初始状态 n 时刻

的输入采样 更新一个数据后

图 2.3 循环缓冲

区法执行过程图

循环缓冲区法的具体步骤如下:

(1)定义两个长度为K 的数组,一个用来存放滤波系数h[n],另一个用来存放输入

数据a[n];

(2)将滤波系数存放到h[n]中,将a[n]的所有元素赋值为0; (3)将要处理的第一个数据存于a[0]中; (4)进行K 次乘法累加运算,得出一个滤波输出;

(5)将新的输入数据值存入a[K]中,以替代最旧的一个数据重复第(4)步,计算

新的滤波器输出,如此循环至所有的输入数据处理结束。

H(K-1)

H(K-2) X(n-(K-1X(n+1) X(n-(k-2H(1)

H(0) X(n-1) X(n-1) X(n) X(n) X(n-(K-2

…………

………

…………

H(1)

循环缓冲区法实现的数字滤波器结构比较紧凑,占用存储资源较少,结合DSP 的循环寻址方法可以方便、高效的实现FIR 数字滤波器。

图2.4 系统设计框图

2.2 主控模块

TMS3205402是16位的定点处理器,所以在进行汇编程序设计时,FIR 滤波器系数要采用Q15格式,即必须将上述系数转化为Q15格式,这只要将滤波器各系数乘以215即可。

用DSP 实现Z 1-算法是十分方便的,常用的方法有两种:线性缓冲区法和循环缓冲区法。在本文中采用的是循环缓冲法,循环缓冲区法的特点是:

(1) 对于N 阶的FIR 滤波器,在数据存储器中开辟一个也称为滑窗的N 个单元的缓冲区,滑窗中存放最新的N 个输入样本;

(2) 每次移入新的样本时,以新样本改写滑窗中老的数据,而滑窗中的其他数据不需要移动;

(3) 利用片内BK (循环缓冲区长度)寄存器对滑窗进行间接寻址,循环缓冲区地址首尾相邻。

FIR 滤波器的核心算法是计算输入信号与滤波器系数的卷积。设x(n)为输入信号,h(n)为FIR 滤波器的冲击响应,n=0,…,N-1,则FIR 滤波器的输出y(n)就是x(n)与h(n)的卷积,即:

()()()m h m n x n y N m *1

∑-=-=

由于卷积是数字信号处理中最常用到的算法,因此几乎所有的DSP 芯片中都设有专门的指令支持卷积运算。在TMS3205410中可以用macd 指令完成卷积。macd 指令的形式如下:

macd (Smem ,pmad ,src );

在macd 指令中,Smem 是间接寻址参数,它是指令中指向数据存储器的单地址。

MATLA B 编程MATLA B 滤波

器设

CC

观察输

Pmad是表示程序存储器地址的16位常数。Src表示累加器,可以是A累加器或是B累加器。这条指令在执行时,先把指令中的pmad常数送到程序地址寄存器的PAR中,然后将Smem地址中的数据用PAR地址在程序存储器中读取的数据相乘,并将乘积结果累加到由Src指定的累加器中。在指令执行时,Smem地址中的内容被同时复制到T 寄存器和Smem低中之后的下一个地址单元中。若采用repeat指令重复执行macd指令,则在执行指令的最后,PAR寄存器自动加1,这样当macd再次执行时就直接用PAR 中的地址读取程序存储器中的数据。通常情况下,macd指令执行时需要三个周期。但是若用repeat指令执行macd,进入流水线后只要一个周期就可以执行一次macd指令。由此可见,该指令同时完成了乘累加和数据延迟(移位)的功能,这正是卷积算法所要求的。

对于输入序列,它在两个循环缓冲器里的存储情况如下,要建立缓冲区首先将循环缓冲区大小寄存器的值设为N/2辅助寄存器AR4指到缓冲区1(Bufferl)的顶部AR5指到缓冲区2(Buffer2)的底部,新来一个样本存储到缓冲区1中时,应先将缓冲区1顶部的数据移到缓冲区2底部,处理器然后进行乘加运算,滤波程序每步运算后AR4 指向数据移到的下一个窗口,而AR5则指向下一个输入数据,对于下一步运算AR4指向地址1,AR5指向地址N/2。如下图所示。

图2.5 FIR系数存储格式示意图考虑到在执行macd指令时是将低地址的数据复制到高地址来完成延迟功能,所以在用macd指令计算卷积时,先计算x(n-N+1)与h(N-1)的乘积,最后才计算x(n)与h(0)的乘积。因此在程序中,FIR滤波器的系数在程序存储器中按倒序存储。

2.3 显示模块

本系统的具体硬件方案框图如下图:

图2.6 硬件方案框图

在本系统设计中采用了TI 的TMS320VC5402 作为其核心处理单元。TMS320VC5402为低功耗定点数字信号处理器,其运算速度最快可达532MIPS。它采用先进的修正哈佛结构,片内共有8 条总线(1 条程序存储器总线、3 条数据存储总线和4 条地址总线)。其CPU采用并行结构设计,使其能在一条指令周期内,高速地完成多项算术运算。TMS320VC5402的丰富的片上外围电路(通用I/O 引脚,定时器,时钟发生器,HPI 接口,多通道缓冲串行口McBSP)使其与外部接口方便[2]。TMS320VC5402 的片上包含两个McBSP(多通道缓冲串行口)接口,可以将这两个通道

模仿实现SPI 的时序,因此本设计中采用了SPI 接口器件实现数据的模数转换和数模转换。在本数字滤波器系统中选择了TI 公司的TLV 1570 芯片作为模数转换器件,8 通道10位2.7 到5.5 V 低电压模数转换芯片。TLVl570 在3V 电压下的采样频率为625KSPS,输入信号最高频率不能超过300K[3]。

其功能时序图如下:

图2.7 TLV1570 的功能时序图

从功能时序图可以看出该器件包含8 通道输入多路复用器、高速的10 位ADC、内部的电压参考源和高速的串行接口。其高速串行接口包含五根信号线:SCLK 串行时钟输入、SDIN串行数据输入、SDOUT 串行数据输出、FS 帧同步信号、CS#片选信号。其中每个取样和转换过程需要16 个系统工作时钟。由于模数转换选择了10 位器件,为了简化程序代码,减少DSP 的运算工作量,在本数字滤波器系统中选择了TI 公司的TLV5608 芯片,它是一款8 通道10 位2.7 到5.5 V 低电压数模转换芯片[4]。如下图所示:

图2.8 TLV5608 的功能时序图。

三、系统软件设计

3.1 软件整体设计

系统软件设计由Matlab辅助DSP实现FIR,其总体过程为在DSP中编写处理程序;在Matlab中利用滤波器设计、分析工具(FDATool),根据指定的滤波器性能快速设计一个FIR,然后把滤波器系数以头文件形式导人CCS中,头文件中含滤波器阶数和系数数组,在Matlab中调试、运行DSP程序并显示、分析处理后的数据。使用该方法,便于采用语言来实现程序。头文件名不变,当Matlab中设计的滤波器系数改变时,相应头文件中系数也改变,方便了程序调试、仿真。软件整体设计流程如下图所示:

图 3.1 软件整体设计流程图

3.2 测量模块

测量模块设计流程图如下图所示:

图3.2 测量模块设计流程图

四、系统测试与总结

4.1 硬件调试中要注意到的问题

在本系统的硬件调试中主要测试步骤如下:①首先测量电路板的电源和地是否有短路现象,电路板上所采用器件多为小封装器件,管脚间距小,容易出现短路现象,焊接完成后要认真检查。②系统上电检测,上电前应该首先检查电源的正负极性及输入电压的幅度,然后上电。上电后应快速检测电路板上主要电源芯片的输出电压和DSP 内核电压,以免损坏电路板上器件。③检测系统的复位信号是否工作正常,系统在复位后部分器件会检测自身的工作状态。④用示波器查看系统中主要的时钟信号的波形,包括DSP 输入时钟信号、DSP 输出时钟信号、ADC 和DAC 的系统时钟信号及帧同步时钟信号(需要结合DSP 的开发环境和仿真器进行测试)。⑤测量所准备的测试信号源的工作电压和工作频率是否在系统的允许范围内。

4.2 软件调试中要注意到的问题

利用TMS320VC5402 实现FIR 的程序中应注意以下几点:1.数据定标。输入数据和滤波器系数均小于1,以Q15 表示,将FRCT 标志置1,输入数据与滤波器系数乘完后结果自动左移一位,和累加器并取高16 位输出。2.数据存放要求。输入数据块和系数块都放在双寻址数据存储区,起始地址为m 位地址边界(2m>N)。3.循环寻址的使用。为了使用循环寻址,还要设置BK 为块长N。由于使用了循环寻址,数据和系数的指针在操作后以循环的方式增1。4.数据的初始化。输入数据块要初始化为全0。利用TMS320VC5402 的FIRS 指令和循环寻址,可以更简洁的方法实现对称抽头的FIR 滤波器。

4.3 结果

当给系统送入一个包含lk,3k,5k 的正弦波模拟信号源作为系统的输入信号源,并将MATLAB 仿真得到的低通数字滤波器的系数带入所编写的程序代码中,编译运行后循环执行滤波程果符合预期结果。

程序设置断点运行后,设置观察图形窗口变量及参数为:采用双踪观察启始地址分别为x和y,长度为256的单元中数值的变化,数值类型为32位浮点型变量,这两个数组中分别存放的是经A/D转换后的输入混叠信号(输入信号)和对该信号进行FIR滤波的结果;单击“Animate”运行程序,调整观察窗口并观察滤波结果,如下图示。

图4.1 测试结果

4.4 个人总结

本课题的主要工作是应用MATLAB软件设计FIR数字滤波器,并对所设计的滤波器进行仿真;应用DSP集成开发环境一CCS调试汇编程序,用TMS320C5416来实现了FIR数字滤波。

在本次是软件设计过程中,我所出现的问题以及需要注意的是:

(1)在FIR.m中的采样频率的设置要和开始设置时的采样频率一致,否则结果会出现偏差。

(2)在CCS中未定义标号,程序运行错误。

(3)在.h文件中未把coeff顶格写,编译时出现错误。

(4)未将fir.h和input.dat文件考入工程文件中。

(5)在间接寻址过程中,程序中丢失。

(6) 在View的Graph中单击Time/frequency出现graph property dialog框,未修改抽样点数,导致显示的图形出现差异。

在本次课程设计的过程中,我发现自己的知识面非常的狭隘,以至于,我不得不借阅大量的书籍来零时抱佛脚。在实际操作过程中,一开始发现自己的汇编语言知识严重缺乏,只好改用C语言,然而许久没用C语言的我,对于C语言程序的编写,依然有些陌生的感觉了,好在学过的东西,在回忆还不算太难。其次就是在硬件设计的时候遇到了不少的麻烦,只能大量的查阅书本或者上网寻找相应的资料。

五、参考文献

[1]陈后金.数字信号处理.北京:高等教育出版社,2004

[2]Sanjit K.Mitra Digital Signal Processing:A Computer-Based Approach.McGraw—Hill Companies,Inc.2005.424—426

[3]周利清,苏菲.数字信号处理基础.北京:北京邮电大学出版社,2005

[4]程佩清.数字信号处理教程(第二版).北京:清华大学出版社,2001

[5]王世一.数字信号处理.北京:北京理工大学出版社,2006

[6]丁玉美.数字信号处理.西安:西安电子科技大学出版社,‘2001

[7]胡广书.数字信号处理. 理论、算法与实现.北京:清华大学出版社,1997

[8]张贤达.现代信号处理.北京:清华大学出版社,1996

[9]支长义,程志平等.DSP原理开发应用.北京:航空航天大学出版社,2006.1.2

[10]陈亚勇.MATLAB信号处理详解.北京:人民邮电出版社,2001

[1l]王宏.MATLAB6.5及其在信号处理中的应用.北京:清华大学出版社,2004

[12] 朱铭铭.基于模糊的DSP系统设计.北京:电子工业出版社,2000

[13] TMS32054x DSP应用程序设计教程.北京:机械工业出版社,2004

[14] TMS32054x DSP硬件开发教程.北京:机械工业出版社,2003

[15]张雄伟.DSP芯片的原理与开发应用(第二版).北京:电子工业出版社,2000

[l6]彭宗启.DSP技术原理及应用.北京:电子工业出版社,1998

六、附录

FIR的DSP实现程序

C1:FIR.c

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

The programme of the FIR filter.

Using INT2 to get the input signal.

Array x is the input signal from A/D, the length is 256, 32-bit floating point.

Array y is the signal out of filter, the length is 256, 32-bit floating point.

Array h is the coefficient of the FIR filter, the length is 101, 101 order filter.

******************************************** ***********************************

#pragma CODE_SECTION(vect,"vect")

#include "stdio.h"

#include "math.h"

#define pi 3.1415927

#define IMR *(pmem+0x0000)

#define IFR *(pmem+0x0001)

#define PMST *(pmem+0x001D)

#define SWCR *(pmem+0x002B)

#define SWWSR *(pmem+0x0028)

#define AL *(pmem+0x0008)

#define CLKMD 0x0058 /* clock mode reg*/

#define Len 256

#define FLen 101

double npass,h[FLen], x[Len], y[Len], xmid[FLen]; void firdes (double npass);

unsigned int *pmem=0;

ioport unsigned char port8001;

int in_x[Len];

int m = 0;

int intnum = 0;

double xmean=0;

int i=0;

int flag = 0;

double fs,fstop,r,rm;

int i,j,p,k=0;

void cpu_init()

{ //asm(" nop");

//asm(" STM #0, CLKMD");

//asm(" STM #0, CLKMD");

//asm(" rpt #0ffffh");

//asm(" nop");

//asm(" STM #0x97ff, CLKMD");

*(unsigned int*)CLKMD=0x0; //switch to DIV mode clkout= 1/2 clkin

while(((*(unsigned int*)CLKMD)&01)!=0);

*(unsigned int*)CLKMD=0x27ff; //switch to PLL X 10 mode

PMST=0x3FA0;

SWWSR=0x7fff;

SWCR=0x0000;

IMR=0;

IFR=IFR;}

interrupt void int2()

{ in_x[m] = port8001;

in_x[m] &= 0x00FF;

m++;

intnum = m;

if (intnum == Len)

{

intnum = 0;

xmean = 0.0;

for (i=0; i

{

xmean = in_x[i] + xmean;

}

xmean = 1.0*xmean/Len;

for (i=0; i

{

x[i] = (double)(in_x[i] - xmean);

}

for (i=0; i

{

for (p=0; p

{

xmid[FLen-p-1] = xmid[FLen-p-2];

}

xmid[0] = x[i];

r = 0;

rm= 0;

for (j=0; j

{

r = xmid[j] * h[j];

rm = rm + r;

}

y[i] = rm;

}

m=0;

flag = 1;

}

}

void firdes(double npass)

{

i nt t;

for (t=0; t

{

h[t] = sin(pi*(N-(N-1)/2.0))*(0.54-0.46(cos(2*pi/(N-1)))/(pi * (N-(N-1)/2.0));

}

i f (t = ((FLen-1)/2)) h[t]=npass;

}

void set_int()

{ asm(" ssbx intm");

IMR=IMR|0x0004;

asm(" rsbx intm");

}

void main(void)

{ cpu_init();

f s =250000 ; /*samplin

g frequency*/

f stop = 31250; /*cut-off frequency*/

n pass = fstop/fs;

f or (i=0; i

{

xmid[i]=0;

}

f irdes(npass);

set_int();

for(;;)

{

if (flag == 1)

{

flag = 0; /* set breakpoint here */ }

}}

void vect()

{ asm(" .ref _c_int00"); /*pseudoinstruction*/ asm(" .ref _int2");

asm(" b _c_int00"); /* reset */

asm(" nop");

asm(" nop");

asm(" rete");

asm(" nop");

asm(" nop");

asm(" nop");

asm(" rete");

asm(" nop");

asm(" nop");

asm(" nop");

asm(" rete");

asm(" nop");

asm(" nop");

asm(" nop");

asm(" rete");

asm(" nop");

asm(" nop");

asm(" nop");

asm(" rete");

asm(" nop");

asm(" nop");

asm(" nop");

asm(" rete");

asm(" nop");

asm(" nop");

asm(" nop");

asm(" rete");

asm(" nop");

利用DSP实现数字滤波器

DSP技术及应用课程设计报告课设名称:利用DSP实现数字滤波器 学院:信息工程 专业:通信工程 班级:2012159 学号:201215925 姓名:高亮 辅导老师:李珺陈俊峰 时间:2015年12月29

目录 一.绪论 (1) 1.1设计背景 (1) 1.2设计要求 (1) 1.3设计思路简介 (1) 二.系统开发平台与环境 (1) 1.1CCS开发环境 (1) 三. FIR滤波器设计过程 (2) 3.1FIR滤波器基本理论 . (2) 3.2FIR滤波器的MATLAB实现 (4) 四FIR滤波器的DSP实现 (10) 五.CCS仿真图及结果 (12) 六.总结 (14) 七.参考文献 (15)

一. 绪论 1.1设计背景 在信号处理中,滤波占有十分重要的地位。数字滤波是数字信号处理的基本方法。数字滤波与模拟滤波相比有很多优点,它除了可避免模拟滤波器固有的电压漂移、温度漂移和噪声等问题外,还能满足滤波器对幅度和相位的严格要求。低通有限冲激响应滤波器(低通FIR滤波器)有其独特的优点,因为FIR系统只有零点,因此,系统总是稳定的,而且容易实现线性相位和允许实现多通道滤波器。 DSP(数字信号处理器)与一般的微处理器相比有很大的区别,它所特有的系统结构、指令集合、数据流程方式为解决复杂的数字信号处理问题提供了便利,本文选用TMS320C54X作为DSP处理芯片,通过对其编程来实现FIR滤波器。 对数字滤波器而言,从实现方法上,有FIR滤波器和无限冲激响应(IIR)滤波器之分。由于FIR滤波器只有零点,因此这一类系统不像IIR系统那样易取得比较好的通带与阻带衰减特性。但是FIR系统有自己突出的优点:①系统总是稳定的;②易实现线性相位;③允许设计多通带(阻带)滤波器。其中后两项是IIR系统不易实现的。 1.2设计要求 利用C语言在CCS环境中编写一个FIR滤波器程序,并能利用已设计好的滤波器对常用信号进行滤波处理。 1.3设计思路简介 在TMS320C54x系统开发环境CCS(Code Composer Studio)下对FIR 滤波器的DSP实现原理进行讨论。利用C语言设计相应的滤波器,通过实验仿真,从输入信号和输出信号的时域和频域曲线可看出在DSP上实现的FIR滤波器能完成预定的滤波任务。 二.系统开发平台与环境 1.1 CCS开发环境

FIR数字滤波器设计函数

FIR 数字滤波器设计函数 1. fir1 功能:基于窗函数的FIR 数字滤波器设计——标准频率响应。 格式:b=fir1(n,Wn) b=fir1(n,Wn,'ftype') b=fir1(n,Wn,Window) b=fir1(n,Wn,'ftype',Window) 说明:fir1函数以经典方法实现加窗线性相位FIR 滤波器设计,它可设计出标准的低通、带通、高通和带阻滤波器。 b=fir1(n,Wn)可得到n 阶低通FIR 滤波器,滤波器系数包含在b 中,这可表示成: n z n b z b b z b --++???++=)1()2()1()(1 这是一个截止频率为Wn 的Hamming(汉明)加窗线性相位滤波器,0≤Wn ≤1,Wn=1相应于0.5fs 。 当Wn=[W1 W2]时,fir1函数可得到带通滤波器,其通带为W1<ω< W2。 b=fir1(n,Wn,'ftype')可设计高通和带阻滤波器,由ftype 决定: ·当ftype=high 时,设计高通FIR 滤波器; ·当ftype=stop 时,设计带阻FIR 滤波器。 在设计高通和带阻滤波器时,fir1函数总是使用阶为偶数的结构,因此当输入的阶次为奇数时,fir1函数会自动加1。这是因为对奇数阶的滤波器,其在Nyquist 频率处的频率响应为零,因此不适合于构成高通和带阻滤波器。 b=fir1(n,Wn,Window)则利用列矢量Window 中指定的窗函数进行滤波器设计,Window 长度为n+1。如果不指定Window 参数,则fir1函数采用Hamming 窗。 Blackman 布莱克曼窗 Boxcar 矩形窗 Hamming 海明窗 Hann 汉宁窗 Kaiser 凯瑟窗 Triang 三角窗 b=fir1(n,Wn,'ftype',Window)可利用ftype 和Window 参数,设计各种加窗的滤波器。 由fir1函数设计的FIR 滤波器的群延迟为n/2。 例如: n=32;wn=1/4;window=boxcar(n+1) b=fir1(n,wn,window)

IIR数字滤波器在TI DSP上的实现

IIR数字滤波器在TI DSP上的实现 数字滤波器是对数字信号进行滤波处理以得到期望的响应特性的离散时间系统。在众多通用数字信号处理器中,美国TI公司生产的TMS320系列单片DSP 在国际上占有较大市场,这种单片DSP把高速控制器的灵活性和阵列处理器的数值计算能力结合起来。 一、IIR数字滤波器结构原理 本文IIR数字滤波器的设计方法:借助于模拟滤波器的设计方法设计出模拟滤波器,利用冲激响应不变法或双线性变换法转换成数字滤波器,然后用硬件或软件实现。 从IIR数字滤波器的实现来看,有直接型、级联型、并联型等基本网络结构。其中直接Ⅱ型仅需要N级延迟单元,且可作为级联型和并联型结构中的基本单元。本文以二阶IIR滤波器的直接实现形式表示。其系统函数H(z)可以表示为: 在编程时,可以将变量和系数都存在DARAM中,采用循环缓冲区方式寻址,共需开辟4个缓冲区,用来存放变量和系数。 二阶IIR滤波器的直接IIR 型差分方程为: (3) 二、IIR数字滤波器在C54x上的设计与实现 1.IIR数字滤波器在TMS320VC5409 DSP上的实现流程 1.1根据指标确定滤波器的类型,设计出滤波器的参数; 1.2根据DSP的特点(字长、精度等)对参数进行取舍、量化,仿真; 1.3根据仿真结果对滤波器的结构、参数再次进行调整,直到满足要求为止; 1.4在DSP上用语言实现滤波器功能。 2.IIR数字滤波器在TMS320VC5409 DSP上的实现算法 从理论上说,可以用高阶IIR数字滤波器实现良好的滤波效果[2]。但由于DSP本身有限字长和精度的因素,加上IIR滤波器在结构上存在反馈回路,是递归型的,再者高阶滤波器参数的动态范围很大。这样一来造成两个后果:结果溢出和误差增大。解决此问题的有效方法是把高阶IIR数字滤波器简化成几个2阶

FIR数字滤波器设计与使用

实验报告 课程名称:数字信号处理指导老师:刘英成绩:_________________实验名称: FIR数字滤波器设计与使用同组学生姓名:__________ 一、实验目的和要求 设计和应用FIR低通滤波器。掌握FIR数字滤波器的窗函数设计法,了解设计参数(窗型、窗长)的影响。 二、实验内容和步骤 编写MATLAB程序,完成以下工作。 2-1 设计两个FIR低通滤波器,截止频率 C =0.5。 (1)用矩形窗,窗长N=41。得出第一个滤波器的单位抽样响应序列h 1(n)。记下h 1 (n) 的各个抽样值,显示h 1 (n)的图形(用stem(.))。求出该滤波器的频率响应(的N 个抽样)H 1(k),显示|H 1 (k)|的图形(用plot(.))。 (2)用汉明窗,窗长N=41。得出第二个滤波器的单位抽样响应序列h 2(n)。记下h 2 (n) 的各个抽样值,显示h 2(n)的图形。求出滤波器的频率响应H 2 (k),显示|H 2 (k)|的 图形。 (3)由图形,比较h 1(n)与h 2 (n)的差异,|H 1 (k)|与|H 2 (k)|的差异。 2-2 产生长度为200点、均值为零的随机信号序列x(n)(用rand(1,200)0.5)。显示x(n)。 求出并显示其幅度谱|X(k)|,观察特征。 2-3 滤波 (1)将x(n)作为输入,经过第一个滤波器后的输出序列记为y 1(n),其幅度谱记为|Y 1 (k)|。 显示|X(k)|与|Y 1 (k)|,讨论滤波前后信号的频谱特征。 (2)将x(n)作为输入,经过第二个滤波器后的输出序列记为y 2(n),其幅度谱记为|Y 2 (k)|。 比较|Y 1(k)|与|Y 2 (k)|的图形,讨论不同的窗函数设计出的滤波器的滤波效果。 2-4 设计第三个FIR低通滤波器,截止频率 C =0.5。用矩形窗,窗长N=127。用它对x(n)进行滤波。显示输出信号y

数字滤波器的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)逼近

数字滤波器的DSP实现

摘要 当前我们正处于数字化时代,数字信号处理技术受到了人们的广泛关注,其理论及算法随着计算机技术和微电子技术的发展得到了飞速的发展,被广泛应用于语音图象处理、数字通信、谱分析、模式识别、自动控制等领域。数字滤波器是数字信号处理中最重要的组成部分之一,几乎出现在所有的数字信号处理系统中。数字滤波器是指完成信号滤波处理的功能,用有限精度算法实现的离散时间线性非时变系统,其输入是一组(由模拟信号取样和量化的)数字量,其输出是经过变换的另一组数字量。相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应特性可做成非常接近于理想的特性,且精度可以达到很高,容易集成等,这些优势决定了数字滤波器的应用越来越广泛。同时DSP(数字信号处理器)的出现和FPGA的迅速发展也促进了数字滤波器的发展,并为数字滤波器的硬件实现提供了更多的选择。 本论文的主要研究了数字滤波器的基本理论及其算法。基于TI公司的数字信号处理器TMS320VC5509设计了一款稳定度高,低功耗的数字滤波器系统,并完成了软硬调试工作。主要工作如下: (1)研究了数字滤波器的基本理论,以及数字滤波器的实现方法。通过学习识字滤波器 的结构、数字滤波器的设计理论,掌握了各种数字滤波器的原理和特性。为实现数字滤波器奠定了理论基础。 (2)研究分析了如何利用MATLAB仿真软件来设计出符合各种要求的数字滤波器。并采用 了相关的函数设计了几款常用的数字滤波器,并得到了滤波器的相关系数,为利用DSP实现数字滤波做好了一些前期的工作。 (3)根据TI公司5000系列数字信号处理器的基本结构和特征,充分利用其片上资源t结 合MATLAB软件的仿真,用软件实现高性能稳定的数字滤波器。 关键字:数字滤波器,DSP,IIR(无限长单位脉冲响应),FIR(有限长单位脉冲响应)

FIR数字滤波器设计与软件实现(精)讲解学习

实验二:FIR 数字滤波器设计与软件实现 一、实验指导 1.实验目的 (1掌握用窗函数法设计 FIR 数字滤波器的原理和方法。 (2掌握用等波纹最佳逼近法设计 FIR 数字滤波器的原理和方法。 (3掌握 FIR 滤波器的快速卷积实现原理。 (4学会调用 MA TLAB 函数设计与实现 FIR 滤波器。 2. 实验内容及步骤 (1认真复习第七章中用窗函数法和等波纹最佳逼近法设计 FIR 数字滤波器的原理; (2调用信号产生函数 xtg 产生具有加性噪声的信号 xt ,并自动显示 xt 及其频谱,如图 1所示;

图 1 具有加性噪声的信号 x(t及其频谱如图 (3请设计低通滤波器,从高频噪声中提取 xt 中的单频调幅信号,要求信号幅频失真小于 0.1dB ,将噪声频谱衰减 60dB 。先观察 xt 的频谱,确定滤波器指标参数。 (4根据滤波器指标选择合适的窗函数,计算窗函数的长度 N ,调用 MATLAB 函数 fir1设计一个 FIR 低通滤波器。并编写程序,调用 MATLAB 快速卷积函数 fftfilt 实现对 xt 的滤波。绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。 (5 重复 (3 , 滤波器指标不变, 但改用等波纹最佳逼近法, 调用MA TLAB 函数 remezord 和 remez 设计 FIR 数字滤波器。并比较两种设计方法设计的滤波器阶数。 提示:○ 1MA TLAB 函数 fir1的功能及其调用格式请查阅教材; ○ 2采样频率 Fs=1000Hz,采样周期 T=1/Fs;

○ 3根据图 1(b和实验要求,可选择滤波器指标参数:通带截止频率 fp=120Hz,阻带截 至频率 fs=150Hz, 换算成数字频率, 通带截止频率 p 20.24 p f ωπ =T=π, 通带最大衰为 0.1dB , 阻带截至频率 s 20.3 s f ωπ =T=π,阻带最小衰为 60dB 。 3、实验程序框图如图 2所示,供读者参考。 图 2 实验程序框图 4.信号产生函数 xtg 程序清单(见教材 二、滤波器参数及实验程序清单 1、滤波器参数选取 根据实验指导的提示③选择滤波器指标参数: 通带截止频率 fp=120Hz,阻带截至频率 fs=150Hz。代入采样频率 Fs=1000Hz,换算成 数字频率,通带截止频率 p 20.24 p f

IIR数字滤波器的DSP实现

湖南科技大学 信息与电气工程学院 《课程设计报告》 题目:IIR数字滤波器的DSP实现 专业:电子信息工程 班级:电子二班 姓名:高二奎 学号: 1104030205 指导教师:尹艳群 2015年 1月 8 日

信息与电气工程学院 课程设计任务书 2014—2015学年第一学期 专业:电子信息工程班级:电子二班学号: 1104030205姓名:高二奎 课程设计名称: DSP原理及应用 设计题目: IIR数字滤波器的DSP实现 完成期限:自 2015 年 1 月 1 日至 2015 年 1 月 8 日共 1 周 设计依据、要求及主要内容(可另加附页): 1、设计目的:通过课程设计,使学生综合运用DSP技术课程和其他有关先修课程的理论和生产实际知识去分析和解决具体问题的能力得到提高,并使其所学知识得到进一步巩固、深化和发展。通过课程设计初步培养学生对工程设计的独立工作能力,学习设计的一般方法。通过课程设计树立正确的设计思想,提高学生分析问题、解决问题的能力。通过课程设计训练学生的设计基本技能,如计算、绘图、查阅设计资料和手册,熟悉标准与规范等。 2、要求: 1.熟悉DSP处理器及其结构性能,掌握DSP芯片配套开发工具的使用方法。2.按要求设计出硬件电路。 3.画出硬件连接原理图,并对硬件工作原理进行说明。 4.给出软件流程图及编写程序,每一条指令的后面附上相应的注释。 5.进行软、硬件调试,检查是否达到相关的功能。 6.写出调试方法。 7.设计报告结尾附上心得体会。 3、主要内容:熟悉5410DSP的MCBSP的使用,了解AD50的结构,掌握AD50各寄存器的意义及其设置,掌握AD50与DSP的接口,AD50的通讯格式及AD50的DA实验。 指导教师(签字): 批准日期:年月日

FIR数字滤波器设计及MATLAB使用要点

数字信号处理课程设计 《数字信号处理》 课程设计报告 FIR数字滤波器设计及MATLAB实现 专业:通信工程 班级:通信1101班 组次:第9组 姓名及学号: 姓名及学号:

目录 一、设计目的 (3) 二、设计任务 (3) 三、设计原理 (3) 3.1窗函数法 (3) 3.2频率采样法 (4) 3.3最优化设计 (5) 3.3.1等波纹切比雪夫逼近准则 (5) 3.3.2仿真函数 (6) 四、设计过程 (7) 五、收获与体会 (13) 参考文献 (13)

FIR数字滤波器设计及MATLAB实现 一、设计目的 FIR滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基 本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性, 同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR 滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。滤波器设 计是根据给定滤波器的频率特性,求得满足该特性的传输函数。 二、设计任务 FIR滤波器设计的任务是选择有限长度的() H e满足一定 h n,使传输函数()jw 的幅度特性和线性相位要求。由于FIR滤波器很容易实现严格的线性相位,所以FIR 数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应。 设计过程一般包括以下三个基本问题: (1)根据实际要求确定数字滤波器性能指标; (2)用一个因果稳定的系统函数去逼近这个理想性能指标; (3)用一个有限精度的运算去实现这个传输函数。 三、设计原理 FIR滤波器设计的任务是选择有限长度的() H e满足一定 h n,使传输函数()jw 的幅度特性和线性相位要求。由于FIR滤波器很容易实现严格的线性相位,所以FIR数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应。 设计过程一般包括以下三个基本问题: (1)根据实际要求确定数字滤波器性能指标; (2)用一个因果稳定的系统函数去逼近这个理想性能指标; (3)用一个有限精度的运算去实现这个传输函数。 3.1窗函数法 设计FIR数字滤波器的最简单的方法是窗函数法,通常也称之为傅立叶级数法。FIR数字滤波器的设计首先给出要求的理想滤波器的频率响应()jw H e,设计 d

基于DSP的数字滤波器的设计与仿真

2.1系统功能介绍 一个实际的应用系统中,总存在各种干扰。数字滤波器在语音信号处理、信号频谱估计、信号去噪、无线通信中的数字变频以及图像信号等各种信号处理中都有广泛的应用,数字滤波器也是使用最为广泛的信号处理算法之一。 在本设计中,使用MATLAB模拟产生合成信号,然后利用CCS进行滤波。设定模拟信号的采样频率为48000Hz,。设计一个FIR低通滤波器,其参数为:滤波器名称:FIR低通滤波器 采样频率:Fs=48000Hz 通带截止频率:15000Hz 阻带截止频率:16000Hz 通带最大衰减:0.1dB 阻带最少衰减:80dB 滤波器系数:由MATLAB根据前述参数求得。 2.2 总体设计方案流程图 图1 总体设计方案

主要内容和步骤 3.1 滤波器原理 对于一个FIR 滤波器系统,它的冲击响应总是又限长的,其系统函数可记为: ()()10 N n n H z h n z --==∑ 其中1N -是FIR 的滤波器的阶数,n z -为延时结,()h n 为端口信号函数。 最基本的FIR 滤波器可用下式表示: ()()()10 N k y n h k x n k -==-∑ 其中()x n k -输入采样序列,()h k 是滤波器系数,N 是滤波器的阶数()Y n 表示滤波器的输出序列,也可以用卷积来表示输出序列()y n 与()x n 、()h n 的关系,如下: ()()()y n x n h n =* 3.2 操作步骤 (1)打开FDATOOL ,根据滤波要求设置滤波器类型、通带截止频率、指定阶数、采样频率等。指定完设计参数后单击按钮Design Filter ,生成滤波器系数。 (2)把生成的滤波器系数传到目标DSP 。选择菜单Targets->Export to Code Composer Studio(tm)IDE ,打开Export to C Header File 对话框,选择C header file ,指定变量名(滤波器阶数和系数向量),输出数据类型可选浮点型或32 b ,16 b 整型等,根据自己安装选择目标板板号和处理器号,单击OK ,保存该头文件,需指定文件名(filtercoeff .h)和路径(保存在c :\ti\myprojects\fir 工程中)。 (3)修改CCS 汇编程序,删掉数据前的所有文字,在开头加上.data ,第二行加coeff .word ,在每行的前面加上.word ,比且把每行的最后的逗号去掉。 (4)编译汇编程序,如果有错误,按错误进行修改;没错误,则往下执行。 (5)加载初始化DATA 数据。运行程序,查看输入输出波形,修改相应参数进行调试

FIR数字滤波器设计与实现

FIR 数字滤波器设计与实现 一.摘要:数字滤波器是一种具有频率选择性的离散线性系统,在信号数字处理中有着广泛的应 用。其中FIR 滤波器是一种常用的滤波器,它在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性,在语音分析、图像处理、雷达监测等对信号相位要求高的领域有着广泛的应用,能实现IIR 滤波器不能实现的许多功能。 二.关键词:FIR 窗函数系统函数MATLAB 三.内容提要: 数字滤波器的功能就是把输入序列通过一定的运算变换成输出序列,因此数字滤波器的结构系 统中就必须包括一定数量和性能的运算器件和运算单元,而运算器件和运算单元的配置必须由数字滤波器的结构特点和性能特点来决定,因此在进行FIR 数字滤波器的设计之前,有必要介绍和总结FIR 数字滤波器的基本结构和相关特性(包括频响曲线(幅度和相位),单位冲激响应等),在介绍完其基本结构和相关特性后,就进行FIR 数字滤波器的设计和实现。 (一)FIR 滤波器的基本结构 在讨论任何一种滤波器时,都要着重分析其系统函数,FIR 滤波器的系统函数为: n N n z n h z H ∑-==1 0)()(。从该系统函数可看出,FIR 滤波器有以下特点: 1)系统的单位冲激响应h(n)在有限个n 值处不为零; 2)系统函数H(z)在|z|>0处收敛,极点全部在z=0处(稳定系统); 3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包 含有反馈的递归部分。 1.FIR 滤波器实现的基本结构有: 1) 横截型(卷积型、直接型) a.一般FIR 滤波器的横截型(直接型、卷积型)结构: 若给定差分方程为: 。则可以直接由差分方程得出FIR 滤波器结构如 下图所示: 这就是FIR 滤波器的横截型结构,又称直接型或卷积型结构。 b .线性相位FIR 滤波器的横截型结构

基于DSP的数字滤波器的设计

- - -.. 目录 摘要错误!未定义书签。 第1章课程设计的目的和要求0 第2章系统功能介绍及总体设计方案0 第3章主要内容和步骤1 3.1滤波器原理1 3.2操作步骤2 第4章详细设计2 第5章实验过程3 5.1汇编语言实验步骤与内容3 5.2实验过程中出现的错误及解决的办法6 5.3CCS程序运行后的各种输出结果6 第6章结论与体会8 参考文献9 附件:源程序清单10 DSP实现FIR滤波的关键技术10 汇编程序清单12 第1章课程设计的目的和要求 通过课程设计,加深对DSP芯片TMS320C54x的结构、工作原理的理解,获得DSP应用技术的实际训练,掌握设计较复杂DSP系统的基本方法。通过使用汇编语言编写具有完整功能的图形处理程序或信息系统,使学生加深对所学知识的理解,进一步巩固汇编语言讲法规则。学会编制结构清晰、风格良好、数据结构适当的汇编语言程序,从而具备解决综合性实际问题的能力。 第2章系统功能介绍及总体设计方案 2.1系统功能介绍 一个实际的应用系统中,总存在各种干扰。数字滤波器在语音信号处理、信号频谱估计、信号去噪、无线通信中的数字变频以及图像信号等各种信号处理中都有

广泛的应用,数字滤波器也是使用最为广泛的信号处理算法之一。 在本设计中,使用MATLAB 模拟产生合成信号,然后利用CCS 进行滤波。设定模拟信号的采样频率为400000Hz ,。设计一个FIR 低通滤波器,其参数为: 滤波器名称: FIR 低通滤波器 采样频率: Fs=40000Hz 通带/阻带截止频率: 4000Hz ~4500Hz 通带最大衰减: 0.5dB 阻带最少衰减:50dB 滤波器级数: N=154 滤波器系数: 由MATLAB 根据前述参数求得。 2.2 总体设计方案流程图 图1 总体设计方案 第3章 主要内容和步骤 3.1 滤波器原理 对于一个FIR 滤波器系统,它的冲击响应总是又限长的,其系统函数可记为: ()()1 0N n n H z h n z --==∑ 其中1N -是FIR 的滤波器的阶数,n z -为延时结,()h n 为端口信号函数。

FIR数字滤波器设计与软件实现

实验二:FIR数字滤波器设计与软件实现 一、实验指导 1.实验目的 (1)掌握用窗函数法设计FIR数字滤波器的原理和方法。 (2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。(3)掌握FIR滤波器的快速卷积实现原理。 (4)学会调用MATLAB函数设计与实现FIR滤波器。 2.实验内容及步骤 (1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理; (2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图1所示; 图1 具有加性噪声的信号x(t)及其频谱如图 (3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于0.1dB,将噪声频谱衰减60dB。先观察xt的频谱,确定滤波器指标参数。

(4)根据滤波器指标选择合适的窗函数,计算窗函数的长度N,调用MATLAB函数fir1设计一个FIR低通滤波器。并编写程序,调用MATLAB快速卷积函数fftfilt实现对xt的滤波。绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。(4)重复(3),滤波器指标不变,但改用等波纹最佳逼近法,调用MATLAB函数remezord和remez设计FIR数字滤波器。并比较两种设计方法设计的滤波器阶数。 提示:○1MATLAB函数fir1的功能及其调用格式请查阅教材; ○2采样频率Fs=1000Hz,采样周期T=1/Fs; ○3根据图1(b)和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz,阻带截至频率fs=150Hz,换算成数字频率,通带截止 频率 p 20.24 p f ωπ =T=π,通带最大衰为0.1dB,阻带截至频率 s 20.3 s f ωπ =T=π,阻带最小衰为60dB。 ○4实验程序框图如图2所示,供读者参考。

利用DSP实现数字滤波器

目录 一.绪论 (1) 1.1设计背景 (1) 1.2设计要求 (1) 1.3设计思路简介 (1) 二.系统开发平台与环境 (1) 1.1CCS开发环境 (1) 三. FIR滤波器设计过程 (2) 3.1FIR滤波器基本理论 . (2) 3.2FIR滤波器的MATLAB实现 (4) 四FIR滤波器的DSP实现 (10) 五.CCS仿真图及结果 (12) 六.总结 (14) 七.参考文献 (15)

一. 绪论 1.1设计背景 在信号处理中,滤波占有十分重要的地位。数字滤波是数字信号处理的基本方法。数字滤波与模拟滤波相比有很多优点,它除了可避免模拟滤波器固有的电压漂移、温度漂移和噪声等问题外,还能满足滤波器对幅度和相位的严格要求。低通有限冲激响应滤波器(低通FIR滤波器)有其独特的优点,因为FIR系统只有零点,因此,系统总是稳定的,而且容易实现线性相位和允许实现多通道滤波器。 DSP(数字信号处理器)与一般的微处理器相比有很大的区别,它所特有的系统结构、指令集合、数据流程方式为解决复杂的数字信号处理问题提供了便利,本文选用TMS320C54X作为DSP处理芯片,通过对其编程来实现FIR滤波器。 对数字滤波器而言,从实现方法上,有FIR滤波器和无限冲激响应(IIR)滤波器之分。由于FIR滤波器只有零点,因此这一类系统不像IIR系统那样易取得比较好的通带与阻带衰减特性。但是FIR系统有自己突出的优点:①系统总是稳定的;②易实现线性相位;③允许设计多通带(阻带)滤波器。其中后两项是IIR系统不易实现的。 1.2设计要求 利用C语言在CCS环境中编写一个FIR滤波器程序,并能利用已设计好的滤波器对常用信号进行滤波处理。 1.3设计思路简介 在TMS320C54x系统开发环境CCS(Code Composer Studio)下对FIR 滤波器的DSP实现原理进行讨论。利用C语言设计相应的滤波器,通过实验仿真,从输入信号和输出信号的时域和频域曲线可看出在DSP上实现的FIR滤波器能完成预定的滤波任务。 二.系统开发平台与环境 1.1 CCS开发环境

FIR数字滤波器课程设计报告

吉林建筑大学 电气与电子信息工程学院 数字信号处理课程设计报告 设计题目:FIR数字滤波器的设计 专业班级: 学生姓名: 学号: 指导教师: 设计时间:

目录 一、设计目的 (3) 二、设计内容 (3) 三、设计原理 (3) 3.1 数字低通滤波器的设计原理 (3) 3.1.1 数字滤波器的定义和分类 (3) 3.1.2 数字滤波器的优点 (3) 3.1.3 FIR滤波器基本原理 (4) 3.2变换方法的原理 (7) 四、设计步骤 (8) 五、数字低通滤波器MATLAB编程及幅频特性曲线 (9) 5.1 MATLAB语言编程 (9) 5.2 幅频特性曲线 (10) 六、总结 (11) 七、参考文献 (13)

一、设计目的 课程设计是理论学习的延伸,是掌握所学知识的一种重要手段,对于贯彻理论联系实际、提高学习质量、塑造自身能力等于有特殊作用。本次课程设计一方面通过MATLAB 仿真设计内容,使我们加深对理论知识的理解,同时增强其逻辑思维能力,另一方面对课堂所学理论知识作一个总结和补充 二、设计内容 (1)设计一线性相位FIR 数字低通滤波器,截止频率 ,过渡带宽度 , 阻带衰减dB A s 30>。 (2)设计一线性相位FIR 数字低通滤波器,截止频率 ,过渡带宽度 ,阻带衰减dB A s 50>。 三、设计原理 3.1数字低通滤波器的设计原理 3.1.1 数字滤波器的定义和分类 数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的离散时间线性非时变系统,其输入是一组数字量,其输出是经过变换的另一组数字量。因此,数字滤波器本身既可以是用数字硬件装配成的一台完成给定运算的专用的数字计算机,也可以将所需要的运算编成程序,让通用计算机来执行。 从数字滤波器的单位冲击响应来看,可以分为两大类:有限冲击响应(FIR)数字滤波器和无限冲击响应(IIR)数字滤波器。滤波器按功能上分可以分为低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器(BSF) [4]。 3.1.2 数字滤波器的优点 相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应特性可做成非常接近于理想的特性,且精度可以达到很高,容易集成等,这些优势决定了数字滤波器的应用将会越来越广泛。同时DSP 处理器(Digital Signal Processor)的出现和FPGA(FieldProgrammable Gate Array)的迅速发展也促进了数字滤波器的发展,并为数字滤波器的硬件实现提供了更多的选择。 数字滤波器具有以下显著优点: 精度高:模拟电路中元件精度很难达到10-3,以上,而数字系统17位字长就可以达到10-5精度。因此在一些精度要求很高的滤波系统中,就必须采用数字滤0.2c ωπ=0.4ωπ?<0.2c ωπ=0.4ωπ?<

基于DSP的FIR数字滤波器设计实验汇编语言

基于DSP 的FIR 数字滤波器 (设计实验) 一、实验目的 1.了解FIR (Finite Impulse Response 有限冲激响应)滤波器的原理及使用方法; 2.了解使用MATLAT 语言设计FIR 滤波器的方法; 3.了解DSP 对FIR 滤波器的设计及编程方法; 4.熟悉在CCS 环境下对FIR 滤波器的调试方法; 二、实验原理 数字滤波是DSP 的最基本应用,利用MAC (乘、累加)指令和循环寻址可以方便地完成滤波运算。两种常用的数字滤波器:FIR (有限冲激响应)滤波器和IIR (无限冲激响应)滤波器的DSP 实现。 设FIR 滤波器的系数为h(0),h(1), ...,h(N-1),X(n)表示滤波器在n 时刻的输入, 则n 时刻的输出为: FIR 数字滤波器的结构如图3.1所示。 图3.1 FIR 数字滤波器的结构图 1、线性缓冲区法 又称延迟线法。其方法是:对于n=N 的FIR 滤波器,在数据存储器中开辟一个N 单元的缓冲区,存放最新的N 个样本;滤波时从最老的样本开始,每读一个样本后,将此样本向下移位;读完最后一个样本后,输入最新样本至缓冲区的顶部。以上过程,可以用N=6的线性缓冲区示意图来说明,如图3-2所示 图3-2 N=6的线性缓冲区示意图 2、循环缓冲区法 图3-3说明了使用循环寻址实现FIR 滤波器的方法。对于N 级FIR 滤波器,在数据存储区开辟一个称为滑窗的具有N 个单元的缓冲区,滑窗中存放最新的N 个输入样本值。每次输入新的样本时,新的样本将改写滑窗中最老的数据,其他数据则不需要移动。 1 ()()()(0)()(1)(1)(1)[(1)]N i y n h i x n i h x n h x n h N x n N -==-=+-+---∑ Z -1Z -1Z -1h(0)h(1)h(2)h(N-2) h(N-1)y(n)

线性相位FIR数字滤波器设计

一、设计目的 1.掌握窗函数法设计FIR滤波器的原理和方法,观察用几种常用窗函数设计的 FIR数字滤波器技术指标; 2.掌握FIR滤波器的线性相位特性; 3.了解各种窗函数对滤波特性的影响。 二、设计原理 如果所希望的滤波器的理想频率响应函数为H d(e j J,则其对应的单位脉冲 1 响应为h d(n)=——f H (e恋)e j^dB,用窗函数W N(n)将h d(n)截断,并进行加权处 2兀7 理,得到实际滤波器的单位脉冲响应h(n)=h d(n)w N(n),其频率响应函数为 N _! H (e j ^ h(n)e」n。如果要求线性相位特性,贝U h(n)还必须满足 nM h(n)= h(N-1- n)。可根据具体情况选择h(n)的长度及对称性。 可以调用MATLAB工具箱函数firl实现本实验所要求的线性相位FIR-DF 的设计,调用一维快速傅立叶变换函数fft来计算滤波器的频率响应函数。 fir1是用窗函数法设计线性相位FIRDF hn=fir1(N, wc, ‘ ftype ' , window) fir1实现线性相位FIR滤波器的标准窗函数法设计。 hn=fir1(N,wc)可得到6 dB截止频率为wc的N阶(单位脉冲响应h(n)长度为 N+1)FIR低通滤波器,默认(缺省参数windows)选用hammiing窗。其单位脉冲响应 h(n)满足线性相位条件:h(n)=h(N-1-n) 其中wc为对n归一化的数字频率,OW wc< 1。 当wc= [wc1, wc2]时,得到的是带通滤波器。 hn=fir1(N,wc, ' ftype ') 当ftype=high时,设计高通FIR 当ftype=stop时,设计带阻FIR滤波器。 应当注意,在设计高通和带阻滤波器时,阶数N只能取偶数(h(n)长度N+1 为奇数)。不过,当用户将N设置为奇数时,fir1会自动对N加1。 hn=fir1(N,wc,window)可以指定窗函数向量window。如果缺省window参数,则 fir1默认为hamming窗。可用的其他窗函数有Boxcar, Hanning, Bartlett, Blackman, Kaiser和Chebwin 窗。例如:

(完整版)基于DSP的FIR数字低通滤波器设计

电气控制技术应用设计 题目基于DSP的FIR数 字低通滤波器设计 二级学院电子信息与自动化学院 专业电气工程及其自动化 班级 113070404 学生姓名黄鸿资学号 11307991032 学生姓名姜天宇学号 11307991015 指导教师蒋东荣 时间:2016年8月29日至2016年9月9日 考核项目平时成绩20分设计35分报告15分答辩30分得分 总分考核等级教师签名

一绪论 (3) (一)课题设计的目的 (3) (二)课题内容 (3) (三)设计方法 (3) (四)课程设计的意义 (4) 二FIR滤波器基本理论 (4) (一)FIR滤波器的特点 (4) (二)FIR滤波器的基本结构 (4) (三)Chebyshev逼近法 (5) 三用MATLAB辅助DSP设计FIR滤波器 (5) (一)利用fir函数设计FIR滤波器并在在MATLAB环境仿真 (6) (二) Matlab中自带工具箱FDATool快速的实现滤波器的设计 (10) 1.确定一个低通滤波器指标 (10) 2.打开MATLAB的FDATool (10) 3.选择Design Filter (11) 4.滤波器分析 (11) 5.导出滤波器系数 (13) (三)滤波器设计总结 (13) (四)DSP所需文件配置 (14) 四基于DSP的FIR滤波器实现 (14) (一)DSP中滤波器的算法实现 (15) 1.线性缓冲区法 (15) 2.循环缓冲区法 (15) (二)C语言实现FIR (15) (三)CSS仿真调试 (17) (四)滤波器的仿真测试 (18) 五 DSP数字滤波器与硬件低通滤波器对比 (21) (一)二阶有源低通滤波电路的构建 (21) (二)二阶低通滤波器参数计算 (22) (三)在protues环境下的仿真测试 (22) (四)实物硬件连接以及测试结果 (22) (五)利用FilterPro的低通滤波器设计 (23) 1 选择filter类型 (24) 2 滤波器参数设定 (24) 3 滤波器的算法选择 (25) 4 滤波器的拓扑结构选择 (25) (六) DSP数字滤波器与硬件电路滤波器对比总结 (26) 六课程设计总结 (26) 参考文献 (28)

基于matlab的FIR数字滤波器设计(带通,窗函数法)

数字信号处理 课程设计报告 设计名称:基于matlab的FIR数字滤波器设计 彪

一、课程设计的目的 1、通过课程设计把自己在大学中所学的知识应用到实践当中。 2、深入了解利用Matlab设计FIR数字滤波器的基本方法。 3、在课程设计的过程中掌握程序编译及软件设计的基本方法。 4、提高自己对于新知识的学习能力及进行实际操作的能力。 5、锻炼自己通过网络及各种资料解决实际问题的能力。 二、主要设计内容 利用窗函数法设计FIR滤波器,绘制出滤波器的特性图。利用所设计的滤波器对多个频带叠加的正弦信号进行处理,对比滤波前后的信号时域和频域图,验证滤波器的效果。 三、设计原理 FIR 滤波器具有严格的相位特性,对于信号处理和数据传输是很重要的。 目前 FIR滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。常用的是窗函数法和切比雪夫等波纹逼近的最优化设计方法。本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求高的时候是比较灵活方便的。 如果 FIR 滤波器的 h(n)为实数, 而且满足以下任意条件,滤波器就具有准确的线性相位: 第一种:偶对称,h(n)=h(N-1-n),φ (ω)=-(N-1)ω/2 第二种:奇对称,h(n)=-h(N-1-n), φ(ω)=-(N-1)ω/2+pi/2 对称中心在n=(N-1)/2处 四、设计步骤 1.设计滤波器 2.所设计的滤波器对多个频带叠加的正弦信号进行处理 3.比较滤波前后信号的波形及频谱 五、用窗函数设FIR 滤波器的基本方法 基本思路:从时域出发设计 h(n)逼近理想 hd(n)。设理想滤波器的单位响应在时域表达为hd(n),则Hd(n) 一般是无限长的,且是非因果的,不能

FIR数字滤波器设计的综述

FIR数字滤波器设计方法的综述 摘要:在数字信号处理中,数字滤波器是一种被广泛使用的信号处理部件,可改变信号中所含频率分量的相对比例或滤除某些频率分量,使其达到所需的效果,具有举足轻重的作用。在数字信号处理系统中,FIR(有限冲激响应)数字滤波器是一类结构简单的最基本的原件,具有严格的相频特性,能保证信号在传输过程中不会有明显的失真,是相当稳定的系统,其确保线性相位的功能进一步使它得到了广泛的应用。本综述分析了FIR数字滤波器的特征和设计的基本原理,得到了满足系统要求的数字滤波器的设计方法。 关键词:数字信号处理,FIR数字滤波器,设计方法

1引言 1.1背景 现在几乎在所有的工程技术领域中都会涉及到信号的处理问题,其信号表现形式有电、磁、机械以及热、光、声等。数字滤波技术可以在放大信号的同时去除噪声和干扰,而在模拟信号号和噪声同时被放大,数字信号还可以不带误差地被存储和恢复、发送和接收、处理和操纵。许多复杂的系统可以用高精度、大信噪比和可重构的数字技术来实现。目前,数字信号处理已经发展成为一项成熟的技术,并且在许多应用领域逐步代替了传统的模拟信号处理系统,如通讯、故障检测、语音、图像、自动化仪器、航空航天、生物医学工程、雷达等。 数字信号处理中一个非常重要且应用普遍的技术就是数字滤波。所谓数字滤波,是指其输入、输出均为数字信号,通过一定的运算关系改变输入信号所含的频率成分的相对比例或滤除某些频率成分,达到提取和加强信号中的有用成份,消弱干扰成份的目的。数字滤波作为数字信号处理的重要组成部分有着十分广泛的应用前景,可作为应用系统对信号的前置处

理。数字滤波器无论是在理论研究上还是在如通讯、雷达、图象处理、数字音频等实际应用上都有着很好的技术前景和巨大的实用价值。 1.2现状与前沿 在近代电信设备和各类控制系统中,滤波器应用极为广泛。在所有的电子部件中,使用最多,技术最为复杂的即为滤波器。滤波器的优劣直接决定产品的优劣,所以,对滤波器的研究和生产历来为各国所重视。 目前,国外有许多院校和科研机构在研究基于FPGA的DSP应用,比较突出的有Denmark 大学的研究小组正在从事FPGA实现数字滤波器的研究。而我国在DSP技术起步较早,产品的研究开发成绩斐然,基本上与国外同步发展。 随着电子工业的发展,对滤波器的性能要求越来越高。我国电子产品要想实现大规模集成,滤波器集成化仍然是个重要课题。总之,滤波器的发展始终是顺应电子系统的发展趋势的。如何进一步实现滤波器的小型化、集成化、高效化将是今后很长一段时间不变的研究和发展主题。 2 FIR数字滤波器的原理 2.1 FIR数字滤波器的结构特点 如果滤波器的输人和输出都是离散时间信号,则该滤波器的冲激响应也必然是离散的,这种滤波器称之为数字滤波器。该滤波器通过对时域中离散的采样数据作差分运算实现滤波。与IIR滤波器相比,FIR(有限长单位冲激响应)的实现是非递归的,总是稳定的。FIR数 字滤波器的特征是冲激响应只能延续一定时间并且很容易实现严格的线性相位,使信号经过处理后不产生相位失真、舍入误差小、稳定等优点,能够设计具有优良特性的多带通滤波器、微分器和希尔伯特变换器。FIR数字滤波器有以下几个特点: (1)系统的单位冲激响应h(n)在有限个值处不为零; (2)系统函数H(z)在处收敛,在处只有零点,有限z平面只有零点,而全部极点都在z=0处; (3)结构上主要是非递归结构。

相关文档
最新文档