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

合集下载

基于DSP的FIR 滤波器的设计

基于DSP的FIR 滤波器的设计

1 前言本课程是电子信息工程专业的专业基础课,目的为通过对课程设计任务的完成,使学生理解课程教学的理论内容,并且能够掌握和熟悉DSP的开发流程和基本的编程方法。

FIR滤波器具有严格的线性相位特性,由于图像处理、数据传输等以波形携带的信息系统。

在数字信号处理中,滤波占有极其重要的地位。

数字滤波是数字信号处理的一个基本方法。

一个DSP芯片执行数字滤波算法的能力,反应了这种芯片的功能大小。

本文介绍了数字滤波器的工作原理,给出了采用窗函数法设计FIR,并利用MATLAB软件进行辅助设计,同时使用CCS应用软件来对一段音频信号进行低通滤波的仿真与调试.从而实现DSP数字低通滤波的设计方法。

FIR数字滤波器广泛地应用于数字信号处理领域,本文对FIR滤波器的工件原理和设计方法进行了简单的介绍。

文中采用窗函数法设计FIR数字滤波器,给出了TMS320VC5402的编程语句及其仿真波形。

2 FIR滤波器基本原理一个截止频率为ωc(rad/s)[1]的理想数字低通滤波器,其表达式是:这个滤波器在物理上是不可实现的,因为冲激响应具有无限性和因果性。

为了产生有限长度的冲激响应函数过截短保留冲激响应,可以加窗函数将其截短,通过截短保留冲激响应的中心部分,就可以获得一个线性相位的FIR滤波器。

例如,使用一个简单的矩形窗设计一个长度N=127,截止频率ωc=π/2的低通滤波器,冲激响应h(n)可表示为:一般来说,FIR数字滤波器输出y(n)的Z变换形式Y(z)与输入x(n)的Z 变换形式之间的关系如下:实现结构如图1所示。

从上面的Z变换和结构图可以很容易得出FIR滤波器的差分方程表示形式。

在实际的FIR滤波器的设计中,一般采用计算机辅助设计。

Matlab是一套功能强大的适应于科学工程计算的可视化高性能语言,他提供了2种窗函数方法设计FIR 滤波器:一种是标准通带滤波器的设计FIR1;一种是多带FIR滤波器的设计FIR2。

函数FIR1只能设计标准的低通、高通、带通和带阻线性相位FIR滤波器。

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

基于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所示。

1、线性缓冲区法又称延迟线法。

其方法是:对于n=N 的FIR 滤波器,在数据存储器中开辟一个N 单元的缓冲区,存放最新的N 个样本;滤波时从最老的样本开始,每读一个样本后,将此样本向下移位;读完最后一个样本后,输入最新样本至缓冲区的顶部。

以上过程,可以用N=6的线性缓冲区示意图来说明,如图3-2所示图3-2 N=6的线性缓冲区示意图2、循环缓冲区法图3-3说明了使用循环寻址实现FIR 滤波器的方法。

对于N 级FIR 滤波器,在数据存储区开辟一个称为滑窗的具有N 个单元的缓冲区,滑窗中存放最新的N 个输入样本值。

每次输入新的样本时,新的样本将改写滑窗中最老的数据,其他数据则不需要移动。

