(完整版)基于DSP的数字滤波器的设计与仿真

合集下载

dsp数字信号处理课程设计报告基于DSP的数字滤波器设计与仿真.doc

dsp数字信号处理课程设计报告基于DSP的数字滤波器设计与仿真.doc

dsp数字信号处理课程设计报告基于DSP的数字滤波器设计与仿真DSP技术与应用课程设计报告选题名称基于DSP的数字滤波器设计与仿真系(院)计算机工程学院专业计算机科学与技术(嵌入式方向)班级计算机1073班姓名学号指导教师学年学期2009 2010 学年第 2 学期2010年6 月18 日摘要DSP作为一门新兴学科,越来越引起人们的关注,目前已广泛应用在各个领域。

20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。

本文主要介绍基于DSP数字滤波器设计,使用CCS5000Simulator 实现FTSK数据输入, 使用FIR滤波器对FTSK调制信号进行处理,输出需要波形与频谱。

文中采用线性缓冲区和带移位双操作寻址方法实现FIR 滤波器。

以窗函数法设计线性相位FIR数字滤波器为例,介绍用MATLAB工具软件设计数字滤波器的方法和在定点DSP上的实现,实现时,先在CCS5000仿真开发,然后加载。

利用DSP来快速设计FIR数字滤波器的方法,寻找系数的快速传递,MATLAB中调试仿真DSP程序。

关键词数字滤波器,Matlab,Simulator 目录1 课程设计综述1 1.1课程设计概述1 1.2 课程设计目的和要求1 2系统功能介绍及总体设计方案1 2.1系统功能介绍1 2.2总体设计方案流程图2 3主要内容和步骤2 3.1滤波器原理2 3.2 DSP 实现FIR滤波的关键技术2 3.3操作步骤4 4详细设计4 5实验过程6 总结12 参考文献13 1 课程设计综述 1.1课程设计概述本文主要介绍基于DSP数字滤波器设计,使用CCS5000Simulator 实现FTSK数据输入, 使用FIR滤波器对FTSK调制信号进行处理,输出需要波形与频谱。

文中采用线性缓冲区和带移位双操作寻址方法实现FIR 滤波器。

1.2 课程设计目的和要求通过课程设计,加深对DSP 芯片TMS320C54x的结构、工作原理的理解,获得DSP应用技术的实际训练,掌握设计较复杂DSP系统的基本方法。

基于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. 撰写毕业设计论文,总结设计过程和结果,体现出自己的设计思路和方法,具有较好的表达和撰写能力。

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

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

() 2
可以看出 。 数字滤 波 器 的功能 就是 把输 入 序列 通过 一定 的 运算 变换成输 出序列 … 。 数字滤波器依据 冲激 响应 的宽 度划 分为有 限长单 位 冲 激响应 ( I 滤波 器 和无 限长单 位 冲激 响应 (I 滤波 器 。 FR) I R) 从结构类型来看 , 在系 统传 递 函数 表现 为 : 果 全部 = 如
第5 卷第 4期 21 0 0年 1 2月
江 西 蓝 天 学 院 学 报
J URNAL OF JANG L E S Y O I XIB U K UNI RST VE I Y
Vo 1 No 4 5. .
De e e . 0 0 c mb b 2 1
基 于 D P的 FR数 字 滤 波 器 设 计 及 实现 S I



着信 息时代和数字 世界 的 到来 , 字信 号处 理 已成 为 当今 数

日( )=— z


