DSP课程设计报告—刘雅琪

合集下载

DSP课程设计报告

DSP课程设计报告

一、实验内容:编写程序产生正弦波二、实验目的:1.熟悉DSP实验箱的功能及应用。

2.巩固DSP书本知识,掌握编程知识。

3.提高动手和知识的拓展能力。

三、实验设备:一台HK-DSP实验箱、一台PC机四、实验步骤:1.配置实验箱,选择相应的芯片。

2.建立工程文件。

在project中点击new新建工程。

3.在新建的工程中建立汇编源文件、链接文件和复向量文件,汇编源文件的名称必须与工程名和程序名一致,链接文件必须与程序名保持一致。

4.编程。

主程序:.title "shiyan4.asm".mmregs.def start.ref d_xs,d_sinx,d_xc,d_cosx,sin_start,cos_startsin_x: .usect "sin_x",360STACK: .usect "STACK",10k_theta .set 286start: .textSTM #STACK+10,SPSTM #0,AR1STM k_theta,AR0STM #sin_x,AR7STM #90,BRCRPTB LOOP1-1LDM AR1,ALD #d_xs,DPSTL A,@d_xsSTL A,@d_xcCALL sin_startCALL cos_startLD #d_sinx,DPMPYA @d_cosxSTH B,1,*AR7+MAR *AR1+0LOOP1: STM #sin_x+89,AR6STM #88,BRCRPTB LOOP2-1LD *AR6-,ASTL A,*AR7+LOOP2: STM #179,BRCSTM #sin_x,AR6RPTB LOOP3-1LD *AR6+,ANEG ASTL A,*AR7+LOOP3: NOPend: B end.end子程序:sin_start:.def sin_start,d_sinx,d_xsd_coef_s .usect "coef_s",4.datatable_s: .word 01C7H.word 030BH.word 0666H.word 1556Hd_xs .usect "sin_vars",1d_squr_xs .usect "sin_vars",1d_temp_s .usect "sin_vars",1d_sinx .usect "sin_vars",1 c_1_s .usect "sin_vars",1.textSSBX FRCTSTM #d_coef_s,AR4RPT #3MVPD #table_s,*AR4+STM #d_coef_s,AR2STM #d_xs,AR3STM #c_1_s,AR5ST #7FFFH,c_1_sSQUR *AR3+,AST A,*AR3MASR *AR3+,*AR2+,B,AMPYA ASTH A,*AR3MASR *AR3-,*AR2+,B,AMPYA *AR3+ST B,*AR3||LD *AR5,BMASR *AR3-,*AR2+,B,AMPYA *AR3+ST B,*AR3|| LD *AR5,BMASR *AR3-,*AR2,B,AMPYA d_xsSTH B,d_sinxRETcos_start:.def cos_start,d_cosx,d_xc d_coef_c .usect "coef_c",4.datatable_c: .word 0249H.word 0444H.word 0AABH.word 4000Hd_xc .usect "cos_vars",1d_squr_xc .usect "cos_vars",1d_temp_c .usect "cos_vars",1d_cosx .usect "cos_vars",1c_1_c .usect "cos_vars",1.textSSBX FRCTSTM #d_coef_c,AR4RPT #3MVPD #table_c,*AR4+STM #d_coef_c,AR2STM #d_xc,AR3STM #c_1_c,AR5ST #7FFFH,c_1_cSQUR *AR3+,AST A,*AR3||LD *AR5,BMASR *AR3+,*AR2+,B,ASTH A,*AR3MASR *AR3-,*AR2+,B,AMPYA *AR3+ST B,*AR3||LD *AR5,BMASR *AR3-,*AR2,B,ASFTA A,-1,ANEG AMPYA *AR3+MAR *AR3+RETDADD *AR5,16,BSTH B,*AR3RET链接文件:vectors.objshiyan4.obj-o shiyan4.out-m shiyan4.map-e startMEMORY{PAGE 0:EPROM: org=0E000H, len=1000HVECS: org=0FF80H, len=0080HPAGE 1:SPRAM: org=0060H, len=0020HDARAM1: org=0080H, len=0010HDARAM2: org=0090H, len=0010HDARAM3: org=0200H, len=0200H}SECTIONS{ .text :>EPROM PAGE 0.data :>EPROM PAGE 0STACK :>SPRAM PAGE 1sin_vars :>DARAM1 PAGE 1coef_s :>DARAM1 PAGE 1cos_vars :>DARAM1 PAGE 1coef_c :>DARAM2 PAGE 1sin_x : align(512){}> DARAM3 PAGE 1 .vetors :>VECS PAGE 0}复向量文件:.title "vectors.asm".ref start.sect ".vectors"B start.end5.将文件加入工程。