10()()()(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 -1y(n)图3-3 FIR滤波器循环缓冲区存储器图三、实验内容与步骤设计一个FIR低通滤波器,通带边界频率为1500Hz,通带波纹小于1dB;阻带边界频率为2000Hz,阻带衰减大于40dB;采样频率为8000Hz。

数字信号处理课程设计--基于DSP 的 FIR 数字滤波器的设计

数字信号处理课程设计--基于DSP 的 FIR 数字滤波器的设计

数字信号处理课程设计报告设计题目:基于DSP 的 FIR 数字滤波器的设计专业班级学号学生姓名指导教师教师评分目录一、摘要 (1)二、概述 (2)三、系统设计 (3)3.1 DSP 系统原理框图 (3)3.2 DSP 系统各部分分析 (4)四、硬件设计 (5)4.1 硬件整体电路及框图 (5)4.2 硬件各部分组成简介 (6)五、软件设计 (10)5.1 FIR 数字滤波器的基本网络结构 (10)5.2 FIR 数字滤波器的设计 (10)5.2.1 FIR 滤波器的主要特点 (10)5.2.2 FIR 滤波器设计方法 (10)5.2.3 窗函数法设计的基本思想 (11)5.2.4 用窗函数设计FIR滤波器的步骤 (12)5.3 FIR数字滤波器的MATLAB的实现 (13)5.3.1 Matlab软件介绍 (13)5.3.2 用Matlab实现FIR数字滤波器的几种方法 (13)5.4 FFT参数的计算 (17)5.5 DSP程序流程图 (17)六、实验结果 (19)七、个人总结 (21)八、参考文献 (22)附件: (23)数字信号处理课程设计一、摘要数字滤波器是数字信号处理中最重要的组成部分之一,数字滤波器是由数字乘法器、加法器和延时单元组成的一种算法或装置,可作为应用系统对信号的前期处理。

DSP芯片实现的数字滤波器具有稳定性好、精确度高、灵活性强及不受外界影响等特性。

因此基于DSP实现的数字滤波器广泛应用于语音图像处理、数字通信、频谱分析、模式识别、自动控制等领域,具有广阔的发展空间。

本文首先介绍了数字滤波器的概念及分类,以及数字滤波器的实现方法。

在理解FIR 滤波器的工作原理及其设计方法的基础上,在MATLAB环境下利用矩形窗设计实现FIR滤波器。

然后通过DSP结合CCS2.0软件进行编程,最终实现了基于DSP的FIR数字低通滤波器的设计。

仿真结果表明,基于DSP实现的滤波器具有稳定性好、精确度高、灵活性强等优点,并能实现对信号的实时滤波。

TMS320C54x汇编语言编程实现FIR滤波器

TMS320C54x汇编语言编程实现FIR滤波器

已知一低通滤波器的采样率为8KHz,通带为1500Hz,阻带为2000 Hz,带内波动3dB,带外衰减-50dB,滤波器的相位具有线性特性。

具体幅频特性见下图。

要求用等波纹方法设计出该FIR滤波器,然后用TMS320C54x汇编语言编程实现该FIR滤波器。

使用MATLAB设计语言设计滤波器:[n,fo,mo,w] = remezord( [500 600], [1 0], [0.01 0.1], 2000 );b = remez(n,fo,mo,w);其中,b为FIR滤波器系数,本题系数的具体设计结果为:-0.0119(FE7AH) 0.0406(0532H) -0.0178(FDB9H) -0.0315(FBF8H) 0.0087(011DH) 0.0498(0660H) 0.0066(00D8H) -0.0826(F56DH) -0.0488(F9C1H) 0.1779(16C5H) 0.4142(3504H) 0.4142(3504H) 0.1779(16C5H) -0.0488(F9C1H) -0.0826(F56DH) 0.0066(00D8H) 0.0498(0660H) 0.0087(011DH) -0.0315(FBF8H) -0.0178(FDB9H) 0.0406(0532H) -0.0119(FE7AH)频响如图1所示图1 滤波器频响图DSP设计代码:.title "FIR.asm".mmregs.global _c_int00PA0 .set 0PA1 .set 1size .set 22.bss count,2.bss x,22.bss y,64.dataCOEF: .word 0FE7Ah ; H0----H21 .word 0532h.word 0FDB9h.word 0FBF8h.word 011Dh.word 0660h.word 00D8h.word 0F56Dh.word 0F9C1h.word 16C5h.word 3504h.word 3504h.word 16C5h.word 0F9C1h.word 0F56Dh.word 00D8h.word 0660h.word 011Dh.word 0FBF8h.word 0FDB9h.word 0532h.word 0FE7Ah.text_c_int00: SSBX FRCTST #0, *(count)STM #x+22,AR1STM #y,AR2STM #21 ,AR0LD #x+1 ,DPPORTR PA1,@x+1fir: RPTZ A,#21MACD *AR1-,COEF,ASTH A,*AR1PORTW *AR1+,PA0STH A,*AR2+ADDM #1,*(count)CMPM *(count),1024BC done, TCBD firPORTR PA1,*AR1+0done: B done.end通过CCS观察滤波器频响如图2所示,图2 滤波器频响输入信号为正弦波,频率为1000Hz,输入文件sin_1000.dat,输出文件out_1000.dat,波形如图3所示图3 输入信号频率为1000Hz时的输出结果输入信号为正弦波,频率为2500Hz,输入文件sin_2500.dat,输出文件out_2500.dat,波形如图4所示图4 输入信号频率为2500Hz时的输出结果Matlab分析代码见Lowpass_FIR\annaly\FIR_annaly.m文件,分析结果如图所示:图5 输入信号频率为1000Hz 时的分析结果图6 输入信号频率为2500Hz 时的分析结果0.0020.0040.0060.0080.010.0120.014-4-22441000Hz 输入信号-4-22441000Hz 输出信号42500Hz 输入信号00.0020.0040.0060.0080.010.0120.01442500Hz 输出信号。

DSP实验报告——FIR和IIR滤波器设计

DSP实验报告——FIR和IIR滤波器设计
N 阶滤波器通常采用 N 个延迟单元、N 个加法器与 N+1 个乘法器组成。因 此可以得到 FIR 滤波器的结构图如图 1 所示。
DSP 实验报告——FIR 和 IIR 滤波器设计
4、设计思路
图 1 FIR 滤波器直接结构图
对于 FIR 滤波器的设计,其系数 h(n) 就是关键。由于 matlab 自带滤波器设计
DSP 实验报告——FIR 和 IIR 滤波器设计
DSP 实验报告
实验一 FIR 滤波器的设计
1、实验目的
利用所学 DSP 知识,在 CCS3、3 平台上,对 TMS320VC5416DSP 设计,编程实 现 FIR 滤波器。从而学会使用 CCS 软件与 TMS320VC5416 实验板。
2、实验要求
图8
(a) 时域图
DSP 实验报告——FIR 和 IIR 滤波器设计
(b) 频域图 图 9 输入信号 1 波形图
(a) 滤波结果时域图
(b) 滤波结果频域图 图 10 信号 1 滤波结果图 (a) 时域图
(b)频域图 图 11 输入信号 2 波形图
(a) 滤波结果时域图
DSP 实验报告——FIR 和 IIR 滤波器设计
取样响应为 h(n) ,长度为 N。 h(n) 表示截取 hd (n) 后的冲激响应,即 h(n) (n)hd (n) ,
其中(n) 即为窗函数,窗长为 N。一般的 FIR 滤波器差分方程如下:
n1
y(n) h(k)x(n k) k 0
进行 Z 变换得到 FIR 的系统函数为:
N 1
H (z) h(n)z n n0
DSP 实验报告——FIR 和 IIR 滤波器设计
图 7 CCS3、3 程序窗口

FIR 数字滤波器(DSP实验报告)

FIR 数字滤波器(DSP实验报告)

FIR 数字滤波器一、实验目的数字滤波的作用是滤除信号中某一部分频率分量。

信号经过滤波处理,就相当于信号频谱与滤波器的频率响应相乘的结果。

从时域来看,就是输入信号与滤波器的冲激响应作卷积和。

数字滤波器在各种领域由广泛的应用,例如数字音响、音乐和语音合成、躁声消除、数据压缩、频率合成、谐波消除、过载检测、相关检测等。

本实验主要学习数字滤波器的DSP 实现原理和C54X 编程技巧,并通过CCS 的图形显示工具观察输入/输出信号波形以及频谱的变化。

该实验应该安排在串口和定时器操作实验之后进行。

二、实验原理1) FIR滤波器的实现如果FIR 滤波器的冲激响应为h(0),h(1),...,h(N-1)。

