IIR数字滤波器的CAD设计及DSP实现.doc

iir数字滤波器的cad设计及dsp实现

收藏

压缩包内文档预览:(预览前20页/共39页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:516452    类型:共享资源    大小:382.98KB    格式:RAR    上传时间:2015-11-12 上传人:QQ28****1120 IP属地:辽宁
6
积分
关 键 词:
机械毕业设计
资源描述:
iir数字滤波器的cad设计及dsp实现,机械毕业设计
内容简介:
IIR 数字滤波器的 CAD 设计及 DSP 实现 摘 要: 介绍了数字滤波器的基本概念、技术要求和性能指标,给出了 IIR 数字滤波器的设计方法,并用 MATLAB 软件设计出了几种常用的数字滤波器。讨论了数字滤波器的实现结构,并通过 CCS5000 以 TMS320C54X DSP 为目标器件,以从方波中提取同频率正弦信号为滤波任务,完成了 IIR 数字滤波器的 DSP 实现,并对实验结果进行了分析讨论。 关键词: IIR 数字滤波器; MATLAB; DSP ntsThe design and realization of IIR digital filter by using CAD software and DSP Abstract: The concept, specification and performance index of digital filter are introduced, then the design method of digital filter is given, several kind of commonly digital filter are designed by using MATLAB software. The realization structure of digital filter is presented, With CCS5000 and using TMS320C54X DSP as the goal component, the IIR digital filter is designed, its function is getting the same frequency sine signal from the square-wave. Key word: IIR digital filter; MATLAB; DSP nts目 录 0 引言 4 1 数字滤波器概述 4 1.1数字滤波器的分类 4 1.2数字滤波器的技术要求和性能指标 5 1.3 IIR数字滤波器的设计方法 7 2 基于 MATLAB 的 IIR 数 字滤波器设计 8 2.1 IIR数字滤波器的双线性变换设计法 8 2.2 基于 MATLAB 函数直接设计 IIR数字滤波器 9 2.3 利用 MATLAB 的 FDATool工具实现 IIR 数字滤波器的设计 12 2.4 IIR数字滤波器的实际应用举例 13 3 IIR 数字滤波器的 DSP 实现 15 3.1 IIR滤波器的结构分析 15 3.2 IIR滤波器的实现方法 16 3.2.1 直接型 IIR数字滤波器的实现方法 17 3.2.2 直接型 IIR数字滤波器的实现方法 18 3.3软件开发环境 Code ComposeStudio (CCS) 19 3.3.1 CCS 简介 19 3.3.2 设计举例 20 结束语 22 参考文献 23 谢辞 24 附录 25 nts0 引言 随着计算机和信息技术的发展,数字信号处理技术已形成一门独立的学科系统 ,并 围绕着理论、现实和应用三个方面迅速发展。作为数字信号理论,一般是指利用经典理论(如数字、信号与系统分析等)作为基础而形成的独特 的信号处理理论,以及各种快速算法和各类滤波技术等基础理论。由此在各个应用领域 ,如语音与图象处理、信息的压缩与编码、信号的调制与调解、信道的辨识与均衡、各种智能控制与移动通讯等 , 都延伸出各自的理论与技术,可以说凡是用计算机来 及其技术 处理各类信号的场合都引用了数字信号处理的基本理论、概念和技术。 数字滤波器( DF, Digital Filter)在数字信号处理中起着重要的作用,滤波是信号处理的基础,滤波运算是信号处理中的基本运算,在信号的检测与参数的估计等方面,数字滤波器是使用最为广泛的一种线形系统。因此滤波器 的设计问题也是数字信号处理中的基本问题。本文介绍了 IIR数字滤器的设计原理、步骤及 MATLAB设计方法,并通过实例讨论了 IIR数字滤器的 DSP实现。 1 数字滤波器概述 数字滤波器是数字信号处理的重要组成部分,所谓数字滤波器是指输入输出均为数字信号,通过一定运算关系改变输入信号所含频率成分相对比例或者滤除某些频率成分的器件。因此它与模拟滤波器的概念是相同的,只是信号的形式和实现滤波的方法不同,但数字滤波器具有比模拟滤波器精度高、体积小、重量轻、稳定、灵活和不要求阻抗匹配以及实现模拟滤波器无法实现的特殊滤波功 能等优点,因而被广泛应用。 1.1 数字滤波器的分类 数字滤波器按照不同的分类方法,可以有多种分类,但总起来可以分为两大类。一类被称为经典滤波器,即一般的滤波器,其特点是输入信号中有用的频率成分和希望滤除的频率成分各占有不同的频带,通过一个合适的选频滤波器就可以达到滤波的目的。这种滤波器只能处理输入信号和干扰信号的频带互不重叠的情况,而对于干扰信号和输入信号有频率重叠的情况,这种滤波器就无能为力了,这时就需要采用另一类的滤波器即现代滤波器,这种滤波器能够按照随机信号内部的一些统计分布规律,从干扰中最佳地提取有 用信号。例如卡尔曼滤波器,维nts纳滤波器、自适应滤波器等就属于这种滤波器。 与模拟滤波器类似, 一般 数字滤波器按频率特性划分为低通、高通、带通、带阻、全通等 滤波器。需要注意的是这种 全通 理想滤波器是不可能实现的,因为它们的单位脉冲相应均是非因果而且是无限长的,所以我们只能按照某些准则设计滤波器,使之尽可能逼近它,这种理想的滤波器可作为逼近的标准用。另外,数字滤波器的 传输函数 jHe 都是 周期性的,周期为 2。滤波器的低频通带在2的整数倍附近处,而高频通带在的奇数倍附近 处,这一点是它和模拟滤波器的不同之处。 按实现的网络结构或者单位脉冲响应的特性,数字滤波器可分为无限脉冲响应( IIR, Infinite Response)滤波器和有限脉冲响应( FIR, Finite Response)滤波器。它们的系统函数分别为 : 01()1MrrrNkkkbzHzaz(1.1) 10( ) ( )N nnH z h n z (1.2) 1.1式中的 H(z)称为 N阶 IIR滤波器函数, 1.2式中的 H(z)称为 (N-1)阶 FIR滤波器函数。 二者相比,通常 IIR数字滤波器可用较低阶数获得高的选择性,并且执行速度快,所用存储单元更少,所以既经济又高效。本文主要介绍 IIR数字滤波器的MATLAB设计及 DSP 实现。 1.2 数字滤波器的技术要求和性能指标 一般来说,滤波器的技术要求包括下面几个方面: 1.滤波器的截止频率: 滤波器类型 通带技术要求 阻带技术要求 幅频特性 低通 通带上限频率 p 阻带下限频率 s 高通 通带下限频率 s 阻带上限频率 p nts带通 通带上限频率u通带下限频率l下阻带上限频率1s上阻带下限频率2s带阻 上通带截止频率u下通带截止频率l阻带下限频率1s阻带上限频率2s2.通带阻带的容限:滤波器中带通带阻的容限p与s的具体技术指标 ,往往由容许的最大衰减p及阻带应达到的最小衰减s给出。通带及阻带的衰减p,s分别定义为: 02 0 l g 2 0 l g ppjjp jHe HeHe 02 0 l g 2 0 l g ssjjs jHe HeHe 式中均假定 0jHe 已被归一化为 1。 3 采样频率:由于 在数字滤波器的设计中是用弧度表示的,而实际上给出的频率要求往往是频率 f ,单位为 Hz,因此在数字滤波器的设计中还应给出采样频率sf。 滤波器的性能指标往往以频率响应的幅度特性的允许误差来表征。以低通滤波器特性为例(如图一),频率响应有通带、过渡带及阻带三个范围。 在通带内: 11 jwHe 1 0 p在阻带中: jwHe 2s 其中p为通带截止频率 ,s为阻带截止频率,1为通带误差 ,2为阻带误差。从p到s称为过渡带,一般是单调下降的。当幅度下降到 0.707 时,c,此时 3p dB ,称c为 3dB通带截止频率。p、s和c统称为边界频率,它们在滤波器的设计中是非常重要的。 nts 图 1 低通滤波器幅频特性 1.3 IIR 数字滤波器的设计方法 一个 IIR数字滤器可以用系统函数表示为 NkkkMKkkzazbzH101(1.3) 设计 IIR 数字滤波器也就是要确定系统函数,即求( 1.3)式中的ka和kb,也就是要找到一组能满足特定滤波器要求的系数向量 A和 B. IIR 数字滤波器具有无限宽冲激响应,因而与模拟滤波器相匹配。又模拟滤波器的设计可借助于许多图表与公式,因此设计数字滤波器可按技术要求先设计一个模拟滤波器再按一定转换关系,将模拟滤波器转换成相应的数字滤波器,这过程需要两种变换( 1)频带变换( 2)模 /数变换,根据这两种变换的先后次序,相应地有两种设计方法。 第一种方法: 第二种方法: 模 /数变换的方法很多,但在工程上比较常用的是脉冲响应不变法和双线性nts变换法。脉冲响应不变法的优点是其频率坐标变换是线性的,即 = ,缺点是会产生频率混叠现象,对于双线性变换法,它不可能产生频率混叠现象,这是它与脉冲响应不变法相比的最大优点,因此,大多情况下都采用双线形变换法。 双线性变换的关系可以定义为:11112 zzTs或者等效表示为 2/2/Tsz Ts 基于双线形变换的 IIR数字滤波器设计的基本步骤如下: ( 1)根据任务,先确定性能指标,在设计一个滤波器之前,首先根据工程实际需要确定滤波器的技术指标:边界频率 p,s,s阻带最小衰减s和通带最大衰减p; ( 2)将数字滤波器的技术指标转换成模拟滤波器的技术指标,主 要是边界频率1pW,sW的转换, ( 3)用模拟滤波器的设计方法得到模拟滤波器的传输函数;可借助巴特沃思( Butterworth)滤波器、切比雪夫( Chebyshev)滤波器等,这些滤波器都有严格的设计公式,现成的曲线和图表供设计人员使用; ( 4)映射实现:利用双线形变换法将模拟滤波器 ()aHs转换成数字滤波器()Hz; ( 5)用适当的软硬件技术实现。包括采用计算机软件、数字滤波器硬件或者软件结合。 2 基于 MATLAB 的 IIR 数字滤波器设计 MATLAB 的意思是矩阵实验室, MATLAB 语言在矩阵运算和数值运算等方面具有强大的功能,而且其界面非常直观、简洁,人机交互性好,目前它已经覆盖了几乎所有的科学研究和工程领域,如数字信号处理、数字图像处理、仿真技术、自动控制、神经网络、小波分析等。同样,用 MATLAB 语言也可以实现滤波器的设计,而且, MATLAB 的信号处理工具箱中的 FDATool 就是专门进行滤波器设计和谱分析的,它使原 来繁琐的程序设计简化成函数的调用,使滤波器的设计更为简便。 2.1 IIR 数字滤波器的双线性变换设计法 这种方法设计方法的步骤是先设计模拟滤波器,再通过 MATLAB 函数将模拟nts滤波器转化为数字滤波器,在 MATLAB 中,可以通过系统设定的函数来直接实现双线性变换,既 bilinear 函数,其调用格式为: Bz,Az=bilinear(B,A,Fs); 设计举例 1: 使用双线形 Z 变换法设计一个低通数字滤波器,给定技术指标为pf=150Hz,sf=350Hz,p=3dB, s=30dB, 抽样频率sF=1000Hz fp=100;fs=300;Fs=1000; rp=3;rs=30; wp=2*pi*fp/Fs; ws=2*pi*fs/Fs; Fs=Fs/Fs; 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,Fs/2) h,w=freqz(bz,az,256,Fs*1000); plot(w,abs(h); grid on; 运行结果 n = 3 wn = 0.6207 bs = 0.1323 as = 1.0000 1.0191 0.5192 0.1323 bz = 0.0495 0.1486 0.1486 0.0495 az = 1.0000 -1.1619 0.6959 -0.1378 nts0 50 100 150 200 250 300 350 400 450 50000 . 10 . 20 . 30 . 40 . 50 . 60 . 70 . 80 . 91图 2 基于双现性变换法设计的数字滤波器的幅频相应曲线 2.2 基于 MATLAB 函数直接设计 IIR 数字滤波器 MATLAB工具箱中提供了几个直接设计数字滤波器的函数,它们使 IIR数字滤波器的设计变得更简单,这些函数有 butter, cheby1, cheby2, ellip,Yule-Wale, prony, lpc, stmcb,以及 infreqz,我们可由上述函数直接设计出巴特沃思,切比雪夫,椭圆等各种滤波器,下面以 butter函数为例介绍基于巴特沃思法直接设计 IIR数字滤波器。 在 MATLAB 中可利用 butter 函数直接设计各种形式(低通、高通、带通、带阻型)的数字滤波器它的语法为: b,a =butter(N,Wn) b,a =butter(N,Wn, ftype ) z,p,k =butter( ) A,B,C,D =butter( ) 该函数有三种输出形式:传递函数形式、零极点增益形式及状态方程形式。 b,a =butter(N,Wn)用于设计阶次为 N,截止频率为 Wn 的低通数字滤波器,截止频率 Wn 是指滤波器幅度下降到 -RpdB 时的频率,它是归一化的频率,在 0到 1 之间取值,其中 1 对应于奈奎斯特频率即二分之一采样频率 2/sn ff 。它的返回值 b,a分别表示阶次为 N+1的数字低通滤波器系统传递函数的分子和分母多项式系数向量 。系统传递函数的表达式可描述为: nts NNzNazaa zNbzbbzA zBzH 1110 10 其中 a(0)=1. b,a =butter(N,Wn, ftype )用于设计高通、带通或带阻滤波器,并由参数ftype确定滤波器的形式。 ( 1)当 ftype=high 时,为高通滤波器,此时滤波器的阶次为 N: ( 2)当 ftype=band(默认值 )时,为带通滤波器,此时 Wn= wl,wh ,返回的 b,a所构成的滤波器是阶次为 2N的带通滤波器,带通范围为 wl ws=1200/12500 ws =0.0960 wp=2800/12500 wp =0.2240 n,wn=buttord(ws,wp,30,-45) n =2 wn =0.0175 b,a=butter(n,wn) b =0.0007 0.0015 0.0007 a =1.0000 -1.9222 0.9251 freqz(b,a,512,25000) 求得系数为 b =0.0007 0.0015 0.0007 a =1.0000 -1.9222 0.9251 nts( 2)利用直接 型结构编写 IIR低通滤波器实现程序 这里我们还是在 DARAM 中开辟四个循环缓冲区,用来存放变量和系数,并 采用循环缓冲区方式寻址。四个循环缓冲区的结构如下图所示。 其中循环区长度为 3,步长为 1,依次递减 ,输入数据由 new_ad 传送到寄存器 A,再由寄存器 A 传送到缓冲区 ,程序中遇到系数2 1.9222a 需要 定标的问题 ,这里我们采用分步计算的方法解决 ,即在程序中先定义 2/2a再使指针地址不变利用两次加法运算来实现2 ( 2)a y n,这样仅仅多用了一个机器周期就解决了问题,使所有系数保持了精度,实 现 IIR低通滤波器的程序片段如下 : ld new_ad,-2,a stm # -1,ar0; stm # 3, bk stl a,*ar3 mpy *AR3+0%,*AR2+0%,A MAC *AR3+0%,*AR2+0%,A MAC *AR3,*AR2,A MAC *AR4+0%,*AR5+0%,A MAC *AR4,*AR5,A MAC *AR4+0%,*AR5+0%,A MAR *AR5+0% ( 3)利用 CCS 进行仿真开发 , 然后将程序加载到 TMS320C5402 评估板上实时运行, 并通过图形仿真工具观察输入输出信号的波形 ,以此 实现 设计 要求。 实现步骤入下 : 1. 连接试验箱 ,短接 JP12,使得 DES5402PP 的信号输出通道与输入通道相连; 2. 启动 CCS,并新建工程文件 ,输入汇编程序并存为 .asm 文件 ,输入链接命令文件并存为 .cmd文件 ,再依次将他们添加到工程文件中; 3. 在 asm 文件中设置断点 ,以便观察到连续更新的滤波输出 .在 View 选项nts中设置输入和输出的图形显示窗口; 4. 使用 Build 选项完成编译、链接 ,然后将自动生成的 .out 文件装入DES5402PP 板 ,最后运行程序 ,观察输入输出信号波形。 运行结果如下图所示 : ( 4)滤波结果分析:从运行结果可以看出,输出波形还不是正规的正弦波,有明显的直流分量和残余频率成分,有以下几个方面原因: IIR 数字滤波器具有无限长的单位脉冲响应,在结构上存在反馈回路,具有递归性,因此 IIR数字滤波器的输出不仅与输入有关而且与过去的输出有关,由于定点 DSP和 CPU的 32bit结构,在运算的过程中会对序列进行舍 入处理,这种有限字长的效应有时会引起寄生震荡; IIR 数字滤波器只有当所有的极点在单位圆内时才是稳定的,事实上,对于一般设计的滤波器是不满足这一点的,本例中的滤波器就是不稳定的,它有一个极点在单位圆外; IIR 数字滤波器虽然可以用较低的阶数获得较高的选择性,且所用存贮单元少,经济高效,但这个高效率是以相位的非线性为代价的,因此 IIR数字滤波器存在相位的非线性问题; 定点 DSP 要求所输入的数据的绝对值是小于一的,而事实上滤波器的系数 b遍大于一 , 因此会遇到系数定标的问题,虽然可以用分步计算的方法保持精度,但是 误差不可避免; 所选用的滤波器只有二阶,阶数过低,其过渡带太宽,所以滤波器不能有效nts地滤除干扰频率成分,滤波效果不太理想; 实验设备本身存在不稳定现象。 ( 5)解决方法:可以采用更高阶的 IIR 数字滤波器来实现提取方波中的同频率正弦波,由于高阶 IIR数字滤波器可以由若干个二阶基本节相级联或并联构成,所以可以调整系数和缓冲区,依次实现各阶滤波器,这时候若采用改进的直接 型 结构既可以节省存储单元而且还能避免溢出问题。 4 结束语 数字化是信息时代发展的方向。因此,数字信号处理技术应成为每一个电子信息科学工作者必须掌 握的重要知识。 数字滤波器做为数字信号处理的主要组成部分有着十分广泛的应用,而且 滤波器的设计和实现问题是数字信号处理中的基本问题,因此掌握滤波器的设计和实现问题是具有现实意义的。 参考文献: 1丁玉美,高西全,数字信号处理 M 第二版 西安:西安电子科技大学出版社, 2000 2邹彦, DSP 原理及应用 M 北京:电子工业出版社 3飞思科级产品研发中心, MATLAB7 辅助信号处理技术与应用 M 北京:电子工业出版社 2005.3 4张立材,数字信号处理 M 北京:北 京邮电大学出版社 2003 nts 谢 辞 在本文的撰写过程中,我受到了老师和同学们的大力帮助,我的指导老师段旭朝老师在文章的整体思路和结构框架方面给了我很大的帮助,并在百忙中抽时间不厌其烦地为我一遍遍地修改论文,也是他一直鼓励我最终完成实验部分内容,穆美好老师在我做实验时耐心地帮我修改程序,查找错误,也给里我很大的帮助,最终我在他们的帮助下成功做出实验,完成论文,在此我向他们表示崇高nts的敬意和由衷地感谢! nts附录: .title test vc5402bootloader. .def _c_int00 .mmregs gpiocr .set 3ch gpiosr .set 3dh dxr10 .set 23h drr10 .set 21h spsa0 .set 38h spcr10 .set 39h spcr20 .set 39h xcr10 .set 39h pcr0 .set 39h dxr11 .set 43h spsa1 .set 48h spcr11 .set 49h spcr21 .set 49h xcr11 .set 49h pcr1 .set 49h srgr1 .set 49h srgr2 .set 49h swcr .set 2bh timer_count .set 060h mcbsp_init .set 061h wave_ptr .set 062h is_new_data .set 063h new_ad .set 064h out_wave_ptr .set 065h t_ar2 .set 066h t_ar3 .set 067h temp .set 068h t_ar4 .set 069h t_ar5 .set 06ah wave_buf .set 0900h out_wave_buf .set 01000h N .set 2 ; IIR taps iir_coefa_buf .set 100h ; IIR coef buffer iir_coefb_buf .set 080h ntsiir_data .set 200h iir_counted_data .set 280h .text ;- ; interrupte vector table !中断向量表 ;- rs b _c_int00 nop nop nmi b _ret nop nop sint17 b _ret nop nop sint18 b _ret nop nop sint19 b _ret nop nop sint20 b _ret .word 0,0 sint21 b _ret .word 0,0 sint22 .word 01000h .word 0,0,0 sint23 .word 0ff80h .word 0,0,0 sint24 .word 01000h .word 0,0,0 sint25 .word 0ff80h .word 0,0,0 sint26 .word 01000h .word 0,0,0 sint27 .word 0ff80h .word 0,0,0 sint28 .word 01000h .word 0,0,0 sint29 .word 0ff80h .word 0,0,0 sint30 .word 01000h .word 0,0,0 ntsint0 b _ret nop nop int1 b _ret nop nop int2 b _ret nop nop tint b timer nop nop brint0 b receive nop nop bxint0 bd transmit nop nop trint b _ret nop nop txint b _ret nop nop int3 b _ret nop nop hpint b _ret nop nop q26 .word 0ff80h .word 0,0,0 q27 .word 01000h .word 0,0,0 q28 .word 0ff80h .word 0,0,0 q29 .word 01000h .word 0,0,0 q30 .word 0ff80h .word 0,0,0 q31 .word 01000h .word 0,0,0 ;- ; end of interrupte vector table ! nts;- _c_int00: stm #2020h,pmst ; vector table start: 0x2000 ssbx intm ; close all int ! (ssbx intm) ssbx sxm ; extend sign ! ssbx frct ; faction multiply stm #10h,26h ; stop TIMER0 ! stm #10h,36h ; stop TIMER1 ! stm #0ffh,sp ; sp= 0x0ff ld #0,dp ; dp=0 stm #0ffffh,ifr ; clear all int ! stm #20h,imr ; bit5-BXINT0, bit4-BRINT0, enable BXINT0 stm #02492h,swwsr ; all 2 waits ! stm #0,swcr ;/*- ; The following codes switch to 100MHz clock ! ;-*/ stm #0,58h wait_pll: ldm 58h,a and #1,a bc wait_pll,aneq stm #97ffh,58h ; switch pll*10 - 90M clk rpt #1000 nop ;* ; initalize RAM, Variable.初始化寄存器 ;* stm #wave_buf,ar6 stm #1,ar0 rpt #24 mvpd wave_data,*ar6+0 ; move wave data to wave_buf - 0x6000h stm #wave_buf,wave_ptr ; save wave bufferptr stm #out_wave_buf,out_wave_ptr ; save out wave bufferptr, because use ; circular address, so when save out_wave ; date,must + ! stm #iir_coefa_buf,ar6 rpt #N mvpd iir_coefa,*ar6+ ; move iir_coefa to iir_coefa_buf(in data mem) nts stm #iir_coefa_buf,t_ar5 stm #iir_coefb_buf,ar6 ; move iir_coefb to iir_coefb_buf(in data mem) rpt #N mvpd iir_coefb,*ar6+ stm #iir_coefb_buf,t_ar2 ; stm #iir_counted_data,ar6 ; move iir_counted to iir_counted_data(in data mem) rpt #N mvpd iir_counted,*ar6+ stm #iir_counted_data,t_ar4 stm #iir_data,ar6 ; move iir_init to iir_data (in data mem) rpt #N mvpd iir_init,*ar6+ stm #iir_data,t_ar3 stm #0aa55h,mcbsp_init ; when mcbsp_init=0xaa55, transmit for init ac01 stm #5,timer_count ; init variable timer_count ! stm #0,is_new_data ; if is_new_data =1 , has new AD data by slave ac01 ! stm #1000h,ar0 stm #1800h,ar5 stm #400h,bk ld *ar0,t ld #0,b ;* ; The following codes are used to initalize McBSP0 ! ;* stm #0,spsa0 ; choose SPCR10 stm #2000h,spcr10 ; receive sign_extend in DRR stm #1,spsa0 ; choose SPCR20 stm #0c0h,spcr20 ; fs - int ! stm #2,spsa0 ; choose RCR10 stm #40h,39h stm #3,spsa0 ; choose RCR20 stm #0,39h stm #4,spsa0 ; choose XCR10 stm #40h,xcr10 stm #5,spsa0 ; choose XCR20 stm #0,39h stm #0eh,spsa0 ; choose PCR0 nts stm #0dh,pcr0 ; fs is low active, rise edge of clkx, falling edge ; of clkr stm #7h,spsa0 stm #8000h,39h rpt #0ffffh nop stm #00h,dxr10 ldm 22h,a stm #1,38h stm #0c1h,39h ; start McBSP0 send ! ld #603h,a rsbx intm ; enable all int ! ;- ; The following codes are initalized AC01, ALL AC01 setup same !初始化 AC01 ;- idle 1 idle 1 idle 1 idle 1 ; reset two AC01 by software ! ld #600h,a idle 1 ; wait for int . ld #3,a idle 1 ; send #3 ld #00105h,a ; fs=10M/2/A/B= 25k ; flp=10M/2/40/A= 25k (all pass) ; fhp=fs/200= 125Hz (not use !) ; A=05,B=40(0x28) idle 1 ; send 1th regs - 05h ld #3,a idle 1 ; send #3 ld #00228h,a idle 1 ; send 2th regs - 28h ld #3,a idle 1 ; send #3 ld #00300h,a idle 1 ; send 3th regs - 00h ld #3,a idle 1 ; send #3 ld #00405h,a nts idle 1 ; send 4th regs - 05h (AD & DA 0 dB) ld #3,a idle 1 ; send #3 ld #00505h,a idle 1 ; send 5th regs - 05h (highpass filter disable) ld #3,a idle 1 ; send #3 ld #00600h,a idle 1 ; send 6th regs - 00h ld #3,a idle 1 ; send #3 ld #00700h,a idle 1 ; send 7th regs - 0 ld #3,a idle 1 ; send #3 ld #800h,a idle 1 ; send 8th regs - 0 ld #0h,a stm #0,38h stm #2001h,39h ; start MCbsp0 receive ! stm #30h,imr ; bit5-BXINT0, bit4-BRINT0, enable BXINT0 ;* ; The following codes are used to initalize TIMER ! 初始化定时器 ;* stm #10h,tcr ; stop TIMER ! stm #0ffffh,prd ; stm #0fh,tcr ; TIMER start, each about 100HZ . orm #8,imr ; enable TIMER INT ! again: bitf is_new_data,#1 ; test is_new_data = 1 ? cc iir,tc ; =1, then call fir ! new AD data in new_ad(0x64) b again ;* ; The following codes are serived for McBSP0 transmit ! ;* transmit: pshm st1 pshm st0 pshm bk nts pshm ar7 pshm ah pshm al cmpm mcbsp_init,#0aa55h bc init,tc stm #25,bk ; each AC01 has 25 dots to D/A ! mvdm #wave_ptr,ar7 ; restore wave buffer ptr ! nop ld *ar7+%,a nop stlm a,dxr10 ; send wave data ! Master AC01 make source wave, ; Slave AC01 make filter result wave ! bd wave_make_end mvmd ar7,#wave_ptr ; save wave buffer ptr ! init: stlm a,dxr10 bitf dxr10,#800h ; if setup last reg of AC01, set mcbsp_init=0 ! bc wave_make_end,ntc ; not equal ,jump ! stm #0,mcbsp_init ; when mcbsp=0 or 1, transmit for make wave ! wave_make_end: popm al popm ah popm ar7 popm bk popm st0 popm st1 _ret: rete ;* ; The following codes are serived for McBSP0 receive
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:iir数字滤波器的cad设计及dsp实现
链接地址:https://www.renrendoc.com/p-516452.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!