dsp综合设计课程设计报告

dsp综合设计课程设计报告

dsp综合设计课程设计报告一、教学目标本课程的教学目标是使学生掌握DSP(数字信号处理器)综合设计的基本理论和实践技能。

通过本课程的学习,学生应能够:1.知识目标:理解DSP的基本概念、原理和应用;熟悉DSP芯片的内部结构和编程方法;掌握DSP算法的设计和实现。

2.技能目标:能够使用DSP芯片进行数字信号处理的设计和实现;具备DSP程序的编写和调试能力;能够进行DSP系统的故障诊断和优化。

3.情感态度价值观目标:培养学生对DSP技术的兴趣和热情,提高学生的问题解决能力和创新意识,使学生认识到DSP技术在现代社会中的重要性和应用价值。

二、教学内容本课程的教学内容主要包括DSP的基本理论、DSP芯片的内部结构和工作原理、DSP程序的设计和调试方法、DSP应用系统的设计和实现等。

具体包括以下几个部分:1.DSP的基本概念和原理:数字信号处理的基本概念、算法和特点;DSP芯片的分类和特点。

2.DSP芯片的内部结构:了解DSP芯片的内部结构和工作原理,包括CPU、内存、接口、外设等部分。

3.DSP程序的设计和调试:学习DSP程序的设计方法,包括算法描述、程序编写和调试技巧。

4.DSP应用系统的设计和实现:掌握DSP应用系统的设计方法,包括系统架构、硬件选型、软件开发和系统测试等。

三、教学方法为了实现本课程的教学目标,我们将采用多种教学方法,包括讲授法、案例分析法、实验法等。

具体方法如下:1.讲授法:通过教师的讲解,使学生掌握DSP的基本理论和原理,引导学生理解DSP技术的核心概念。

2.案例分析法:通过分析具体的DSP应用案例,使学生了解DSP技术的实际应用,培养学生的实际操作能力。

3.实验法:通过实验操作,使学生熟悉DSP芯片的使用方法和编程技巧,提高学生的实践能力。

四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选择一本合适的教材,作为学生学习的基础资料,提供系统的DSP知识。

DSP课程设计报告

DSP课程设计报告

家庭远程测控系统设计0 开发目的(1) 学习温湿度传感器、直流有刷电机、RS485通信应用、WIFI模块的通信实现;(2) 学习多模块协调工作的编程思想;(3) 熟悉掌握TMS320F28027硬件电路及工作原理。

1 背景和意义随着Internet 技术的发展,家用电器、计算机和通讯一体化技术也逐步走进普通家庭。

现代智能家居由于其安全、方便、高效、快捷、智能化等特点,将成为现代社会和家庭的新时尚。

当家庭智能网关将家庭中各种各样的家电通过家庭总线技术连接在一起时,就构成了功能强大、高度智能化的现代智能家居系统。

当下智能家居行业刚刚起步,建设成本高,发展不完善。

因此本文提出了使用低成本器件和多源控制技术来实现家庭的远程监控。

基于容易实现,方便操作,贴近使用的设计理念,以DSPF28027单片机为控制核心,采用包括上位机、手机应用程序、Web界面等在内的多个控制源,进行远距离、多角度的家庭实时控制。

TMS320F28027是TI公司推出的一款32位定点型DSP,可应用于一些高分辨率、高效率的场合。

它内部嵌入了2kB OTP ROM、256kB FLASH和100kB RAM,使用简单方便,成本平易,性价比高。

TMS320F28027采用3.3V单电源供电,内部集成1.8V的LDO内核供电,模拟集成度高,性能稳定;采用上电复位电路外接阻容即可工作;内部集成1%精度的振荡器,不需外接晶振,节省成本;工作主频达60MHz;同时还具有强大算术处理能力和丰富的外设支持功能。

2 系统结构本设计以DSPF28027芯片为控制核心,以温度、湿度等传感器为环境信息采集源,以Web控制为辅助,共同组成家庭远程测控系统。

在原有的机械式按键开关的基础上,采用PC上位机、Web网页和手机APP,来控制家庭开关设备(如风机,加湿器,空调,电灯等),实现了远距离,多角度对家庭进行实时控制。