X(n)表示滤波器在n 时刻的输入,则n时刻的输出为:y(n) = h(0)x(n) + h(1)x(n-1)+ ... + h(N-1)x[n-(N-1)]使用MAC或FIRS指令可以方便地实现上面的计算。

使用带MAC 指令的循环寻址模式实现FIR 滤波器,程序片段如下:(输入数据在AL 中,滤波结果在AH中)STM #1,AR0 ;AR0=1STM #N,BK ;BK=N,循环寻址BUFFER 大小为N STL A,*FIR_DATA_P+% ;更新滤波窗口中的采样数据RPTZ A,#(N-1) ;重复MAC指令N次,先将A清零MAC *FIR_DATA_P+0%,*FIR_COFF_P+0%,A ;完成滤波计算。

注意FIR滤波系数存放在;数据存储区另一种方法是利用C54x 系列芯片的提供的FIRS 指令来实现FIR 滤波器。

为一种有限单位冲激响应呈现对中心点对称的FIR 滤波器。

长度为N的线性相位FIR,使用带FIRS 指令的循环寻址模式实现FIR 滤波器,程序片段如下:(输入数据在AL 中,滤波结果在B 中) STM #1,AR0 ;AR0=1STM #(N/2),BK ;BK=N/2,循环寻址BUFFER大小为NMVDD *ar2, *ar3 ;更新Buffer2STL A, *ar2+% ;更新滤波窗口中的采样数据ADD *ar2+0% , *ar3+0% ;初始化ARPTZ B, #(N/2-1) ;重复FIRS指令N/2次,先将B清零FIRS *ar2+0%, *ar3+0%,filter_coff+N/2 ;完成滤波计算。

