




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第8章 应用实例分析 教学内容及要求 教学内容:教学内容:本章介绍了几个DSP的应用实例,具体包括FIR 滤波器、IIR滤波器、快速傅里叶变换和信号发生器等几个部 分。每一部分均给出了较详细的原理说明,并对具体实现过程 给出了详细分析,而且均提供了较完整的实现代码供参考。 教学要求:教学要求:本章要求学生了解每一个实例的基本原理和实 现过程,能够在已有代码的基础上,完成相关课题的实现任务, 达到举一反三的效果。 本章主要内容 F8.1 FIR滤波器的C54X实现方法 F8.2 IIR滤波器的C54X实现方法 F8.3 快速傅里叶变换(FFT)的C54X实现方法 F8.4 正弦和余弦信号发生器C
2、54X实现方法 8.1 FIR滤波器的C54X实现方法 ) 1(),.,2(),1 (),0(Nhhhh ) 1(),.,2(),1 (),0(Nhhhh 的冲击响应系数。因此可使用Matlab语言实现这一过程, 得到滤波器的冲击相应系数;再将冲击响应系数应用到DSP 汇编语言程序中,以实现上面的计算公式,就可以实现FIR 滤波器,达到滤波效果。图8.1是N阶FIR滤波器的方框图。 图中表明了实现滤波器的整个过程。 图8.1 N阶FIR滤波器的原理图 8.1.2 FIR滤波器程序设计 1. Matlab语言编程 用Matlab语言下的FDA工具箱来设计FIR滤波器,具体的使 用方法可以参考相关
3、书籍,这里给出FIR滤波器的程序以及 相应的结果。 functiondes,wt=taperedresp(order, ff, grid, wtx, aa) nbands=length(ff)/2: des=grid: wt=grid: for i=1:nbands k=find(grid=ff(2*i-1)&grid=ff(2*i): npoints=length(k): t=0:npoints-1: des(k)=linspace(aa(2*i-1),aa(2*i),npoints): if i=1 wt(k)=wtx(i)*(1.5+cos(t)*pi/(npoints-1): else
4、if i=nbands wt(k)=wtx(i)*(1.5+cos(pi+(t)*pi/(npoints-1): else wt(k)=wtx(i)*(1.5-cos(t)*2*pi/(npoints-1): end end b,err,res=gremez(53,0 0.3 0.33 0.77 0.8 1, taperedresp,0 0 1 1 0 0, 2 2 1): H,W,S=freqz(b,1,1024): S.plot = mag:S.yunits=linear: freqzplot(H,W,S): 上述程序实现了一个最接近矩形的带通FIR滤波器。程 序中使用的Matlab内部函
5、数有linspace、gremez、freqz、 freqzplot等,这些函数的说明请参考Matlab的帮助文件。 程序运行后的结果如图8.2所示。从图中可以看出,带通宽 度基本上接近矩形,滤波器的最大纹波系数小于0.1,阻带 很大。 图8.2 矩形带通FIR滤波器幅频图 2. DSP编程 DSP编程能实现FIR滤波器的多种实现方法,既可以使用MAC 指令的循环寻址方式实现,也可以使用指令FIRS实现。 FIRS指令是C54X系列汇编语言中专门为FIR滤波器设计的, 可以提高FIR滤波器的运行时间,完成一些对实时性要求比 较高的滤波器。 8.2 IIR滤波器的C54X实现方法 不同结构的数字
6、滤波器来实现而不影响系统总的传输函数。 图8.3是四阶直接型IIR滤波器的结构。 图8.3 四阶直接型IIR滤波器的结构 8.2.2 IIR8.2.2 IIR滤波器实现举例滤波器实现举例 例例 要求设计抽样频率为1200Hz、截止频率为200Hz的高通 滤波器。设计IIR滤波器实现上述要求。输入信号频率为 100Hz和300Hz的合成信号,目的是通过所设计的滤波器将 100Hz的信号滤掉,余下300Hz的信号成分,达到滤波的效 果。 1. 1. 滤波器的滤波器的MatlabMatlab语言设计语言设计 在Matlab中使用滤波器设计工具箱(FDA)来设计滤波 器,首先打开Matlab,在命令框
7、中输入FDAtool,将出现滤 波器设计工具箱。图8.4是打开的滤波器设计的主页面,在 图8.4中通过输入有关滤波器的参数可以设计各种满足用户 要求的滤波器。 图8.4 滤波器设计的主界面 图8.4中所设计IIR型的3阶切比雪夫I型高通滤波器的 抽样频率(Fs)为1200Hz,截止频率(Fpass)为200Hz。图 中中间显示的数据为设计好的滤波器参数。 图8.5、图8.6、图8.8、图8.8、和图8.9分别对应滤波 器的频率特性图、冲激响应特性图、阶跃特性图、零极点 示意图和结构示意图。 图8.5滤波器的频率特性图 图8.6滤波器的冲击响应特性图 图8.7 滤波器的阶跃响应特性图 图8.8滤
8、波器的零极点示意图 图8.9直接I型滤波器结构示意图 2 2 从从MatlabMatlab语言转换成通用语言语言转换成通用语言 从使用Matlab语言设计出滤波器的参数之后,紧接着 需要编写通用语言,以便向DSP所需要的汇编语言转换。也 可以直接使用C语言,然后调用CCS自带的C语言转换成汇编 语言,但一般情况下,滤波器对实时要求比较高,而整个 滤波器的程序编写也不是很大,所以建议采用汇编语言编 写。 滤波器设计的第二步需要编写通用的语言,本书使用 Matlab语言编写,如下所示。 clear all: %清寄存器值 clf: % 清屏 N=256: %数据点数 fs=1200: % 采样频率
9、 dt=1/fs: for k=1:N: f1=75: %信号频率 f2=300: %信号频率 y(k)=sin(2*pi*f1*k*dt)+sin(2*pi*f2*k*dt):%产生信号 end lp=200: %截止频率 wn1=2*lp/fs: %函数的参数 z1,p1,k1 = CHEBY1(3,0.5,wn1,high): %滤波器的 极零点表示 B,A = CHEBY1(3,0.5,wn1,high): % 滤波器的传递函数表示 yy1(1)=0: yy1(2)=0: yy1(3)=0: b(1)=0.3236: b(2)=-0.9707: b(3)=0.9707:b(4)=- 0
10、.3236: a(1)=1: a(2)=-0.9215: a(3)=0.0422:a(4)=-0.0247: n=253: for i=1:n yy1(i+3)=b(4)*y(i)+b(3)*y(i+1)+b(2)*y(i+2)+ b(1)*y(i+3)-a(4)*yy1(i)-a(3)*yy1(i+1)-a(2)*yy1(i+2): end figure(1): t=0:dt:255*dt: plot(t,y) y=fft(y,N): %将信号做FFT变换 pyy=y.*conj(y): %做功率谱分析 f=(0:(N/2-1): %标转换 figure(2): plot(4.6875*f,
11、pyy(1:N/2) : %原信号功率谱 y=fft(yy1,N): %将滤波后数据做功率谱分析 pyy=y.*conj(y): %做功率谱分析 f=(0:(N/2-1): %坐标转换 figure(3): plot(4.6875*f,pyy(1:N/2): %滤波后信号功率谱 对程序的说明:程序有四个部分。第一部分产生需要 滤波的信号;第二部分生成Chebyl滤波器,产生极点和零 点;第三部分进行滤波;第四部分画出信号的功率谱图。 图8.10、图8.11和图8.12分别是输入信号的时域波形 、滤波前的信号功率谱图和滤波后的信号功率谱图。 图8.10滤波前的时域波形 图8.11滤波前的功率谱图
12、 图8.12滤波后的信号功率频谱图 3 3滤波器的滤波器的DSPDSP程序设计程序设计 (1)IIR滤波器的C语言实现: (2)IIR滤波器的汇编语言实现: 在编写汇编语言程序之前,首先确定滤波器的参数, 从上面滤波器的设计中得出滤波器的参数如下,这些参数 从图8.4打开的FDA主界面图也可以看到。图8.13显示的就 是滤波器参数。若滤波器的参数中有大于1的数据,将其直 接放入DSP中的话,需要进行数据格式的浮点运算,这将增 加编程的复杂程度,而且也会导致DSP运行程序速度的降低 。一般情况下都不这样使用,而是将数据做一定比例的压 缩后计算。 图8.13滤波器的参数 4. CCS4. CCS环
13、境下对滤波程序的调试环境下对滤波程序的调试 (1)单击CCS界面中的rebuild快捷键,对iir.asm进行 rebuild.如果有错误则应对该.asm程序改正,直至出现“0 Errors”为止.编译通过后单击菜单file中的load program 会出现load program对话框,选择 timyprojectiirdebug目录下的iir.out文件,载入.out 文件。 运行程序。单击工具栏上的run符号,程序运行后,在 主菜单view中找到graph,选择Time/Frequency,出现如图 8.14所示的界面。在“Start Address”栏中该地址为 inputdata,
14、 “Display Type”栏,选择SingleTime。 “Acquisition Buffer Size”栏改读取缓存大小为256, “Display Data Size”栏改显示点数为256,“DSP Data Type”下拉选框中选择“16-bit singed integer”, “Sampling Rate(Hz)”中改抽样频率为1200,如图8.14所 示。 图8.14 图形属性设置 (3)单击图8-36所示对话框的“OK”按钮,得到信号滤波前 的波形图,如图8.15所示。 图8.15 滤波前CCS中的数据时域波形 (4)在图8.14所示对话框中,把“Display Type”
15、栏改为 FFT Magnitude,则可以观察到信号滤波前的频谱,如图 8.16.所示。 图8.16滤波前CCS中的数据频谱 (5)在图8.14所示对话框中,如在“Start Address”栏输 入filterdata,则可以观察到信号滤波后的波形图,如图 8.17所示。 图8.17 滤波后CCS中的数据时域波形 (6)在图8.14所示对话框中,如果把“Display Type”栏改 为FFT Magnitude,在“Start Address”栏输入 filterdata,则可以观察到信号滤波后的频谱图,如图 8.18所示。 图8.18滤波后CCS中的数据频谱 8.3 快速傅里叶变换(FF
16、T)的C54X实现方法 1 0 )/2( )( N n nkNj enxkX 1,.,2 , 1 , 0Nk 1 0 )( N n nk N WnxkX nk N lNkmNn N WW )( .2, 1, 0,lm nk W nk W )(nx )( 2 nx)( 1 nx , )2 ()( 1 nxnx 12/,.,2 , 1 , 0Nn ) 12 ()( 2 nxnx12/,.,2 , 1 , 0Nn )(nx 12/ 0 ) 12( 12/ 0 2 1 0 1 0 122 )()()( N n kn N N n nk N N n N n nk N nk N WnxWnx nWnxnWnxkX为奇数为偶数 k N W 2/ ) 2/()2(2/ )2( N NjNjk N WeeW )k(XW)k(X )( 2 k N1 12/ 0 12/ 0 2/2/1 N n N n nk N nk N WnxWnxkX 式中式中,) k (X 1 )k(X2)( 1 nx)( 2 nx和和是是和和的(的(N/2N/2)点)点DFTDFT。 )( 1 nx )( 2 nx)k(X1 )
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学四年级PEP英语上册教学进展计划
- (2025年标准)古董鉴定协议书
- 2025年高职院校国际交流招聘工作面试题及参考答案
- 2025年农业科技类招聘面试题农业技术员职位面试预测题
- 居家护理安全
- 跨行业合作中的原料药采购合同范文
- (2025年标准)购买番薯苗协议书
- 2025年国际酒店管理集团面试技巧及模拟题集锦
- 2025年环保工程管理认证考试模拟题
- 软件开发团队成员职责分工
- 麻醉师进修汇报
- 基坑监测评审汇报
- 2025-2026年秋季学期各周国旗下讲话安排表+2025-2026学年上学期升旗仪式演讲主题安排表
- 物业公司电瓶车管理制度
- GB/T 45875-2025精细陶瓷自然烧结条件下陶瓷粉体致密性的测定
- 肺占位性病变护理查房
- 广告创意与用户体验-第3篇-洞察阐释
- 幼儿园一日常规安全培训
- 5G基带芯片算法验证平台:从设计到实现的关键技术与实践
- 2025年高考生物辽宁卷真题解读及复习备考指导(黑龙江吉林内蒙古适用)
- 新媒体视听节目制作
评论
0/150
提交评论