传感器包括温湿度传感器等,采用多种传感器相结合,智能根据各传感器采集的数值进行自动化控制,例如,根据家庭温、湿度设定值自动开启和关闭空调。

DSP课程设计报告

DSP课程设计报告

目录1 概述21.1引言21.2课题背景21.3 PWM波形发生器简介31.4 DSP介绍31.5本文的主要研究内容42系统总体方案选择与工作原理52.1 事件管理模块内资源52.2 输出逻辑53各单元硬件设计103.1 DSP接线图103.2 驱动器设计114软件设计与说明144.1主程序流程图144.2所需的复位和中断向量定义文件15 5调试结果及其说明与使用说明175.1使用说明175.2调试结果186总结207参考文献21附录221 概述1.1引言DSP (即数字信号处理器)自20世纪90年代后半期开始,逐渐成为人们关注的焦点。

DSP是将模拟信号变换为数字信号,并进行高速处现的专用处理器,从算法上说,它具冇乘法和加法两种特殊运算功能。

它主要针对代表连续信号的数字进行数学运算,以得到相应的处理结果。

这种数学运箅以快速傅里叶变换(FFT) 为基础,对数字信号进行实时处现,目前常见的DSP芯片有T1的TMS320系列,ADI 公司的ADSP2100 系列,Lucent 的16000 系列,Motorola 公司的DSP 56602 和56603 系列等。

用DSP芯片实现数字信号处理具有很强的通用性和灵活性,因为DSP芯片体积小,运算速度极快,精度高,接口方便,特别适合处理复杂的数字信号处理算法。

DSP将逛未來集成电路中发展极快的电子产品,并成为电子产品更新换代的决定因素,它将彻底变革人们的工作、学习和生活方式。

木文所阐述的是PWM 波形发生器所产生的PWM波形在工业控制中的应用.1.2课题背景随着电子产业的飞速发展,DSP (数字信号处理器)将越來越广泛的运用在我们的日常生活中,尤其是在通信领域,DSP更是一种不可缺少的工具。

而DSP 在工业中也得到了广泛的应用,:其中基于DSP的PWM波形发中器在工业控制中尤为常见,可以用它来控制各种电机、电力电子设备、逆变器等。

1.3 PWM波形发生器简介PWM (Pulse Width Modulation,即脉冲宽度调制)技术,是指采用电子(快速)开关将输入调制器的电压进行宽度调制,使输出端得到一系列幅值相等而宽度不相等的脉冲,用这些脉冲来代替正弦波或其他所需要的波形。

dsp课程设计实验报告

dsp课程设计实验报告

DSP课程设计实验语音信号的频谱分析:要求首先画出语音信号的时域波形, 然后对语音信号进行频谱分析。

在MATLAB中, 可以利用函数fft对信号进行快速傅立叶变换, 得到信号的频谱特性, 从而加深对频谱特性的理解。

其程序为:>> [y,fs,bits]=wavread('I:\xp.wav',[1024 5120]);>> sound(y,fs,bits);>> Y=fft(y,4096);>> subplot(221);plot(y);title('原始信号波形');>> subplot(212);plot(abs(Y));title('原始信号频谱');程序运行结果为:设计数字滤波器和画出频率响应:根据语音信号的特点给出有关滤波器的性能指标:低通滤波器性能指标, =1000Hz, =1200Hz, =100dB, =1dB;高通滤波器性能指标, =4800Hz, =5000Hz, =100dB, =1dB;带通滤波器性能指标, =1200Hz, =3000Hz, =1000Hz, =3200Hz, =100dB, =1dB;要求学生首先用窗函数法设计上面要求的三种滤波器, 在MATLAB中, 可以利用函数firl 设计FIR滤波器;然后再用双线性变换法设计上面要求的三种滤波器, 在MA TLAB中, 可以利用函数butte、cheby1和ellip设计IIR滤波器;最后, 利用MATLAB中的函数freqz画出各种滤波器的频率响应, 这里以低通滤波器为例来说明设计过程。