【VIP专享】通用DSP实现FIR滤波器实验报告

【VIP专享】通用DSP实现FIR滤波器实验报告

1
带通滤波器的频响特性
0.5
-500
-1000
-1500 0
0 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Hertz
0
1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 Hertz
I
6.培养学生观察、思考、对比及分析综合的能力。过程与方法1.通过观察蚯蚓教的学实难验点,线培形养动观物察和能环力节和动实物验的能主力要;特2征.通。过教对学观方察法到与的教现学象手分段析观与察讨法论、,实对验线法形、动分物组和讨环论节法动教特学征准的备概多括媒,体继课续件培、养活分蚯析蚓、、归硬纳纸、板综、合平的面思玻维璃能、力镊。子情、感烧态杯度、价水值教观1和.通过学理解的蛔1虫.过观适1、察于程3观阅 六蛔寄.内列察读 、虫生出蚯材 让标容生3根常蚓料 学本教活.了 据见身: 生,师的2、解 问的体巩鸟 总看活形作 用蛔 题线的固类 结雌动态业 手虫 自形练与 本雄学、三: 摸对 学动状习人 节蛔生结4、、收 一人 后物和同类 课虫活构请一蚯集 摸体 回并颜步关 重的动、学、蚓鸟 蚯的 答归色学系 点形教生生让在类 蚓危 问纳。习从 并状学理列学平的害 题线蚯四线人 归、意特出四生面体以形蚓、形类 纳大图点常、五观玻存 表及动的鸟请动文 本小引以见引、察璃现 ,预物身类 3学物明 节有言及的、导巩蚯上状 是防的体之生和历 课什根蚯环怎学固蚓和, 干感主是所列环史 学么据蚓节二样生练引牛鸟 燥染要否以举节揭 到不上适动、区回习导皮类 还的特分分蚯动晓 的同节于物让分答。学纸减 是方征节布蚓物起 一,课穴并学蚯课生上少 湿法。?广的教, 些体所居归在生蚓前回运的 润;4泛益学鸟色生纳.靠物完的问答动原 的4蛔,处目类 习和活环.近在成前题蚯的因 ?了虫以。标就 生体的节身其实端并蚓快及 触解寄上知同 物表内特动体结验和总利的慢我 摸蚯生适识人 学有容点物前构并后结用生一国 蚯蚓在于与类 的什,的端中思端线问活样的 蚓人飞技有 基么引进主的的考?形题环吗十 体生行能着 本特出要几变以动,境?大 节活的1密 方征本“特节化下物.让并为珍 近习会形理切 法。课生征有以问的小学引什稀 腹性态解的 。2课物。什游题主.结生出么鸟 面和起结蛔关观题体么戏:要利明蚯?类 处适哪构虫系察:的特的特用确蚓等 ,于些特适。蛔章形殊形征板,这资 是穴疾点于可虫我态结式。书生种料 光居病是寄的们结构,五小物典, 滑生?重生鸟内学构,学、结的型以 还活5要生类部习与.其习巩鸟结的爱 是如原活生结了功颜消固类构线鸟 粗形何因的存构腔能色化练适特形护 糙态预之结的,肠相是系习于点动鸟 ?、防一构现你动适否统。飞都物为结蛔。和状认物应与的行是。主构虫课生却为和”其结的与题、病本理不蛔扁的他构特环以生?8特乐虫形观部特8征境小理三页点观的动位点梳相组等、这;,哪物教相,理适为方引些2鸟,育同师.知应单面导鸟掌类结了;?生识的位学你握日构解2互.。办特生认线益特了通动手征观识形减点它过,抄;察吗动少是们理生报5蛔?物,与的解.参一了虫它和有寄主蛔与份解结们环些生要虫其。蚯构都节已生特对中爱蚓。会动经活征人培鸟与飞物灭相。类养护人吗的绝适这造兴鸟类?主或应节成趣的为要濒的课情关什特临?就危感系么征灭来害教;?;绝学,育,习使。我比学们它生可们理以更解做高养些等成什的良么两好。类卫动生物习。惯根的据重学要生意回义答;的3.情通况过,了给解出蚯课蚓课与题人。类回的答关:系线,形进动行物生和命环科节学动价环值节观动的物教一育、。根教据学蛔重虫点病1.引蛔出虫蛔适虫于这寄种生典生型活的线结形构动和物生。理二特、点设;置2.问蚯题蚓让的学生生活思习考性预和习适。于穴居生活的形态、结构、生理等方面的特征;3.线形动物和环节动物的主要特征。