() 1
门极其 重要的学科和技术 领域 , 它在 通信 、 语音 、 图像 、 自
1一
口 z“ ^
动控 制、 雷达 、 军事 、 空航天 、 航 医疗 和家用 电器 等众 多领域 直接 由此 式可得出表示输入输 出关 系的常 系数线性 差分 方 得 到了广泛的应 用 。而在 数字 信号 处 理应用 中, 字滤 波 程为 : 数
中图分类号:P1 T31
文献标识码: A
文章鳊号: 3 21 )4 08 0 1 (00 0 — 2 — 4 2
在一个实 际的应 用 系统 中 , 由于 设备 本 身和 外界 环境 1 FR滤 波器 的 M T A I A L B设计 的原 因 , 总存在各种干扰 , 号 中掺杂 了噪声 。譬 如音 频 使信

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

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

摘要数字滤波器是数字信号处理中最重要的组成部分之一,数字滤波器是由数字乘法器、加法器和延时单元组成的一种算法或装置,可作为应用系统对信号的前期处理。

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

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

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

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

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

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

关键词FIR数字滤波器;DSP;窗函数法;MATLAB;TMS320C5402Design and Realization of FIR digital filter Based on DSPSang JianjunDepartment of Physics and Electronic information , Huai Bei Normal University 235000Abstract A digital filter, which is one of the most important parts of digital signal processing, is an algorithm or a device made of digital on time-multiplier, adder and delay of elements. It can be used to be the pretreatment of signal by application program. The FIR digital filter Based on DSP has many features ,such as uninfluenced ,high accuracy ,good stability and highly flexible .The digital filter is widely used in fields of speech image processing, digital communication, spectrum analysis, pattern recognition and automatic control, etc. It will has broad space for development.This paper firstly introduces the concept of digital filter ,classification, and the realization method of digital filter. On the basis of understanding FIR filters working principle and design method , we use rectangular window to realize the design of FIR low-pass filters under the MATLAB environment. Then ,making the design of FIR digital low-pass filters come true through programming by combination of the DSP and CCS2.0. The simulation results show that the filter based on DSP realizing have good stability, high precision, flexibility,etc, and can also realize real-time filtering.Key words FIR digital filter;DSP;Window method;MATLAB;TMS320C5402目次1 引言 (1)1.1数字滤波器的概念 (1)1.2数字滤波器的分类 (1)1.3数字的滤波器的发展及其优越性 (2)1.4数字滤波器的实现方法 (2)2 FIR数字滤波器的设计原理及MATLAB的实现 (4)2.1FIR数字滤波器的基本网络结构 (4)2.2FIR数字滤波器的设计方法 (4)2.3FIR数字滤波器的MATLAB的实现 (7)3 基于DSP的FIR数字滤波器的设计与实现 (9)3.1DSP芯片的概述 (9)3.2FIR数字滤波器的DSP实现 (11)结论 (15)参考文献 (16)致谢 (17)1 引言随着信息时代的到来,数字信号处理已成为当今一门极其重要的学科和技术领域。

基于DSP的IIR数字滤波器的设计毕业设计

基于DSP的IIR数字滤波器的设计毕业设计

摘要随着运算机和信息技术的飞速进展,数字信号处置已经成为高速实时处置的一项关键技术,普遍应用在语音识别、智能检测、工业操纵等各个领域。

数字滤波器是对数字信号实现滤波的线性时不变系统。

数字滤波实质上是一种运算进程,实现对信号的运算处置。

DSP数字信号处置(Digital Signal Processing,简称DSP)是一门涉及许多学科而又普遍应用于许多领域的新兴学科。

20世纪60年代以来,随着运算机和信息技术的飞速进展,数字信号处置技术应运而生并取得迅速的进展。

传感器数字信号处置是利用传感器对模拟信号或数字信号进行搜集并把其转换成运算机可识别的电信号,并利用运算机对信号进行处置以达到运算机辅助操纵或是运算机自动操纵的目的。

DSP芯片是一种专门适合数字信号处置运算的微处置器,要紧用来实时、快速地实现各类数字信号处置算法。

用DSP 芯片实现IIR数字滤波器,不仅具有精准度高、不受环境阻碍等优势,而且因DSP 芯片的可编程性,可方便地修改滤波器参数,从而改变滤波器的特性,设计十分灵活。

本课题要紧应用MATLAB软件设计IIR数字滤波器,并对所设计的滤波器进行仿真;应用DSP集成开发环境——CCS调试汇编程序,文章结合TM320C5509的结构特点,介绍了一种IIR滤波器在TM320C5509中的实现方式。

关键字:IIR;数字滤波器;DSP;TM320C5509;MATLAB目录摘要 (I)第1章绪论 (3)数字滤波器研究的背景 (3)数字滤波器研究的现状 (3)数字滤波器研究的内容与方式 (5)第2章系统方案设计及论证 (7)IIR数字滤波器的设计步骤 (7)IIR数字滤波器的大体原理 (7)IIR数字滤波器的流程框图 (8)第3章基于DSP的IIR数字滤波器设计 (9)DSP系统的特点 (9)DSP系统的设计流程 (9)基于DSP的IIR数字滤波器设计总框图 (10)第4章软件设计 (12)CCS平台介绍 (12)仿真结果 (13)第5章结论 (15)参考文献 (16)附录A:源代码 (17)致谢 (20)第1章绪论数字滤波器研究的背景现今,数字信号处置(DSP:Digtal Signal Processing)技术正飞速进展,它不但自成一门学科,更是以不同形式阻碍和渗透到其他学科。

(完整版)基于DSP的数字滤波器的设计与仿真

(完整版)基于DSP的数字滤波器的设计与仿真
图4.2 CCS汇编程序流程图
第5章实验过程
5.1汇编语言实验步骤与内容
MATLAB辅助DSP实现FIR,其总体过程为在DSP中编写处理程序,在MATLAB中利用滤波器设计、分析工具(FDATOOL),根据指定的滤波器性能 快速设计一个FIR,然后把滤波器系数以头文件形式导入CCS中,头文件中
MATLAB辅助DSP实现FIR数字滤波器含滤波器阶数和系数数组,在MATLAB中调试、运行DSP程序并显示、分析处理后的数据。使用该方法,便 于采用汇编语言来实现程序。头文件名不变,当MATLAB中设计的滤波器系数改 变时,相应头文件中系数也改变,方便了程序调试、仿真。
2.1系统功能介绍
一个实际的应用系统中,总存在各种干扰。数字滤波器在语音信号处理、信号 频谱估计、信号去噪、无线通信中的数字变频以及图像信号等各种信号处理中都有 广泛的应用,数字滤波器也是使用最为广泛的信号处理算法之一。
在本设计中,使用MATLAB模拟产生合成信号,然后利用CCS进行滤波 设定模拟信号的采样频率为48000Hz,。设计一个FIR低通滤波器,其参数为:
滤波器名称:
FIR低通滤波器
米样频率:
Fs=48000Hz
通带截止频率:
15000Hz
阻带截止频率:
16000Hz
通带最大衰减:
0.1dB
阻带最少衰减:
80dB
滤波器系数:
由MATLAB根据前述参数求得。
2.2总体设计方案流程图
图1总体设计方案
主要内容和步骤
3.1滤波器原理
对于一个FIR滤波器系统,它的冲击响应总是又限长的,其系统函数可记为:
(1)在MATLAB中先编写程序,查看待滤波和已滤波的信号的时域和频域

基于TMS320F2812DSP处理器的FIR滤波器的设计与实现

基于TMS320F2812DSP处理器的FIR滤波器的设计与实现

基于TMS320F2812DSP处理器的FIR滤波器的设计与实现FIR(Finite Impulse Response)滤波器是一种常见的数字滤波器,其主要特点是线性相位特征和有限脉冲响应。

在本文中,将基于TMS320F2812 DSP处理器设计和实现一个FIR滤波器。

首先,我们需要确定FIR滤波器的参数,包括滤波器的长度和系数。

滤波器的长度决定了滤波器的频域分辨率,系数则决定了滤波器的频率响应。

在设计中,我们可以使用窗函数法或最小二乘法等方法来确定滤波器的系数。

接下来,我们需要编写代码将FIR滤波器的系数加载到DSP处理器的内存中。

TMS320F2812DSP处理器使用C语言进行编程,可以使用DSP编译器将代码编译成可执行文件。

在代码中,需要定义一个数组来存储FIR 滤波器的系数,并使用内置函数来实现滤波器运算。

在滤波器的输入和输出之间,需要使用定点数格式进行数据的表示和计算。

TMS320F2812DSP处理器支持定点数运算,可以使用固定小数点或整数表示数据。

在计算过程中,要注意溢出和截断的问题,以保证滤波器的性能和稳定性。

在实现过程中,还需要考虑到采样率和时钟频率的调整。

TMS320F2812DSP处理器具有多个时钟和定时器,可以根据实际需求进行配置和调整。

为了保证滤波器的实时性,应根据采样率和滤波器的长度来确定时钟频率和定时器的设置。

当FIR滤波器的代码编写完成后,可以通过仿真和测试来验证滤波器的性能。

TMS320F2812DSP处理器支持调试和仿真功能,可以使用仿真器或调试器来查看滤波器的输入和输出结果。

在测试过程中,可以输入不同频率和幅度的信号来验证滤波器的频率响应和滤波效果。

总结来说,基于TMS320F2812DSP处理器的FIR滤波器设计和实现分为确定参数、编写代码、调整时钟和测试验证四个步骤。

通过合理的参数选择和代码编写,可以实现一个高性能和稳定的FIR滤波器。

基于DSP的数字滤波器毕业论文

基于DSP的数字滤波器毕业论文
Keywords:DSP;Digital Filter;FIR
插图清单
图2-1FIR滤波器直接型结构……………………………………………5
图2-2FIR滤波器转置结构图…………………………………………………6
图2-3FIR滤波器的级联型结构……………………………………………………6
图4-1数字滤波器系统方案框图………………………………………12
数字滤波器,与传统的通过硬件电路实现的模拟滤波器相比有以下优点[3]:
数字滤波器是指完成信号滤波处理的功能,用有限精度算法实现的离散时间线性非时变系统,其输入是一组(由模拟信号取样和量化的)数字量,其输出是经过变换的另一组数字量。同时DSP(数字信号处理器)的出现和迅速发展也促进了数字滤波器的发展,并为数字滤波器的硬件实现提供了更多的选择。数字信号处理由于运算速度快,具有可编程特性和接口灵活的特点,使得它在许多电子产品的研制、开发和应用中,发挥着重要的作用。采用DSP芯片来实现数字信号处理系统是当前发展的趋势。用DSP芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响外,还具有灵活性好的特点
基于DSP芯片的数字滤波器设计
摘要
数字滤波器是数字信号处理中最重要的组成部分之一,几乎出现在所有的数字信号处理系统中。当前我们正处于数字化时代,数字信号处理技术受到了人们的广泛关注,其理论及算法随着计算机技术和微电子技术的发展得到了飞速的发展,被广泛应用于语音图象处理、数字通信、谱分析、模式识别、自动控制等领域。数字滤波器是数字信号处理中最重要的组成部分之一,几乎出现在所有的数字信号处理系统中。数字滤波器是指完成信号滤波处理的功能,用有限精度算法实现的离散时间线性非时变系统,其输入是一组(由模拟信号取样和量化的)数字量,其输出是经过变换的另一组数字量。相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应特性可做成非常接近于理想的特性,且精度可以达到很高,容易集成等,这些优势决定了数字滤波器的应用越来越广泛。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.1系统功能介绍一个实际的应用系统中,总存在各种干扰。

数字滤波器在语音信号处理、信号频谱估计、信号去噪、无线通信中的数字变频以及图像信号等各种信号处理中都有广泛的应用,数字滤波器也是使用最为广泛的信号处理算法之一。

在本设计中,使用MATLAB模拟产生合成信号,然后利用CCS进行滤波。

设定模拟信号的采样频率为48000Hz,。

设计一个FIR低通滤波器,其参数为:滤波器名称:FIR低通滤波器采样频率:Fs=48000Hz通带截止频率:15000Hz阻带截止频率:16000Hz通带最大衰减:0.1dB阻带最少衰减:80dB滤波器系数:由MATLAB根据前述参数求得。

2.2 总体设计方案流程图图1 总体设计方案主要内容和步骤3.1 滤波器原理对于一个FIR 滤波器系统,它的冲击响应总是又限长的,其系统函数可记为:()()10N n n H z h n z --==∑ 其中1N -是FIR 的滤波器的阶数,n z -为延时结,()h n 为端口信号函数。

最基本的FIR 滤波器可用下式表示:()()()10N 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 数据。

运行程序,查看输入输出波形,修改相应参数进行调试第4章详细设计在本实验中使用MATLAB模拟产生信号,观察滤波前的时域波形和频域波形。

MATLAB仿真后,使用得到的滤波器参数,进行DSP编程,在DSP中实现带通滤波,并使用CCS的频谱分析功能,查看DSP的滤波效果。

MATLAB程序流程图如图4.1所示图4.1 MATLAB程序流程图CCS汇编程序流程图如图4.2所示图4.2 CCS汇编程序流程图第5章实验过程5.1 汇编语言实验步骤与内容MATLAB辅助DSP实现FIR,其总体过程为在DSP中编写处理程序,在MATLAB中利用滤波器设计、分析工具( FDATOOL) ,根据指定的滤波器性能快速设计一个FIR ,然后把滤波器系数以头文件形式导入CCS中,头文件中MATLAB辅助DSP实现FIR数字滤波器含滤波器阶数和系数数组,在MATLAB中调试、运行DSP 程序并显示、分析处理后的数据。

使用该方法,便于采用汇编语言来实现程序。

头文件名不变,当MATLAB中设计的滤波器系数改变时,相应头文件中系数也改变,方便了程序调试、仿真。

(1)在MATLAB中先编写程序,查看待滤波和已滤波的信号的时域和频域波形,如图5.1和图5.2所示。

图5.1 待滤波信号的时域图图5.2 待滤波信号的频域图利用FDA TOOL设计FIR滤波器的参数,操作步骤如图5.3所示。

图5.3 FIR滤波器的参数打开Export,把Numerator改为B,如图5.4所示。

图5.4 Export设置已滤波的信号的时域和频域波形,如图5.5和图5.6所示。

图5.5 已滤波信号时域波形图图5.6 已滤波信号频域波形图MATLAB滤波器设计工具在完成FIR设计后,如图5.7所示,在Export as 中选择16bit符号整数输出,然后单击OK按钮。

生成fir.h C语言头文件。

将系数稍作修改,调整后拷贝到程序的系数初始化空间即可。

图5.7 MATLAB输出数值转换图(2)在CCS中编写汇编语言程序,进行调试,实现带通滤波的功能。

在CCS IDE 中建立LHM.pjt工程,用汇编语言编写处理主程序fir.asm。

另外根据板上的存储器配置方式,编写存储器配置文件fir.cmd文件,将MATLAB生成的LHM.h 和input1.dat文件拷贝到LHM.pjt工程文件夹下,进行编译、链接,生成可执行文件LHM.out。

(3)加载初始化data数据,图5.8所示。

图5.8 data初始化图运行程序,查看输入输出波形,修改相应参数进行调试。

5.2 实验过程中出现的错误及解决的办法(1)在MATLAB程序设计中,采样频率设置的过小,截止频率大于采样频率的一半,运行的时候图形出现错误。

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

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

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

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

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

(7) 在View的Graph中单击Time/frequency出现graph property dialog 框,未修改抽样点数。

显示的图形出现差异5.3 CCS程序运行后的各种输出结果在View的Graph中单击Time/frequency出现graph property dialog框。

将显示类型,图形名称,起始地址,抽样点数,数据类型等分别进行设置,输出各种波形。

输出滤波前的信号时域波形。

首先,设置如图5.9所示,输出滤波前的信号时域波形。

图5.9 Graph property dialog设置框图单击OK后生成如下图5.10波形。

图5.10滤波前信号波形图图5.10为滤波前的信号,波形很杂乱,从时域上很难看出信号的周期性。

修改相应设置,输出如图5.11所示滤波前信号频谱。

图5.11滤波前信号频谱波形图经过滤波后,时域波形频谱波形如图5.12和5.13所示。

图5.12 滤波后信号时域波形图图5.13 滤波后信号频谱图由上述的所有截图可知,输入参数中,通带截止频率和阻带截止频率是比较重要的两个参数,不宜过小,过小滤掉的高频成分太多,很难还原出远波形的形状,也不宜过大,过大滤波效果欠佳。

在本课程设计中,通带截止频率选用4000Hz,阻带截止频率选用4500Hz,因此,显示图形时的,时域显示的抽样点数为1024,频域显示的带宽为0.5Hz。

对比滤波前后信号的时域图5.10和5.12、频谱波形图5.11和5.13可以知道,滤波前的时域信号的波形图的波形很杂乱,很难看出信号的周期性,滤波后周期性也相对的明显起来了;滤波前信号分布在整个频带上,滤波后阻带范围内的基本被滤掉,这些都可以从上述截图看出。

附件:源程序清单用线性缓冲区实现FIR滤波器程序清单:.title “FIR1.ASM”.mmregs.def startx .usect “x”,8PA0 .set 0PA1 .set 1.dataCOEF:.word 1*32768/10.word 2*32768/10.word -4*32768/10.word 3*32768/10.word -4*32768/10.word 2*32768/10.word 1*32768/10.textstart: SSBX FRCTSTM #x+7,AR2STM #6,AR0LD #x+1,DPPORTR PA1,@x+1FIR1: RPTZ A,#6MACD *AR2-,COEF,ASTH A,*AR2PORTW *AR2+,PA0BD FIR1PORTR PA1,*AR2+0.end用循环缓冲区实现FIR滤波器程序清单:.title “FIR2.ASM”.mmregs.def start.bss y,1xn .usect “xn”,7b0 .usect “b0”,7PA0 .set 0PA1 .set 1.datatable: .word 1*32768/10.word 2*32768/10.word 3*32768/10.word 4*32768/10.word 5*32768/10.word 6*32768/10.word 7*32768/10.textstart: SSBX FRCTSTM #b0,AR1RPT #6MVPD table,*AR1+STM #xn+6,AR2STM #b0+6,AR3STM #7,BKSTM #-1,AR0LD #xn,DPPORTR PA1,@xnFIR2: RPTZ A,#6MAC *AR2+0%,*AR3+0%,ASTH A,@yPORTW @y,PA0BD FIR2PORTR PA1,*AR2+0%.end汇编程序清单lhm.h文件内容:.datacoeff .word -85, -64, -61, -36, 8, 62, 110, 136, 131.word 96, 42, -11, -44, -44, -11, 39, 85, 106.word 88, 37, -29, -83, -101, -73, -7, 70, 124.word 131, 82, -5, -96, -151, -144, -72, 37, 140.word 191, 162,61, -76, -191, -231, -174, -35, 132.word 256, 278, 180, -7, -208, -337, -330, -176, 72.word 316, 445, 392, 156, -178, -475, -599, -470, -108.word 361, 745, 857, 594, -6, -748, -1336, -1456, -893.word 386, 2192, 4154, 5816, 6768, 6768, 5816, 4154, 2192.word 386, -893, -1456, -1336, -748, -6, 594, 857, 745.word 361, -108, -470, -599, -475, -178, 156, 392, 445.word 316, 72, -176, -330, -337, -208, -7, 180, 278.word 256, 132, -35, -174, -231, -191, -76, 61, 162.word 191, 140, 37, -72, -144, -151, -96, -5, 82.word 131, 124, 70, -7, -73, -101, -83, -29, 37.word 88, 106, 85, 39, -11, -44, -44, -11, 42.word 96, 131, 136, 110, 62, 8, -36, -61, -64.word -85Fir.asm内容:.title "fir.asm".mmregs.global _c_int00ORDER .set 154D_LEN .set 1024 ; The Length of Input Data xn .usect "xn", (ORDER-1)a0 .usect "a0", (ORDER-1)input .usect "input", D_LENoutput .usect "output", D_LEN.copy "HM.h" ; Get coefs from "coef.h".text.asg AR0, FIR_INDEX.asg AR2, FIR_DATA.asg AR3, FIR_COEF.asg AR5, DATA_IN.asg AR6, DATA_OUT_c_int00:SSBX FRCTSTM #a0,FIR_COEF ; Copy a0(coefs) to FIR_COEF(AR3)RPT #ORDER-1MVPD #coeff,*FIR_COEF+STM #1, FIR_INDEXSTM #xn, FIR_DATA ; Copy xn(data) to FIR_DATA(AR2)RPTZ A,#ORDER-1STL A, *FIR_DATA+STM #(xn+ORDER-1), FIR_DATASTM #(a0+ORDER-1), FIR_COEFSTM #input, DATA_IN ; Get data from "input"STM #output, DATA_OUT ; Write data to "output"STM #D_LEN-1, BRCRPTBD next-1STM #ORDER, BKLD *DATA_IN+, AFIR: STL A, *FIR_DATA+%RPTZ A, (ORDER-1)MAC *FIR_DATA+0%, *FIR_COEF+0%, A ; FIRSSTH A, *DATA_OUT+nextFIR_END:B FIR_END.endFIR.m的程序如下:fs=40000; %/采样HzN=1024 %数据个数T=1/fs; %采样周期n=0:N-1;df=n*(fs/N)%待滤波信号波形xin=randn(1,1024)figure(1)plot(xin)%待滤波信号频谱xinff=abs(fft(xin));figure(2)plot(df,xinff)%滤波后信号波形y_filter_out=filter(B,1,xin)% Y = FILTER(B,A,X) figure(3)plot(y_filter_out)%滤波后信号频谱yff=fft(y_filter_out);figure(4)plot(df,yff)xin=xin/max(xin);%归一化xto_ccs=round(32767*xin)%取整fid=fopen('input1.dat','w');%打开文件fprintf(fid,'1651 1 0 0 0\n');%输出文件头fprintf(fid,'%d\n',xto_ccs);%输出fclose(fid);。

相关文档
最新文档