太原理工大学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课程设计报告

共享知识分享快乐盛年不重来,一日难再晨。

及时宜自勉,岁月不待人。

数据采集处理和控制系统设计一课程设计要求1.基本DSP硬件系统设计要求①基本DSP硬件系统以TMS320C54x系列为核心处理器,包括最小系统、存储器扩展、显示器、键盘、AD、DA等电路模块;②硬件设计画出主要芯片及电路模块之间的连接即可,重点考查电路模块方案设计与系统地址分配;③设计方案以电路示意图为主,辅以必要的文字说明。

2.基本软件设计要求①看懂所给例程,画出例程输出波形示意图;②修改例程程序,使之输出其它波形,如方波、三角波、锯齿波等均可;③设计方案以程序实现为主,辅以必要的文字说明。

3.课程设计报告要求①硬件系统设计:设计思路、设计系统功能、主要芯片选型及使用方法、设计方案说明、电路示意图②软件系统设计:示例程序功能解读及输出波形示意图、设计软件功能、设计思路、实现源码(带程序注释)③报告总结二系统分析利用实验箱的模拟信号产生单元产生不同频率的信号,或者产生两个频率的信号的叠加。

在DSP 中采集信号,并且对信号进行频谱分析,滤波等。

通过键盘或者串口命令选择算法的功能,将计算的信号频率或者滤波后信号的频率在LCD 上显示。

主要功能如下:(1)对外部输入的模拟信号采集到DSP 内存,会用CCS 软件显示采集的数据波形。

(2)对采集的数据进行如下算法分析:①频谱分析:使用fft 算法计算信号的频率。

②对信号进行IIR 滤波或FIR 滤波,并且计算滤波前后信号的频率。

③外部键盘或者从计算机来的串口命令选择算法功能,并且将结果在LCD 上显示。

绘制出DSP系统的功能框图、使用AD(Altium Designer)绘制出系统的原理图和PCB 版图。

在 DSP 中采集信号,用CCS 软件显示采集的数据波形,以及对采集的数据进行算法分析。

三硬件设计3.1 硬件总体结构CLKSTMS32054X11CONTROL1MX16BIT FLASH2016D[15..0]A[19..0]XDS510 JTAGRESETPower (73HD3XX)16WE OECE复位电路3.2 DSP 模块设计3.3 电源模块设计将5V电源电压转换为3.3V和1.6V电源3.4 时钟模块设计此处由外部晶振提供时钟信号3.5 存储器模块设计DSP上只有一个读写控制信号引脚,而FLASH有两个引脚,将读、写分开,故在OE上接一个非门电路,实现高时读,低时写。

(完整word版)DSP课程设计__正弦信号发生器的设计

(完整word版)DSP课程设计__正弦信号发生器的设计

太原理工大学DSP课程设计设计题目:正弦信号发生器的设计学院:信息工程班级:通信110姓名:学号:同组人:指导老师:李鸿艳实验地点:中区图书馆起点机房时间:2013 年12 月23 日设计题目 正弦信号发生器 设计目的1、通过实验掌握DSP 的软件开发过程2、学会运用汇编语言进行程序设计,在此集成开发环境下完成工程项目创建, 程序编写,编译,链接,调试以及数据的分析。

3、学会用CCS(Code Composer Studio)仿真模拟DSP 芯片,通过CCS 软件平台上应用C54X 汇编语言来实现正弦信号发生装置。

设计内容编写一个产生正弦波信号的程序,在CCS 软件下进行模拟运行,观察输出结果设计原理本实验产生正弦波的方法是泰勒级数展开法。

泰勒级数展开法需要的存储单元少,具有稳定性好,算法简单,易于编程等优点,而且展开的级数越多,失真度就越小。

求一个角度的正弦值取泰勒级数的前5项,得近似计算式:一、总体方案设计本实验是基于CCS 开发环境的。

CCS 是TI 公司推出的为开发TMS320系列DSP 软件的集成开发环境,是目前使用最为广泛的DSP 开发软件之一。

它提供了环境配置、源文件编译、编译连接、程序调试、跟踪分析等环节,并把软、硬件开发工具集成在一起,使程序的编写、汇编、程序的软硬件仿真和调试等开发工作在统一的环境中进行,从而加速软件开发进程。