基于DSP的FIR数字滤波器的设计与仿真毕业设计论文

基于DSP的FIR数字滤波器的设计与仿真毕业设计论文

基于DSP的FIR数字滤波器的设计与仿真毕业设计论文研究背景数字信号处理在现代通信、音视频处理、图像处理等领域中起着至关重要的作用,数字滤波器是数字信号处理中的重要内容。

其中FIR数字滤波器是一种常用的滤波器,其具有线性相位和稳定性等特点,在数字信号处理中应用广泛。

因此,本毕业设计将以FIR 数字滤波器为研究对象,结合DSP平台,进行数字滤波器的设计与仿真研究。

研究目标本文旨在设计一种基于DSP的FIR数字滤波器,并且研究其性能和仿真效果。

主要目标包括:1. 掌握DSP平台的开发流程和设计方法,包括硬件平台和软件开发技术。

2. 研究FIR数字滤波器的原理和特点,掌握其设计方法和计算技巧。

3. 基于DSP平台设计实现FIR数字滤波器,包括硬件和软件两个方面,满足设计要求。

4. 仿真FIR数字滤波器的性能和效果,验证设计的正确性和可行性。

5. 撰写毕业设计论文,总结设计过程和结果,体现出自己的设计思路和方法。

研究方法本研究采用如下方法:1. 研究DSP平台的开发流程和设计方法,包括使用硬件平台和软件开发技术。

2. 研究FIR数字滤波器的原理和特点,掌握其设计方法和计算技巧。

3. 基于DSP平台设计实现FIR数字滤波器,采用Verilog语言描述硬件电路,C语言编写软件程序。

4. 利用模拟工具对FIR数字滤波器进行仿真,测试性能和效果。

5. 撰写毕业设计论文,总结设计过程和结果,体现出自己的设计思路和方法。

预期结果本研究预期可以达到如下结果:1. 掌握DSP平台的开发流程和设计方法,能够应用于数字信号处理和嵌入式系统开发等领域。

2. 研究FIR数字滤波器的原理和特点,掌握其设计方法和计算技巧,能够进行数字信号处理相关工作。

3. 基于DSP平台设计实现FIR数字滤波器,满足设计要求,具有较好的性能和稳定性。

4. 仿真FIR数字滤波器的性能和效果,能够验证设计的正确性和可行性。

5. 撰写毕业设计论文,总结设计过程和结果,体现出自己的设计思路和方法,具有较好的表达和撰写能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于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)图3-3 FIR滤波器循环缓冲区存储器图三、实验容与步骤设计一个FIR低通滤波器,通带边界频率为1500Hz,通带波纹小于1dB;阻带边界频率为2000Hz,阻带衰减大于40dB;采样频率为8000Hz。

FIR滤波器的设计可以用MATLAB窗函数法进行。

本实验设计一个采样频率Fs为8000Hz,输入信号频率为1000Hz和2500Hz的合成信号,通过设计的低通滤波器将2500Hz信号滤掉,余下1000Hz信号。