低通:用窗函数法设计的低通滤波器的程序如下:>> fp=1000;fc=1200;As=100;Ap=1;fs=22050;>> wc=2*fc/fs;wp=2*fp/fs;>> N=ceil((As-7.95)/(14.36*(wc-wp)/2))+1;>> beta=0.1102*(As-8.7);>> Win=Kaiser(N+1,beta);>>b=firl(N,wc,Win);>>freqz(b,1,512,fs);程序运行结果:这里选用凯泽窗设计, 滤波器的幅度和相位响应满足设计指标, 但滤波器长度(N=708)太长, 实现起来很困难, 主要原因是滤波器指标太苛刻, 因此, 一般不用窗函数法设计这种类型的滤波器。

DSP课程设计报告

DSP课程设计报告

课程名称:DSP技术及应用设计题目:FIR数字滤波器系别:电信系一设计目的1 掌握用窗函数法设计FIR数字滤波器的原理和方法。

2 熟悉线性相位FIR数字滤波器特性。

3 了解各种窗函数对滤波特性的影响。

二实验设备计算机,CCS2.2软件,实验箱,DSP仿真器三 FIR数字滤波器设计原理1 有限冲击响应数字滤波器的基础理论。

2 模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、贝塞尔滤波器)。

3 数字滤波器系数的确定方法。

四实验步骤1 复习如何设计FIR数字滤波。

阅读本实验原理,掌握设计步骤;2 阅读本实验所提供的样例子程序;3 运行CCS软件,对样例程序进行跟踪,分析结果;4 填写实验报告。

5 样例程序实验操作说明五软件设计Exp-FIR-AD.cmd-stack 0x100MEMORY{PAGE 0: PROG: origin = 2b00h, length = 1500hPAGE 1: DATA: origin = 0200h, length = 1d00h}SECTIONS{.text > PROG PAGE 0.cinit > PROG PAGE 0.switch > PROG PAGE 0vect > 3f80h PAGE 0.data > DATA PAGE 1.bss > DATA PAGE 1.const > DATA PAGE 1.sysmem > DATA PAGE 1.stack > DATA PAGE 1}Exp-FIR-AD/******************************************************************** *************The programme of the FIR filter.Using INT2 to get the input signal.Array x is the input signal from A/D, the length is 256, 32-bit floating point.Array y is the signal out of filter, the length is 256, 32-bit floating point.Array h is the coefficient of the FIR filter, the length is 51, 51 order filter.********************************************************************* *************/#pragma CODE_SECTION(vect,"vect")#include "stdio.h"#include "math.h"#define pi 3.1415927#define IMR *(pmem+0x0000)#define IFR *(pmem+0x0001)#define PMST *(pmem+0x001D)#define SWCR *(pmem+0x002B)#define SWWSR *(pmem+0x0028)#define AL *(pmem+0x0008)#define CLKMD 0x0058 /* clock mode reg*/#define Len 256#define FLen 51double npass,h[FLen], x[Len], y[Len], xmid[FLen];void firdes (double npass);unsigned int *pmem=0;ioport unsigned char port8001;int in_x[Len];int m = 0;int intnum = 0;double xmean=0;int i=0;int flag = 0;double fs,fstop,r,rm;int i,j,p,k=0;void cpu_init(){//asm(" nop");//asm(" STM #0, CLKMD");//asm(" STM #0, CLKMD");//asm(" rpt #0ffffh");//asm(" nop");//asm(" STM #0x97ff, CLKMD");*(unsigned int*)CLKMD=0x0; //switch to DIV mode clkout= 1/2 clkinwhile(((*(unsigned int*)CLKMD)&01)!=0);*(unsigned int*)CLKMD=0x27ff; //switch to PLL X 10 modePMST=0x3FA0;SWWSR=0x7fff;SWCR=0x0000;IMR=0;IFR=IFR;}interrupt void int2(){in_x[m] = port8001;in_x[m] &= 0x00FF;m++;intnum = m;if (intnum == Len){intnum = 0;xmean = 0.0;for (i=0; i<Len; i++){xmean = in_x[i] + xmean;}xmean = 1.0*xmean/Len;for (i=0; i<Len; i++){x[i] = (double)(in_x[i] - xmean);}for (i=0; i<Len; i++){for (p=0; p<FLen; p++){xmid[FLen-p-1] = xmid[FLen-p-2];}xmid[0] = x[i];r = 0;rm= 0;for (j=0; j<FLen; j++){r = xmid[j] * h[j];rm = rm + r;}y[i] = rm;}m=0;flag = 1;}}void firdes(double npass){int t;for (t=0; t<FLen; t++){h[t] = sin((t-(FLen-1)/2.0)*npass*pi)/(pi*(t-(FLen-1)/2.0));}if (t == ((FLen-1)/2)) h[t]=npass;}void set_int(){asm(" ssbx intm");IMR=IMR|0x0004;asm(" rsbx intm");}void main(void){cpu_init();fs = 250000;fstop = 20000;npass = fstop/fs;for (i=0; i<FLen; i++){xmid[i]=0;}firdes(npass);set_int();for(;;){if (flag == 1){flag = 0; /* set breakpoint here */}}}void vect(){asm(" .ref _c_int00"); /*pseudoinstruction*/asm(" .ref _int2");asm(" b _c_int00"); /* reset */ asm(" nop");asm(" nop");asm(" rete");asm(" nop");asm(" nop");asm(" nop");asm(" rete");asm(" nop");asm(" nop");asm(" nop");asm(" rete");asm(" nop");asm(" nop");asm(" nop");asm(" rete");asm(" nop");asm(" nop");asm(" nop");asm(" rete");asm(" nop");asm(" nop");asm(" nop");asm(" rete");asm(" nop");asm(" nop");asm(" nop");asm(" rete");asm(" nop");asm(" nop");asm(" nop");asm(" rete");asm(" nop");asm(" nop");asm(" nop");asm(" rete");asm(" nop");asm(" nop");asm(" nop");asm(" rete");asm(" nop");asm(" nop");asm(" nop");asm(" rete");asm(" nop");asm(" nop");asm(" nop");asm(" rete");asm(" nop");asm(" nop");asm(" nop");asm(" rete");asm(" nop");asm(" nop");asm(" nop");asm(" rete");asm(" nop");asm(" nop");asm(" nop");asm(" rete");asm(" nop");asm(" nop");asm(" nop");asm(" rete"); /* int0 */ asm(" nop");asm(" nop");asm(" nop");asm(" rete"); /* int1 */ asm(" nop");asm(" nop");asm(" nop");asm(" b _int2"); /* int2 */ asm(" nop");asm(" nop");asm(" rete"); /* tint0 */ asm(" nop");asm(" nop");asm(" nop");asm(" rete"); /* brint0 */ asm(" nop");asm(" nop");asm(" nop");asm(" rete"); /* bxint0 */ asm(" nop");asm(" nop");asm(" nop");asm(" rete"); /* dmac0 */ asm(" nop");asm(" nop");asm(" nop");asm(" rete"); /* tint1 */ asm(" nop");asm(" nop");asm(" nop");asm(" rete"); /* int3 */ asm(" nop");asm(" nop");asm(" nop");asm(" rete"); /* hpint */ asm(" nop");asm(" nop");asm(" rete"); /* brint1 */ asm(" nop");asm(" nop");asm(" nop");asm(" rete"); /* bxint1 */ asm(" nop");asm(" nop");asm(" nop");asm(" rete"); /* dmac4 */ asm(" nop");asm(" nop");asm(" nop");asm(" rete"); /* dmac5 */ asm(" nop");asm(" nop");asm(" nop");asm(" nop");asm(" nop");asm(" nop");asm(" nop");asm(" nop");asm(" nop");asm(" nop");}六实验结果截图。