通过CCS 软件平台上应用C54X 汇编语言来实现正弦信号发生装置。

总体思想是:正弦波的波形可以看作由无数点组成,这些点与x 轴的每一个角度值相对应,可以利用DSP 处理器处理大量重复计算的优势来计算x 轴每一点对应的y 的值(在x 轴取N 个点进行逼近)。

整个系统软件由主程序和基于泰勒展开法的SIN 子程序组成,相应的软件流程图如图。

))))((((981761541321 !9!7!5!3)sin(22229753⨯-⨯-⨯-⨯-=+-+-=xx x x x x x x x x x二、设计内容1、设置在Family下选择C55xx,将看到所有C55xx的仿真驱动,包括软件仿真和硬件仿真;在Platform下选择Simulator,在Available Factory Boards中只显示软件仿真驱动,选中相应的驱动;双击C55xx Rev4.0 CPU Functional Simulator,可以在My System下看到所加入的驱动;点击Save & Quit,将保存设置退出Setup CCStudio v3.1并启动运行CCStudio。

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课设报告(DOC)

DSP课设报告(DOC)

成绩评定表学生姓名班级学号FIR滤波器(带专业电子信息工程课程设计题目通滤波器)评语组长签字:成绩日期20 年月日课程设计任务书学院信息科学与工程学院专业电子信息工程学生姓名班级学号课程设计题目FIR滤波器(带通滤波器)实践教学要求与目的:要求:1.设计一个截止频率为1500Hz—3000Hz的带通数字滤波器2.在DSP TMS320C5509上实现FIR滤波3.对FIR滤波器各项指标进行评价目的:课程设计是重要的实践教学环节。

学生通过动手做软件和硬件设计,能够熟练掌握数字信号处理技术,增加对基础知识的消化和理解。

工作计划与进度安排:2012年12月31日进行课程设计动员,分配课程设计题目,查阅资料。

2013年01月04日查阅资料2013年01月05日到2013年1月9日为上机时间调试程序及仿真、调试出结果、调试结果验收并写报告。

2013年01月10日上午正式提交报告和答辩。

指导教师:201 年月日专业负责人:201 年月日学院教学副院长:201 年月日摘要数字信号处理器,也称DSP 芯片,是针对数字信号处理需要而设计的一种具有特殊结构的微处理器,数字滤波是语音处理、图像处理、频谱分析等应用中的基本处理算法。

DSP 是一种处理数字信号的专用微处理器,主要应用于实时快速地实现各种信号的数字处理算法,用DSP 芯片实现数字滤波具有稳定性好、精确度高、不受环境影响等优点。

数字滤波器分为有限冲激响应滤波器(FIR 滤波器) 和无限冲激响应滤波器(IIR 滤波器) ,FIR 滤波器属于经典滤波器,优点就是由于不存在系统极点。

FIR 滤波器是绝对稳定的系统,FIR 滤波器还确保了线性相位,在信号处理中占有极其重要的地位,数字滤波器一直以来就是数字信号处理器(DSP) 最广为人知的应用。

关键字:DSP 滤波器FIR 数字信号处理目录1数字滤波器简介及设计 (1)1.1数字滤波器的定义和分类 (1)1.2 数字滤波器的设计方法概述 (1)1.3 窗函数法 (3)1.4 模拟数字变换法 (3)2 系统方案设计 (5)2.1系统功能介绍及流程图 (5)2.2 FIR滤波器的实现方法 (6)3 数字滤波器的MATLAB辅助设计 (8)3.1 MATLAB简介 (8)3.2 FDAtool界面介绍 (8)3.3 FIR数字滤波器设计 (9)3.3.1 得到滤波器冲激响应序数方法 (9)3.3.2 FIR参数设定及频域响应特性 (10)4 数字滤波器的CCS实现 (11)4.1 简述CCS环境 (11)4.2 CCS配置 (12)4.3 CCS环境中工程文件的使用 (12)4.4 编译链接和运行目标文件 (13)4.4.1 对程序进行编译链接 (13)4.4.2 装载.out文件 (13)5 运行并观察结果 (15)结论 (17)参考文献 (18)致谢 (19)附录A C程序清单 (20)附录B 滤波器输出系数 (25)第1章 数字滤波器设计原理1.1 数字滤波器的定义和分类数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的离散时间线性非时变系统,其输入是一组数字量,其输出是经过变换的另一组数字量。

太原理工大学DSP课程设计报告书

太原理工大学DSP课程设计报告书

本科课程设计报告课程名称: DSP原理及应用实验名称: FIR滤波器的DSP实现实验地点:起点机房专业班级:学号:学生:指导教师:FIR 滤波器的DSP 实现一、设计目的1 了解FIR 滤波器的原理和特性2. 熟悉设计FIR 数字滤波器的原理和方法3. 学习FIR 滤波器的DSP 的实现过程。

5. 学习使用CCS 软件。

二、设计容1通过MATLAB 来设计一个低通滤波器,并对它进行模拟仿真,确定FIR 滤波器系数2. 用DSP 汇编语言及C 语言进行编程,实现FIR 运算,对产生的合成信号滤除信号中高频成分,观察滤波前后波形的变化。

三、设计原理数字滤波器是将输入的信号序列,按规定的算法进行处理,从而得到所期望的输出序列。

一个线性位移不变系统的输出序列y(n)和输入序列x(n)之间的关系,应满足差分方程为:()()()∑-=-=1N I i n x i h n y对其进行z 变换,可得到FIR 滤波器的传递函数为:()Z H =()()()∑-=-=10N n nz n b z X z Y FIR 滤波算法实际上是一种乘法累加运算。

它不断输入样本,经延时 ,作乘法累加,再输出滤波结果y (n )。

FIR 滤波器的结构如图1:图1:FIR滤波器的结构图可以看出,在数字滤波器中FIR滤波器有以下几个特点:(1)系统的单位冲激响应h(n)在有限个n值处不为零;(2)系统函数H(z)在|z|>0处收敛,在|z|>0处只有零点,有限z平面只有零点,而全部极点都在z=0处;(3)结构主要是非递归结构,没有输出到输入的反馈。

在DSP芯片中,实现z-1算法很方便,可采用循环缓冲区法,其特点如下:(1)对于N级FIR滤波器,在数据存储器中开辟一个N单元的缓冲区(窗),用来放最新的N个输入样本;(2)从最新样本开始取数;(3)读完最后一个样本后,输入最新样本来代替最老样本,而其他数据位置不变;(4)用片循环缓冲区长度寄存器对缓冲区进行间接寻址,是循环缓冲区地址首位相邻。

dsp课程设计报告

dsp课程设计报告

DSP课程设计报告班级:姓名:学号:题目一:基于Matlab的数字滤波器设计及其对语音信号的应用1.课程设计的目的:1).掌握数字信号处理的基本概念、基本理论和基本方法;2).掌握MATLAB设计FIR和IIR数字滤波器的方法;3).掌握在Windows环境下语音信号采集以及时域、频域分析;4).学会MATLAB的使用,掌握MATLAB的程序设计方法;5).学会用MATLAB对信号进行分析和处理。

