dsp数字滤波器c语言窗函数,数字滤波器的设计(DSP课程设计)资料.doc

数字滤波器的设计(DSP课程设计)资料.doc

摘要

在数字信号处理中,数字滤波器是一种被广泛使用的信号处理部件。针对有限长冲激响应(FIR)数字滤波器的原理,讨论了窗函数法设计线性相位FIR数字滤波器的基本思路,介绍了用MATLAool)来设计滤波器的方法及在DSP上的实现。开发环境——实现了达到目标要求的滤波器设计和仿真。

关键词:数字滤波器,

1.设计内容

1.1设计背景

数字滤波是数字信号处理的基本方法。数字滤波与模拟滤波相比有很多优点,它除了可避免模拟滤波器固有的电压漂移、温度漂移和噪声等问题外,还能满足滤波器对幅度和相位的严格要求。DSP(数字信号处理器)与一般的微处理器相比有很大的区别,它所特有的系统结构、指令集合、数据流程方式为解决复杂的数字信号处理问题提供了便利,本文选用TMS320C5作为DSP处理芯片,通过对其编程来实现滤波器。对数字滤波器而言,从实现方法上,有限长冲激响应(FIR滤波器和无限冲激响应(IIR)滤波器之分。由于FIR滤波器只有零点,因此这一类系统不像IIR系统那样易取得比较好的通带与阻带衰减特性。但是FIR系统有自己突出的优点:系统总是稳定的;易实现线性相位;允许设计多通带(阻带)滤波器。其中后两项是IIR系统不易实现的。

已知x1(n)=sin(2*pi*f11*n*T);x2(n)=0.7*sin(2*pi*f12*n*T)

x3(n)=0.5*sin(2*pi*f13*n*T);

x(n) = x1(n)+ x2(n)+ x3(n)

其中:f11=500Hz; f12=2000Hz; f13=4000Hz; fs=10000Hz

要求设计一个基于DSP的FIR高通滤波器,把f11和f12滤掉,保留f13。

FIR高通滤波器的系数由Matlab中的fdatool产生,信号也由Matlab产生。

1.2.2 技术指标:

根据设计要求可以确定如下技术指标:

(1)阻带衰减αp=40dB

(2)采样频率Fs=10000Hz

(3)过渡带宽度1000Hz

1.3设计思路

通过编写MATLAB程序得到信号x(n),并导出数据文件input.dat作为信号处理的输入信号。根据设计任务及技术指标利用MATLAB中的Fdatool工具设计滤波器的系数。在ccs中创建滤波器工程,根据上述得到的滤波器系数及输入信号编写相应的c语言源程序进行编译仿真,得到滤波结果。

1.4相关介绍

1.4.1 MATLAB简介

MATLAB是“矩阵实验室”(MATrix LABoratoy)的缩写,是一种科学计算软件,主要适用于矩阵运算及控制和信息处理领域的分析设计,它使用方便,输入简捷,运算高效,内容丰富,因此很多专家在自己擅长的领域用它编写了许多专门的MATLAB工具包。其中FDATool是一个功能强大的数字滤波器设计与分析工具,它涵盖了信号处理工具箱中所有的滤波器设计方法。利用它可以方便地设计出满足各种性能指标的滤波器,并可查看该滤波器的各种分析波形。

1.4.2 CCS简介

CCS是一种针对TMS320系列DSP的集成开发环境,在Windows操作系统下,采用图形接口界面,提供有环境配置、源文件编辑、程序调试、跟踪和分析等工具。 CCS有两种工作模式,即软件仿真器模式:可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实现和调试。硬件在线编程模式:可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序。

2.FIR滤波器简介

设h ( n) ( n = 0, 1, 2 N - 1)为滤波器的冲激响应,输入信号为x ( n) ,则F IR 滤波器就是要实现下列差分方程:

式(1)就是FIR 滤波器的差分方程。F IR 滤波器的最主要的特点是没有反馈回路,因此它是无条件稳定系统。它的单位脉冲响应h ( n)是一个有限长序列。由上面的方程可见, F IR 滤波算法实际上是一种乘法累加运算,它不断地输入样本x ( n) ,经延时( Z 3 /1)做乘法累加,再输出滤波结果y(n)[1,2,3] 。对式(1)进行Z 变换,整理后可得FIR 滤波器的传递函数为:

由式(2)可以看出, FIR 滤波器的一般结构如图1 所示。

图2-1 FIR 滤波器的一般结构

FIR数字滤波器的设计方法主要有窗函数法和频率抽样设计法,其中窗函数法是基本而有效的设计方法。

3.信号产生程序的设计

3.1信号产生程序

%信号产生程序

%输入信号的三个频率分量

f11=500; %/Hz

f12=2000; %/Hz

f13=4000; %/Hz

fs=10000; %/采样Hz

N=1000 %数据个数

T=1/fs; %采样周期

n=1:N;

%待滤波信

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DSP实验报告 实验一 程序的控制与转移 一、实验目的 1、掌握条件算符的使用。 2、掌握循环操作指令(BNAZ)和比较操作指令(CMPR) 二、实验设备 计算机 三、实验内容 编写程序,实现计算y=的值。 四、实验步骤 1、点击桌面CCS 2('C5000)图标,运行CCS软件。 2、新建一个项目:点击Project-New,将项目命名为example1,并将项目保存在自 己定义的文件夹下,注意文件夹一定要用英文名,不要将文件夹取名为中文名,因为CC S软件不能识别以中文命名的文件夹。 3、新建一个源文件:点击File-New-Source File可以打开一个文本编辑口,点击保存按键,保存在和项目相同的一个文件夹下面 (example1),保存类型选择*.ASM(如果源文件是C语言编写的,保存类型选择*.C,本实 验中的例程是使用汇编语言编写的,所以选择*.ASM为保存类型),我们在这里将保存名 字命名为example1.asm 。 4、在项目中添加源文件:在新建立了一个源文件以后,要想使用CCS编译器对该源文 件进行编译还需要将源文件添加到项目中去。添加方法是在工程管理器中右键单击exam ple1.pjt,在弹出的菜单中选择Add Files,然后将刚才建立的example1.asm文件添加到该项目中去。 5、编写源程序 6、编写链接配置文件: 只有汇编源程序是不够的,一个完整的DSP程序至少包含三个部分:主程序(*.asm)、 中断向量表(vectors.asm)、链接配置文件(*.cmd)。这里先介绍一下链接配置文件。 链接配置文件有很多功能,这里先介绍最常用的也是必须的两条:1.存贮器的分配 2.标明程序入口。 由于每个程序都需要一个链接配置文件,每个程序的链接配置文件根据实际情况的需 要都略有不同,下面就为本实验的程序编写一个链接配置文件,其它实验的链接配置文 件都可以参考此例来完成: /*example1.cmd */ vectors.obj example1.obj -o example1.out -m example1.map -estart MEMORY { PAGE 0: EPROM:org=0090H len=0F70H VECS: org=0080H len=0010H PAGE 1: SPRAM:org=1000H len=1000H DARAM:org=2000H len=2000H } SECTIONS { .text :>EPROM PAGE 0 .data :>EPROM PAGE 0 .bss :>SPRAM PAGE 1 STACK :>DARAM PAGE 1 .vectors :>VECS PAGE 0 } 7、编写中断向量表文件 /* vectors.asm */ .title "vectors.asm" .ref start .sect ".vectors" B start .end 8、对项目进行编译和链接: 把example1.asm、vectors.asm、example1.cmd依次添加到项目后,点击Project-C ompile File,在项目编译成功之后点击 Project-Build选项对该项目进行链接,生成*.OUT文件。 9、装载可执行文件: 要让程序代码在DSP内部运行必需将生成 的*.OUT文件装载到DSP内部,装载方法 是点击:File-Load Programe再选择生成的 example1.out文件就可以将程序装载到DSP 的内部存储器中。 10、运行程序并查看结果 五、源程序如下: .title "example1.asm" .mmregs STACK .usect "STACK",10H ; .bss x,5 ; .bss y,1 .def start .data table: .word 10,20,3,4,5 ; .text start: STM #0,SWWSR ; STM #STACK+10H,sp ; STM #x,AR1 ; RPT #4 ; MVPD table,*AR1+ ; LD #0,A ; CALL SUM ; end: B end SUM: STM #x,AR3 ; STM #4,AR2 ; loop: ADD *AR3+,A ; BANZ loop,*AR2- ; STL A,*(y) ; RET .end 六、实验结果 实验二 加减法和乘法运算 一、实验目的 掌握加减法和乘法运算指令。 二、实验设备 计算机 三、实验内容 编写程序,分别实现计算z=x+y-w、y=mx+b、y=。 四、实验结果 1 y=mx+b 源程序如下: . .title "example3.asm" .mmregs STACK .use
6.1.3、退出……………………..……………………………….…5 6.2、编辑…………………………..…………………………………5 6.2.1、灰度………………………..………………….……………5 6.2.2、亮度………………………..………………….……………6 6.2.3、截图…………………………..……………….……………7 6.2.4、缩放…………………………..…………….………………7 6.3、旋转…………………………………..…………………………9 6.3.1、上下翻转…………………….…………….………………9 6.3.2、左右翻转………………….…………….…………………9 6.3.3任意角度翻转…………………………….…………………9 6.4、噪声………………………………..…………..………………10 6.5、滤波……………………………………..………..……………10 6.6、直方图统计……………………………………………………11 6.7、频谱分析………………………………………..…..…………12 6.7.1、频谱图………………………… …… …… ……….……12 6.7.2、通过高通滤波器………………… …… .……………….12 6.7.3、通过低通滤波器……………………………….. ……….13 6.8、灰度图像处理………………………………………… . …….14 6.8.1、二值图像……………………………………………….. .14 6.8.2、创建索引图像……………………………………… .…..14 6.9、颜色模型转换……………………………..… ..……………14 6.10、操作界面设计……………………………………..…………15

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值