DSP课程设计报告—刘雅琪

DSP课程设计报告—刘雅琪

一、课程设计的目的和要求1.1课程设计目的:本课程是DSP技术类课程配套的课程设计,要求学生通过高级语言或汇编语言编程实现较复杂的功能。

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

1.2课程设计要求1、认真查阅资料2、课程设计前认真预习3、遵守课程设计时间安排4、认真保质保量完成设计要求5、认真书写报告二、系统功能介绍及总体设计方案2.1 功能介绍随着信息技术和计算机技术的飞速发展,数字信号处理技术在众多领域得到广泛应用。

数字滤波器由于其精度高、稳定性好、使用灵活等优点,广泛应用在各种数字信号处理领域。

数字滤波器根据冲击响应函数的时域特性,可以分为FIR(有限长冲激响应滤波器)和IIR(无限长冲激响应滤波器) 。

FIR 滤波器与IIR 滤波器相比,具有严格的线性相位,幅度特性可任意等优点。

而且, FIR 滤波器的单位抽样响应是有限长的,故一定是稳定的,他又可以用快速傅里叶变换( FFT)算法来实现过滤信号,可大大提高运算效率。

本课程设计的是一个等波纹FIR 低通滤波器,其具体参数为:采样频率s F =1000Hz ,通带频率pass F =150Hz 截止频率stop F =250Hz ,通带衰减pass A =0.5dB 阻带衰减stop A =80dB 。