1、MATLAB设计FIR滤波器FIR滤波器的设计可以用MATLAB窗函数法进行,选择Hamming窗,其程序为:b=fir1(16,1500/8000*2);得到FIR数字滤波器系数b为:b0=0.00000000 b9=0.28342322b1=0.00482584 b10=0.09725365b2=0.00804504 b11=-0.02903702b3=-0.00885584 b12=-0.04291741b4=-0.0429174 b13=-0.00885584b5=-0.02903702 b14=0.00804504b6=0.09725365 b15=0.00482584b7=0.28342322 b16=0.00000000B8=0.37452503在DSP汇编语言中,不能直接输入十进制小数,在MATLAB中进行如下转换:h=round(b*2^15)将系数转换为Q15的定点小数形式,为:h(0)=0 h(9)=9287h(1)=158 h(10)=3187h(2)=264 h(11)=-951h(3)=-290 h(12)=-1406h(4)=-1406 h(13)=-290h(5)=-951 h(14)=264h(6)=3187 h(15)=158h(7)=9287 h(16)=0h(8)=122722、编写FIR数字滤波器的汇编程序;一个FIR滤波器源程序 fir.asm.mmregs.global start.def start,_c_int00INDEX .set 1KS .set 256 ;模拟输入数据缓冲区大小N .set 17COFF_FIR .sect "COFF_FIR" ;FIR滤波器系数.word 0.word 158.word 264.word -290.word -1406.word -951.word 3187.word 9287.word 12272.word 9287.word 3187.word -951.word -1406.word -290.word 260.word 158.word 0.dataINPUT .copy "firin.inc" ;模拟输入在数据存储区0x2400 OUTPUT .space 1024 ;输出数据在数据区0x2500 COFFTAB .usect "FIR_COFF",NDATABUF .usect "FIR_BFR",NBOS .usect "STACK",0FhTOS .usect "STACK",1.text.asg AR0,INDEX_P.asg AR4,DATA_P ;输入数据x(n)循环缓冲区指针.asg AR5,COFF_P ;FIR系数表指针.asg AR6,INBUF_P ;模拟输入数据指针.asg AR7,OUTBUF_P;FIR滤波器输出数据指针_c_int00b startnopnopstart: SSBX FRCTSTM #COFFTAB,COFF_PRPT #N-1 ;将FIR系数从程序存储器移动MVPD #COFF_FIR,*COFF_P+ ;到数据存储器STM #INDEX,INDEX_PSTM #DATABUF,DATA_PRPTZ A,#N-1STL A,*DATA_P+ ;将数据循环缓冲区清零STM #(DATABUF+N-1),DATA_P ;数据缓冲区指针指向x[n-(N-1)]STM #COFFTAB,COFF_P ;FIR_TASK:STM #INPUT,INBUF_PSTM #OUTPUT,OUTBUF_PSTM #KS-1,BRCRPTBD LOOP-1STM #N,BK ;FIR循环缓冲区大小LD *INBUF_P+,A ;装载输入数据FIR_FILTER:STL A,*DATA_P+%RPTZ A,N-1MAC *DATA_P+0%,*COFF_P+0%,ASTH A,*OUTBUF_P+LOOP:END B EEND.end3、编写FIR滤波器命令文件对应以上汇编程序的命令文件fir.cmd如下:fir.obj-m fir.map-o fir.outMEMORY{PAGE 0: ROM1(RIX) :ORIGIN=0080H,LENGTH=100HPAGE 1: INTRAM1(RW) :ORIGIN=2400H,LENGTH=0200HINTRAM2(RW) :ORIGIN=2600H,LENGTH=0100HINTRAM3(RW) :ORIGIN=2700H,LENGTH=0100HB2B(RW) :ORIGIN=0070H,LENGTH=10H}SECTIONS{.text : {}>ROM1 PAGE 0.data : {}>INTRAM1 PAGE 1FIR_COFF: {}>INTRAM2 PAGE 1FIR_BFR : {}>INTRAM3 PAGE 1.stack : {}>B2B PAGE 1}4、实验步骤及结果(1) 在CCS上建立fir工程并运行fir.out程序。

建立fir工程,将fir.asm和fir.cmd 添加到工程中,对汇编程序进行汇编、;如果有错误则进行修改、调试,当汇编、成功后,加载并运行fir.out程序。

注意,将fir.asm、fir.cmd、firin.inc文件和fir.pjt工程文件放在同一文件夹下。

(2) 观察输入信号的波形及频谱。

单击View→Graph→Time/Frequency命令,按照如图3-4所示改变各选项。

其中,由.cmd可知输入信号的数据放在数据区0x2400开始的256个单元中。

图3-4 Graph属性设置窗口单击OK按钮,则显示输入信号的时域波形如图3-5所示。

其波形是频率为1000Hz和2500Hz正弦信号的合成信号。