2.课程设计内容:录制一段自己的语音信号,对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采matlab设计数字滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号。

3.课程设计基础:MATLAB编程基础、数字信号处理知识、语音信号处理知识。

4.具体步骤与要求:4.1 语音信号的采集录制一段自己的话音,或利用老师给的语音,在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。

wavrecord(2*fs,fs)4.2语音信号的频谱分析要求画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性。

fft4.3设计数字滤波器,画出其频率响应曲线各滤波器的性能指标:(1)低通滤波器性能指标fp=1000Hz, fs=1200Hz, As=40dB, Ap=1dB。

(2)高通滤波器性能指标fs=4000Hz, fp=4300Hz, As=40dB, Ap=1dB(3)带通滤波器性能指标fp1=1200 Hz, fp2=3 000 Hz, fs1=1000 Hz, fs2=3200 Hz, As=40dB, Ap=1dB。

要求:(1)频率变换法设计IIR滤波器:可以利用函数butter、cheby1、cheby2和ellip等设计。

DSP课程设计报告

DSP课程设计报告

目录1.课程设计目的及意义 .................... 错误!未定义书签。

2. 课程设计题目描述要求及理论基础........ 错误!未定义书签。

题目要求 ............................. 错误!未定义书签。

数字滤波器的简介及发展............... 错误!未定义书签。