2.2 总体设计方案:先进行Matlab 程序设计产生待滤波数据(借助设计工具FDATOOL 产生设计系数),将其导入CCS ,在CCS 上进行仿真调试运行,得到了输入和输出的波形及其频谱。

图1 总体设计框图三、主要设计内容和步骤 3.1 FIR 数字滤波器的原理分析3.1.1 FIR 数字滤波器数字滤波器原理一般具有如下差分方程11()()()N N k k k k y n a x n k b y n k --===-+-∑∑ (l)式中()x n 为输入序列,()y n 为输出序列,k a 和k b 为滤波器系数,N 是滤波器阶数。

基于dsp课程设计报告

基于dsp课程设计报告

基于dsp课程设计报告一、教学目标本课程的教学目标分为三个维度:知识目标、技能目标和情感态度价值观目标。

1.知识目标:通过本课程的学习,学生需要掌握DSP(数字信号处理器)的基本概念、原理和应用。

具体包括:了解DSP的发展历程和分类;理解DSP的基本结构和主要性能指标;掌握DSP的编程方法和应用领域。

2.技能目标:培养学生具备使用DSP进行数字信号处理的能力。

具体包括:学会使用DSP开发环境和工具;掌握DSP编程语言和算法;能够独立完成DSP项目的开发和调试。

3.情感态度价值观目标:激发学生对DSP技术的兴趣和好奇心,培养学生的创新意识和团队合作精神。

使学生认识到DSP技术在现代社会中的重要性和广泛应用,树立正确的技术观和价值观。

二、教学内容本课程的教学内容分为五个部分:DSP基础知识、DSP原理与结构、DSP编程方法、DSP应用案例和DSP项目实践。

1.DSP基础知识:介绍DSP的发展历程、分类和主要性能指标。

2.DSP原理与结构:讲解DSP的基本原理、结构和主要组成部分,如运算器、存储器、输入输出接口等。

3.DSP编程方法:学习DSP编程语言、算法和开发环境,掌握基本的编程技巧。

4.DSP应用案例:分析典型的DSP应用场景,如音频处理、图像处理、通信系统等。

5.DSP项目实践:分组进行项目实践,培养学生独立完成DSP项目的能力。

三、教学方法本课程采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等,以激发学生的学习兴趣和主动性。

1.讲授法:用于传授基本知识和理论,引导学生掌握DSP的基本概念和原理。

2.讨论法:鼓励学生针对案例进行分析讨论,培养学生的思考能力和团队协作精神。

3.案例分析法:通过分析实际应用案例,使学生更好地理解DSP技术的应用和价值。

4.实验法:让学生动手进行实验,培养实际操作能力和创新思维。

四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料和实验设备。

1.教材:选用权威、实用的教材,如《数字信号处理器原理与应用》等。

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

一、课程设计的目的和要求1.1课程设计目的:本课程是DSP技术类课程配套的课程设计,要求学生通过高级语言或汇编语言编程实现较复杂的功能。

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

1.2课程设计要求1、认真查阅资料2、课程设计前认真预习3、遵守课程设计时间安排4、认真保质保量完成设计要求5、认真书写报告二、系统功能介绍及总体设计方案2.1 功能介绍随着信息技术和计算机技术的飞速发展, 数字信号处理技术在众多领域得到广泛应用。

数字滤波器由于其精度高、稳定性好、使用灵活等优点, 广泛应用在各种数字信号处理领域。

数字滤波器根据冲击响应函数的时域特性, 可以分为FIR (有限长冲激响应滤波器)和IIR(无限长冲激响应滤波器)。

FIR滤波器与IIR 滤波器相比,具有严格的线性相位,幅度特性可任意等优点。

而且, FIR 滤波器的单位抽样响应是有限长的, 故一定是稳定的, 他又可以用快速傅里叶变换(FFT)算法来实现过滤信号,可大大提高运算效率。

本课程设计的是一个等波纹FIR 低通滤波器,其具体参数为:采样频率F s=1000Hz,通带频率F pass=150Hz截止频率F sg=250Hz,通带衰减A pass =0.5dB阻带衰减A stop=80dB。

2.2 总体设计方案:先进行Matlab 程序设计产生待滤波数据(借助设计工具FDATOOL 产生设计系数),将其导入CCS在CCS!进行仿真调试运行,得到了输入和输出的波形及其频谱。