图3-5 输入信号的时域波形将图3-4中的Dsiplay Type项改为FFT Magnitude,则显示输入信号的频谱图,如图3-6所示。

图3-6 输入信号的频谱图3、观察输出信号的波形及频谱。

单击View→Graph→Time/Frequency命令,按照如图3-7所示改变各选项。

其中,由.cmd 可知输出信号的数据放在数据区0x2500开始的256个单元中。

图3-7 Graph属性设置窗口单击OK按钮,将显示滤波器输出信号时域波形,如图3-8所示。

图3-8 输出信号的时域波形图3-9 输出信号的频谱图5、系数对换FIR 滤波器的实现系数对换FIR 滤波器由于具有线性相位,因此应用很广。

一个N=8的FIR 滤波器,若h(n)=h(N-1-n),就是对换FIR 滤波器,其输出方程为:总共有8次乘法和7次加法。

如改写成:变成4次乘法和7次加法,乘法运算次数减少了一半,特别是当阶数较高时,利用系数对称的特点,可以明显减少运算量。

(1)FIR 滤波器设计在MATLAB 下输入: B=fir1(15,1500/8000*2);H=round(b*2^15);将系数转换为Q15的定点小数形式 则滤波器系数为:h(0)=62 h(8)=11439 h(1)=188 h(9)=6202 h(2)=86 h(10)=625 h(3)=-764 h(11)=-1453 h(4)=-1453 h(12)=-764 h(5)=625 h(13)=86 h(6)=6202 h(14)=188 h(7)=11439 h(15)=62系数对称FIR 数字滤波器汇编程序如下: .mmregs.global start()(0)()(1)(1)(2)(2)(3)(3)(4)(4)(5)(5)(6)(6)(7)(7)y n h x n h x n h x n h x n h x n h x n h x n h x n =+-+-+-+-+-+-+-()(0)[()(7)](1)[(1)(6)](2)[(2)(5)](3)[(3)(4)]y n h x n x n h x n x n h x n x n h x n x n =+-+-+-+-+-+-+-.def start,_c_int00KS .set 256 ;输入样本数据个数N .set 16 ;FIR滤波器阶数COEF_FIR .sect "COEF_FIR" ;FIR滤波器系数.word 62.word 188.word 86.word -764.word -1453.word 625.word 6202.word 11439.dataINPUT .copy "firin.inc" ;输入数据在数据区0x2400 OUTPUT .space 1024 ;输出数据在数据区0x2500x_new .usect "DATA1",N/2x_old .usect "DATA2",N/2size .set N/2.text_c_int00b startnopnopstart: SSBX FRCT ; 设置FRCT(小数方式)位STM #x_new,AR2 ; AR2指向New缓冲区第一个单元STM #x_old+(size-1), AR3; AR3指向Old缓冲区最后一个单元 STM #-1,AR0STM #INPUT,AR4 ; 模拟输入数据指针初始化STM #OUTPUT,AR5 ; 滤波器输出数据指针初始化STM #KS-1,BRCRPTBD LOOP-1STM #size , BK ;循环缓冲区块大小BK=sizeLD *AR4+,ASTL A,*AR2FIR_FILTER: ADD *AR2+0%,*AR3+0%,ARPTZ B, #size-1FIRS *AR2+0%,*AR3+0%,COEF_FIRSTH B,*AR5+MAR *+AR2(2)%MAR *AR3+%MVDD *AR2 , *AR3+0%LOOP:END B END.end命令文件如下:fir2.obj-m fir2.map-o fir2.outMEMORY{PAGE 0: ROM1(RIX) :ORIGIN=0080H,LENGTH=1000HPAGE 1: INTRAM1(RW) :ORIGIN=2400H,LENGTH=0200H INTRAM2(RW) :ORIGIN=2600H,LENGTH=0100HINTRAM3(RW) :ORIGIN=2700H,LENGTH=0100HB2B(RW) :ORIGIN=0070H,LENGTH=10H}SECTIONS{.text : {}>ROM1 PAGE 0COEF_FIR: {}>ROM1 PAGE 0.data : {}>INTRAM1 PAGE 1DATA1 : {}>INTRAM2 PAGE 1DATA2 : {}>INTRAM3 PAGE 1.stack : {}>B2B PAGE 1}四、实验仪器设备1.计算机2.DES-320PP—A教学实验系统五、思考题1.实现系数对称FIR数字滤波器。

相关文档
最新文档