FIR数字滤波器的特点................. 错误!未定义书签。

FIR滤波器具有的优点................. 错误!未定义书签。

MATLAB软件简介...................... 错误!未定义书签。

3. 课程设计报告内容 ..................... 错误!未定义书签。

设计方案的选定与原理................. 错误!未定义书签。

用窗函数法设计FIR滤波器............. 错误!未定义书签。

设计方案程序及图表.................... 错误!未定义书签。

4.总结.................................. 错误!未定义书签。

参考书目:.............................. 错误!未定义书签。

1.课程设计目的及意义(1)学会MATLAB的使用,掌握MATLAB的程序设计方法;(2)掌握在Windows环境下语音信号采集的方法;(3)掌握数字信号处理的基本概念、基本理论和基本方法;(4)掌握MATLAB设计FIR滤波器;(5)学会用MATLAB对信号进行分析和处理。

2. 课程设计题目描述要求及理论基础题目要求(1)语音信号的采集;要求利用windows下的录音机(开始—程序—附件—娱乐—录音机,文件—属性—立即转换—8000KHz,8位,单声道)或其他软件,录制一段自己的话音,时间控制在1秒左右。

然后在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。

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

本科课程设计报告
课程名称: DSP原理及应用
实验名称: FIR滤波器的DSP实现实验地点:起点机房
专业班级:
学号:
学生:
指导教师:
FIR 滤波器的DSP 实现
一、设计目的
1 了解FIR 滤波器的原理和特性
2. 熟悉设计FIR 数字滤波器的原理和方法
3. 学习FIR 滤波器的DSP 的实现过程。

5. 学习使用CCS 软件。

二、设计容
1
通过MATLAB 来设计一个低通滤波器,并对它进行模拟仿真,确定FIR 滤波
器系数
2. 用DSP 汇编语言及C 语言进行编程,实现FIR 运算,对产生的合成信号滤除信号中高频成分,观察滤波前后波形的变化。

三、设计原理
数字滤波器是将输入的信号序列,按规定的算法进行处理,从而得到所期望的输出序列。

一个线性位移不变系统的输出序列y(n)和输入序列x(n)之间的关系,应满足差分方程为:
()()()∑-=-=1
N I i n x i h n y
对其进行z 变换,可得到FIR 滤波器的传递函数为:
()Z H =()()()∑-=-=10
N n n
z n b z X z Y FIR 滤波算法实际上是一种乘法累加运算。

它不断输入样本,经延时 ,作乘法累加,再输出滤波结果y (n )。

FIR 滤波器的结构如图1:
图1:FIR滤波器的结构图
可以看出,在数字滤波器中FIR滤波器有以下几个特点:
(1)系统的单位冲激响应h(n)在有限个n值处不为零;
(2)系统函数H(z)在|z|>0处收敛,在|z|>0处只有零点,有限z平面只有零点,而全部极点都在z=0处;
(3)结构主要是非递归结构,没有输出到输入的反馈。

在DSP芯片中,实现z-1算法很方便,可采用循环缓冲区法,其特点如下:(1)对于N级FIR滤波器,在数据存储器中开辟一个N单元的缓冲区(窗),用来放最新的N个输入样本;
(2)从最新样本开始取数;
(3)读完最后一个样本后,输入最新样本来代替最老样本,而其他数据位置不变;
(4)用片循环缓冲区长度寄存器对缓冲区进行间接寻址,是循环缓冲区地址首位相邻。