三、主要设计内容和步骤3・1 FIR 数字滤波器的原理分析3.1.1FIR 数字滤波器数字滤波器原理一般具有如下差分方程N AN -1y(n) f a k X( n- k) 、b k y( n-k)k z 0k =0式中x(n)为输入序列,y(n)为输出序列,兔和b k 为滤波器系数,N 是滤波器阶N J数。

当所有的b k 均为零,则有 y (n)八 时(n-k) ⑵k=0(2) 式是FIR 滤波器的差分方程,其一般形式为N -1y(n)「h k x( n-k)(3)k £对(3)式进行z 变换,整理后可得FIR 滤波器的传递函数FIR 的直接型结构:x(n) ——B——h(0)n"(2) 'b ——■—— 1h(N £3)»_mh(N £2) I---- ■—1・ ■ ”£■1h(N £l)z £i z £iy(n)H(z) =迩 2X o-kh)k)z图2 FIR的直接型结构FIR滤波器最主要的特点是没有反馈回路,因此它是无条件稳定系统。

它的单位冲激响应h(n)是一个有限长序列。

如果h(n)是实数,且满足偶对称或奇对称的条件,即h(n)二h(N ^-n)或h(n)二-h(N -仁n),则滤波器具有线性相位特性。

偶对称线性相位FIR滤波器(N为偶数)的差分方程表达式为:N/2 Jy - q[x(n —i) x(n - N Vi)]i Q线性相位FIR滤波器是用得最多的FIR滤波器。

FIR滤波器不断地对输入样本x(n)延时后,再作乘法累加算法,将滤波结果y(n)输出,因此FIR滤波算法实际上是一种乘法累加运算。

在数字滤波器中,FIR滤波器的最主要特点是没有反馈回路,故不存在不稳定的问题。

同时可以在随意设置幅度特性的同时,保证精确无误的线性相位。

稳定的线性相位特性是FIR滤波器的突出优点。

3.1.2系数对称的FIR滤波器对于系数对称的FIR滤波器,由于其具有线性相位特性,因此应用很广,特别是对相位失真要求很高的场合,如调制解调器(MODEM一个N=8的FIR滤波器,若a(n)=a(N“-n),就是对称FIR滤波器,其输出方程为:y(n) = a o x(n) a i x(n -1) a2x(n - 2) a3x(n - 3) a3X(n - 4) a2x(n - 5) ®x(n - 6) a°x(n - 6) 总共有8次乘法和7次加法。

如果改写成:y(n) = a°[x(n) x(n - 7)] a1 [x(n -1) x(n - 6)] a2[x(n -2) x(n - 5)] a3[x(n - 3) x(n - 4)] 则变成4次乘法和7次加法。

可见乘法运算的次数减少了一半。

这是对称FIR的有一个优点。

对称FIR滤波器的C54x实现的要点(1)在数据存储区中开辟两个循环缓冲区,New循环缓冲区中存放N/2=4个新数据;Old循环缓冲区中存放老数据。

循环缓冲区的长度为N/2。

数据存储器NeW循环缓冲区Old循环缓冲区程序存储器系数表(2) 设置循环缓冲区指针,AR2指向中最新的数据,AR3指向中最老的数据 (3) 在程序存储器中设置系数表。

(4) (AR2) (AR3) > AH (累加器 A 的高位)(AR2) -1 > AR2(AR3) -1》AR3⑸ 将累加器B 清0,重复执行4次(i=0,1,2,……) (AH)*系数a i +(B)T B 系数指针(PAR 加1(AR2) (AR3) > AHAR2和 AR3减 1(6) 保存和输出结果(结果在BH 中)(7) 修正数据指针,让AR2和AR3分别指向NeW 爰冲区中最新的数据和Old 缓 冲区中最老的数据。

(8) 用NeW 爰冲区中最老的数据替代 Old 缓冲区中最老的数据。

Old 缓冲区指 针减1。

(9) 输入一个新数据替代New 缓冲区中最老的数据低地址咼地址重复执行第(4) ~ ( 9)步3.1.3关键指令在编程中要用到FIRS (系数对称有限冲激响应滤波器)指令,其操作如下:FIRS Xmem,Ymem,Pmad执行Pmad》PAR当(RC) = 0(B)+(A(32-16))*( 由PAR#址Pmem)》B((Xmem +(Ymer) <<16T A(PAR +1 > PAR(RC)-1 > RCFIRS指令在同一个机器周期内,通过C和D总线读2次数据存储器,同时通过P总线读一个系数。

3.2Matlab的仿真及滤波器系数的确定设计FIR滤波器,关键是得到正确的滤波器系数。

按照技术指标的要求,进行Matlab程序设计。

运行后生成的图像如下:观察图像可知在频率为50和350Hz上有波形,后面为镜像显示。

利用Matlab中FDATOO工具设计好滤波器,从FDATOO向CCS输出滤波器系数。

Matlab中FDATOOL X具设计好滤波器以后,可以利用C语言头文件输出滤波器系数,将头文件添加到工程中,编译连接生成可执行文件。

在把可执行文件加载到目标DSP后,会给头文件中的滤波器系数分配一个静态存储空间,滤波器系数就放入此存储空间中。

或者可以直接把滤波器系数输出到DSP的存储器中。

FDATOO设计分析后产生的幅频特性及滤波器系数表输出的滤波器系数为:.word 15, -3, -158, -448, -583, -172, 663, 1008, 2.word -1764, -2046, 1075, 6744, 11298, 11298, 6744, 1075, -2046.word -1764, 2, 1008, 663, -172, -583, -448, -158, -3.word 15四、详细设计给定FIR数字低通滤波器的技术指标为分别为50Hz和350Hz采样频率均为1kHz。

利用Matlab设计FIR低通滤波器的系数得DSP中滤波器系数列表.用.word汇编命令将各滤波器系数直接输入到DSP程序中;模拟输入数据由C语言程序实现,然后用.copy命令将C语言程序生成的数据文件拷贝到DSP 程序中。

DSP程序实现读入数据、滤波、显示波形等方面的任务。

完成FIR滤波器的程序框图如图4所示,可知FI R滤波器的DSP实现主要由以下4方面的内容组成:(1)模拟输入数据的生成用C语言程序生成输入数据,通过.copy汇编命令将生成的数据文件拷贝到汇编程序中,作为FIR滤波器的输入数据。

(2) DSP初始化程序.title "FIR.asm" .mmregs.def _c_int00N .set 28size .set N/2 ;FIR 滤波器阶数x_new .usect "x_new",N/2 ; 自定义数据空间x_old .usect "x_old",N/2 ; 自定义数据空间KS .set 256 ; 输入样本数据个数input .usect "input",KSoutput .usect "output",KS.data.copy "fdacoefs4.h" ;FIR 滤波器系数.text图4主程序流程图(3)滤波算法子程序:滤波算法流程图滤波算法子程序代码:FIR: SSBX FRCTSTM #x_new,AR2STM #x_old+(size-1),AR3 STM #-1,AR0STM #output,AR5STM #in put,AR4STM #KS-1,BRCRPTBD LOOP-1STM #size,bkLD *AR4+,ASTL A,*AR2ADD *AR2+0%,*AR3+0%,ARPTZ B,#size-1FIRS *AR2+0%,*AR3+0%,COEFSTH B,*AR5+MAR *+AR2 (2) %MAR *AR3+%MVDD *AR2,*AR3+0%(4)复位程序:中断流程图复位程序代码:.title "FIR_V.asm".ref _c_in tOO.sect "VECTORS"reset:b _c_int00.end五、调试过程编辑好.asm和.cmd文件之后并加入工程中进行编译,修改出现的错误直至无误,然后加载.out文件。

选择File菜单下的data,加入.dat文件,运行程序并打开CCS的输入输出图形界面,观察对比滤波前后的时域波形与频谱图调试过程中出现的错误及警告:(1) warning: creati ng output sect ion n ewdata without SECTIONS specificati on分析:汇编语言源程序中的未初始化段名n ewdata与链接命令文件不一致解决:将链接命令文件中相应的未初始化段名改为n ewdata(2) "fir .asm", ERROR! at line 13: [E1000] Include/Copy file not foundor opened分析:用FDATOO工具产生的系数表文件名与源程序中引用的不一致解决:保持产生的系数表文件名与源程序中引用的一致(3)分析产生的波形图不理想,有时是因为不同的参数设计出的滤波器的阶数可能不同,要注意修改源程序中滤波器阶数值(4)在CCS程序中,应先加载正确的中断向量文件,所用芯片的CMD配置文件,编译才会有效。

相关文档
最新文档