使用CCS开发应用程序的一般步骤
(1) 打开或创建一个工程项目文件
(2) 编辑各类文件
(3) 对工程项目进行编译
(4)对结果和数据进行分析和算法评估利用CCS集成开发软件,用户可以在一个开发环境下完成工程项目创建、程序编辑、编译、、调试和数据分析等工作环节
四、设计方案
1、利用MATLAB来确定FIR滤波器的参数;
具体方法为:利用fir2函数产生滤波系数:b=fir2(n-1,f,m),参数n为滤波器的阶数;f为频率参数,m表示低通
2、启动CCS,在CCS中建立一个C源文件和一个命令文件,并将这两个文件添加到工程,再编译并装载程序;
3、设置波形时域观察窗口,得到滤波前后的波形变化图;
4、设置频域观察窗口,得到滤波前后的频谱变化图。

4设计参数:
设计一个低通滤波器,其设计参数为:滤波器阶数40,截止频率w
p =0.4π,w
s
=0.45
π。

五、设计程序
1、MATLAB程序
2、C源文件
#include "s.h"
#include "math.h"
#define signal_1_f 200
#define signal_2_f 620
#define signal_sample_f 2000
#define pi 3.1415926
#define coff_L 23
#define bufer_L 256
int data_in[bufer_L];
int out[bufer_L] ;
int firout;
int x[coff_L+1];
int k=0;
int bufer=bufer_L;
extern int fir(int *,int);
extern int init(int *,int);
extern int outdata(int *,int,int); void inputwave();
void main()
{
inputwave();
init(x,BL);
while(1)
{
x[0]=data_in[k];
firout=fir(x,BL);
outdata(out,firout,bufer);
k++;
if(k>=bufer_L)
{
k=0;
}
}
}
void inputwave()
{
float wt1;
float wt2;
int i;
for(i=0;i<=bufer_L;i++)
{
wt1=2*pi*i*signal_1_f;
wt1=wt1/signal_sample_f;
wt2=2*pi*i*signal_2_f;
wt2=wt2/signal_sample_f;
data_in[i]=(cos(wt1)+cos(wt2))/2*32768; }
}
3、汇编源文件
.global _fir,_init,_B,_outdata
_fir
bset frct
amov #_B,xdp
mov #_B,cdp
mov t0,ac0
sub #1,ac0
mov ac0,mmap(csr)
add ac0,ar0
mov #0,ac0
rpt csr
macmz *ar0-,*cdp+,ac0
mov hi(ac0),t0
ret
_init
mov mmap(t0),ac0 sub #1,ac0
mov ac0,ar7
rptz ac0,ar7
mov ac0,*ar0+
ret
_outdata
mov t1,ac0
sub #2,ac0
mov ac0,mmap(csr) add ac0,ar0
rpt csr
delay *ar0-
mar *ar0+
mov t0,*ar0
ret
4、命令文件
-stack 0x500
-sysstack 0x500
-heap 0x1000
-c
-u _Reset
-l rts55.lib MEMORY
{
PAGE 0:
RAM(RWIX): origin=0x000100, length=0x01ff00 ROM(RIX): origin=0x020100, length=0x01ff00 VECS(RIX): origin=0xffff00, length=0x000200 PAGE 2:
IOPORT(RWI):origin=0x000000, length=0x020000 }
SECTIONS
{
.text >ROM PAGE 0
.data >ROM PAGE 0
.bss >RAM PAGE 0
.const >RAM PAGE 0
.sysmem >RAM PAGE 0
.stack >RAM PAGE 0
.sysstack >RAM PAGE 0
.switch >RAM PAGE 0
.cinit >RAM PAGE 0
.pinit >RAM PAGE 0
.vectors >VECS PAGE 0
.ioport >IOPORT PAGE 2
}
六、结果分析
(1)滤波前
图2:输入时域波形
图3:输入频域波形(2)滤波后
图4:输出时域波形
图5::输出频域波形
由以上容可以看出,时域图中,滤波前波形有很多毛刺,滤波后,是平滑的等幅正弦波,而且滤波后最大振幅有所减小。

频域图中,滤波前有两个带尖峰的图像,滤波后只有一个带尖峰图像,而且是出现在低频部分,说明信号经过低通滤波器后,将信号中的高频成分滤除掉了。

滤波前后时域、频域特性对比总结如下:
时域频域
滤波前波形有较多毛刺平滑的等幅正弦波
滤波后两个带尖峰一个低频带尖峰
表1:滤波前后时域、频域对比。

相关文档
最新文档