1、课程设计报告(论文) 数字信号处理与DSP 课程设计任务书课程设计题目:数字信号处理与DSP课程设计已知技术参数和设计要求:1设计一个采样频率为32KHz,截止频率约为6.5KHz的低通FIR滤波器,要求阻带衰减大于50dB。2由实验箱信号发生器产生4KHz的模拟方波信号,然后进行AD转换存放在内存单元中观察这些数据的波形,然后通过DA转换后输出,在示波器上观察输出方波信号,完成对串口数据的采集和发送编程。3在串口数据的采集和发送程序中插入设计好的FIR低通滤波器。对采集的方波信号进行数字低通滤波得到基波分量,存放在内存单元中观察这些数据的波形,并将滤波得到的基波分量通过DA转换后输出,在示波
2、器上观察输出信号。所需仪器设备:计算机一台、示波器一台、DSP试验箱、CCS Simulator环境成果验收形式:操作运行结果和程序答辩 参考文献:张雄伟.DSP集成开发与应用实例M. 北京:电子工业出版社.2002.邹彦. DSP原理及应用. 电子工业出版社,2009.8周霖. DSP算法设计与系统方案. 国防工业出版社,2004.7.时间安排第1单元 发设计任务书,明确设计任务、技术要求,查找资料。第2、3单元 FIR滤波器设计及DSP编程。第4、5单元 学习串行A/D转换芯片TLV1572和串行D/A转换芯片TLC5617的使用。学习和掌握TMS320C5402多通道缓冲串口与串行A/D
3、、D/A转换器的接口方法。第6、7单元 完成对串口数据的采集和发送。第8单元 在串口数据的采集和发送程序中插入设计好的FIR低通滤波器,在示波器上观察输出信号。指导教师: 教研室主任: 20年 11 月 22 日内 容 摘 要数字信号处理(Digital Signal Processing,简称DSP)是一门涉及多门学科并广泛应用于很多科学和工程领域的新兴学科。数字信号处理是利用计算机或专用处理设备,以数字的形式对信号进行分析、采集、合成、变换、滤波、估算、压缩、识别等加工处理,以便提取有用的信息并进行有效地传输与应用。本文设计了一个采样频率为32KHz,截止频率约为6.5KHz的低通FIR滤
4、波器,阻带衰减大于50dB。实验箱信号发生器产生4KHz的模拟方波信号,进行AD转换存放在内存单元中,通过DA转换后输出,观察输出方波信号,完成对串口数据的采集和发送编程。在串口数据的采集和发送程序中插入设计好的FIR低通滤波器。对采集的方波信号进行数字低通滤波得到基波分量,存放在内存单元中观察这些数据的波形,并将滤波得到的基波分量通过DA转换后输出,在示波器上观察输出信号。关键词:DSP FIR滤波器 数字信号处理 A/D、D/A转换目 录一 概 述 1二 DSP系统构成 1三 滤波器的设计原理 13.1数字滤波器的设计原理 13.2 FIR滤波器的基本结构 1四 实验程序 24.1 FIR
5、滤波器源程序24.2 A/D转换源程序24.3 D/A转换源程序54.4 A/D、D/A转换源程序 74.5 A/D、FIR、D/A综合程序9五 实验结果 13六 心得体会 14七 参考文献 14一、概述 数字信号处理(Digital Signal Processing,简称DSP)是一门涉及多门学科并广泛应用于很多科学和工程领域的新兴学科。数字信号处理是利用计算机或专用处理设备,以数字的形式对信号进行分析、采集、合成、变换、滤波、估算、压缩、识别等加工处理,以便提取有用的信息并进行有效地传输与应用。随着信息与数字技术的发展,数字信号处理已经成为当今极其重要而学科与技术领域之一。它在通信、语音
6、、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理的基本方法中,通常会涉及到变换、滤波、频谱分析、调制解调和编码解码等处理。其中滤波是应用非常广泛的一个环节,数字滤波器的理论和相关设计也一直都是人们研究的重点之一。本次课程设计要求设计一个采样频率为32KHz,截止频率约为6.5KHz的低通FIR滤波器,要求阻带衰减大于50dB。同时,使用串行A/D、D/A转换芯片对实验箱产生的波形进行采集及发送。二、DSP系统构成 典型的 DSP 系统如图2.1所示。输入抗混叠滤波AD转换DSP芯片DA转换平滑滤波输出图2.1典型的DSP系统由于DSP是用来对数字
7、信号进行处理的,所以首先必须将输入的模拟信号变换为数字信号。于是先对输入模拟信号进行调整,输出的模拟信号经过A/D变换后变成DSP可以处理的数字信号,DSP根据实际需要对其进行相应的处理,如FFT、卷积等;处理得到的结果仍然是数字信号,可以直接通过相应通信接口将它传输出去,或者对它进行D/A变换将其转换为模拟采样值,最后再经过内插和平滑滤波就得到了连续的模拟波形模拟信号。当然,图中的有些环节并不是必需的。如A/D转换,如果输入的是数字信号,就可以直接交给DSP进行运算。三、滤波器的设计原理3.1数字滤波器的设计原理数字滤波器的设计问题就是寻找一组系数ai和bi,使得其性能在某种意义上逼近所要求
8、的特性。如果在s平面上去逼近,就得到模拟滤波器,如果在z平面上去逼近,则得到数字滤波器。数字滤波是将输入的信号序列,按规定的算法进行处理,从而得到所期望的输出序列。一个线性位移不变系统的输出序列y(n)和输入序列x(n)之间的关系,应满足常系数线性差分方程: (3.1.1) x(n)为输入序列,y(n)为输出序列,ai、bi 为滤波器系数,N为滤波器的阶数。3.2 FIR滤波器的基本结构在式3.1.1中,若所有的ai均为0,则得FIR滤波器的差分方程: (3.2.1) 对式(3.2.1)进行z变换,可得FIR滤波器的传递函数: (3.2.2)由此可得到FIR滤波器的结构如图1所示。FIR滤波器
9、的单位冲击响应h(n)是一个有限长序列。若h(n)为实数,且满足偶对称或奇对称的条件,即h(n)=h(N-1-n)或h(n)=-h(N-1-n),则FIR滤波器具有线性相位特性。四、实验程序4.1 FIR滤波器源程序.mmregs .global start.def start,_c_int00INDEX .set 1KS .set 256 .copy firin.inc.copy firdata.inc.dataOUTPUT .space1024 FIR_DP .usectFIR_VARS,0D_FIN .usectFIR_VARS,1D_FOUT .usectFIR_VARS,1COFFT
10、AB .usectFIR_COFF,NDATABUF .usectFIR_BFR,NBOS .usectSTACK,0FhTOS .usectSTACK,1 .text .asgAR0,INDEX_P .asgAR4,DATA_P .asgAR5,COFF_P .asg AR6,INBUF_P .asgAR7,OUTBUF_P _c_int00b start nopnopstart: STM #COFFTAB,COFF_PRPT #N-1 MVPD#COFF_FIR,*COFF_P+STM#INDEX,INDEX_PSTM#DATABUF,DATA_PRPTZA,#N-1STLA,*DATA_
11、P+STM#(DATABUF+N-1),DATA_PSTM#COFFTAB,COFF_PFIR_TASK:STM#INPUT,INBUF_PSTM #OUTPUT,OUTBUF_P STM#KS-1,BRC RPTBDLOOP-1 STM#N,BK LD*INBUF_P+,AFIR_FILTER: STLA,*DATA_P+% RPTZA,N-1MAC *DATA_P+0%,*COFF_P+0%,ASTHA,*OUTBUF_P+LOOP: EENDB EEND .end4.2 A/D转换源程序A/D转换程序,输入端接了实验电路产生的模拟信号(可选择方波、正弦波、三角波),调用该程序,对所选的模
12、拟信号进行采样,采样结果存在3000H开始的数据存储器中,可检查数据存储器的内容是否与采样波形的相对应。.mmregs .def _c_int00 .dataTEMP .usectTEMP, 20hTMP .set 6Ah t0_flag .usect vars,1 t0_cout .usect vars,1 AK_SPCR11 .set 0000000000100001bAK_SPCR21 .set 0000001011000001bAK_RCR11 .set 0000000001000000bAK_RCR21 .set 0000000001000000bAK_XCR11 .set 0000
13、000001000000b AK_XCR21 .set 0000000001000000bAK_SRGR11 .set 0000000000010000bAK_SRGR21 .set 0011000000010000bAK_PCR1 .set 0000101000000000b SPSA1 .set 48hMcBSP1 .set 49hDXR11 .set 43hDXR21 .set 42hDRR11 .set 41hDRR21 .set 40h SPCR11 .set 00h SPCR21 .set 01hRCR11 .set 02hRCR21 .set 03hXCR11 .set 04hX
14、CR21 .set 05hPCR1 .set 0EhSRGR11 .set 06hSRGR21 .set 07h .text_c_int00 b start nop nopNMIrete nopnop nopSINT17.space 4*16SINT18.space 4*16SINT19.space 4*16SINT20.space 4*16SINT21.space 4*16SINT22.space 4*16SINT23.space 4*16SINT24.space 4*16SINT25.space 4*16SINT26.space 4*16SINT27.space 4*16SINT28.sp
15、ace 4*16SINT29.space 4*16SINT30.space 4*16INT0rsbx intmretenopnopINT1rsbx intmretenopnopINT2rsbx intmretenopnopTINT:retenopnopnopRINT0:retenopnopnopXINT0:retenopnopnop SINT6.space 4*16SINT7.space 4*16INT3:retenopnopnop HPINT:retenopnopnop RINT1:BDRECIVnopnopnopXINT1:retenopnopnop;*start:LD #0,DPSTM#
16、200h,SPSTM #0FFFFh,SWWSRSTM #1020h,PMST SSBXCMPT STM#3FFFH,IFR LD#0AH,A STLA,TMP PORTW TMP,7H CALLADCBSPSTM#0400H,IMRSTM#3000H,AR0STM#256,AR1WAIT:IDLE1B WAIT ;* ADCBSPSTM #SPCR11,SPSA1STM #0000h,McBSP1NOPNOPSTM #SPCR21,SPSA1 STM #0000h,McBSP1 NOPNOPSTM #SPCR11,SPSA1STM #AK_SPCR11,McBSP1 NOPNOPLD#02H
17、,A STLA,TMP PORTW TMP,7HSTM #SPCR21,SPSA1STM #AK_SPCR21,McBSP1 NOPNOPSTM #RCR11,SPSA1STM #AK_RCR11,McBSP1 NOPNOPSTM #XCR11,SPSA1STM #AK_XCR11,McBSP1NOPNOPSTM #PCR1,SPSA1STM #AK_PCR1,McBSP1NOPNOP STM SRGR11,SPSA1 STM#AK_SRGR11,McBSP1 NOPNOPSTMSRGR21,SPSA1 STM#AK_SRGR21,McBSP1 NOP NOP STM #RCR21,SPSA1
18、STM #AK_RCR21,McBSP1 NOPNOP STM #XCR21,SPSA1STM #AK_XCR21,McBSP1NOPNOP RET;*RECIV: STM#3FFFH,IFRLDMDRR11,ALD#0,ARP STLA,*AR0+LD#1,ARPBANZLOOP1,*AR1-STM#3000H,AR0STM#256,AR1LOOP1: RETE;*.end4.3 D/A转换源程序D/A转换程序,该程序产生一个三角波。.mmregs .def _c_int00 .dataTEMP .usectTEMP, 10hTMP .set 6Ah flag .usect vars,1 c
19、out .usect vars,1 DK_SPCR10 .set 0001100010100001bDK_SPCR20 .set 0000001011100001bDK_RCR10 .set 0000000001000000bDK_RCR20 .set 0000000001000000bDK_XCR10 .set 0000000001000000bDK_XCR20 .set 0000000001000000bDK_SRGR10 .set 0000111100010011bDK_SRGR20 .set 0011000000111111bDK_PCR0 .set 0000101000001111b
20、 SPSA0 .set 38hMcBSP0 .set 39hDXR10 .set 23hDXR20 .set 22hDRR10 .set 21hDRR20 .set 20h SPCR10 .set 00h SPCR20 .set 01hRCR10 .set 02hRCR20 .set 03hXCR10 .set 04hXCR20 .set 05hPCR0 .set 0EhSRGR10 .set 06hSRGR20 .set 07h .text_c_int00b startnopnopNMIretenopnopnopSINT17.space 4*16SINT18.space 4*16SINT19
21、.space 4*16SINT20.space 4*16SINT21.space 4*16SINT22.space 4*16SINT23.space 4*16SINT24.space 4*16SINT25.space 4*16SINT26.space 4*16SINT27.space 4*16SINT28.space 4*16SINT29.space 4*16SINT30.space 4*16INT0reteretenopnopINT1reteretenopnopINT2reteretenopnopTINT:retenopnopnopRINT0:retenopnopnopXINT0:BXTno
22、pnopnop SINT6.space 4*16SINT7.space 4*16INT3:retenopnopnop HPINT:retenopnopnop RINT1:retenopnopnopXINT1:retenopnopnop;*startLD #0,DPSTM#200h,SPSTM #07FFFh,SWWSRSTM #1020h,PMSTST#0FFFH,*(cout) PORTW TMP,2H PORTW TMP,1H LD#0AH,A STLA,TMP PORTW TMP,7H ST#0,*(flag) CALLDACBSP LD #0FFFH,A SSBXINTMSTM#002
23、0H,IMRRSBXINTMSTLM A,DXR10 ST#0,TMP ;*WAIT: B WAIT ;*DACBSP:STM #SPCR10,SPSA0STM #0000h,McBSP0 NOPNOPSTM #SPCR20,SPSA0STM #0000h,McBSP0NOPNOPSTM #SPCR10,SPSA0STM #DK_SPCR10,McBSP0 NOPNOPSTM #SPCR20,SPSA0STM #DK_SPCR20,McBSP0 NOPNOPSTM #RCR10,SPSA0STM #DK_RCR10,McBSP0 NOPNOP STM #XCR10,SPSA0STM #DK_X
24、CR10,McBSP0NOPNOPSTM #PCR0,SPSA0STM #DK_PCR0,McBSP0NOPNOP STMSRGR10,SPSA0 STM#DK_SRGR10,McBSP0 NOP NOP STMSRGR20,SPSA0 STM#DK_SRGR20,McBSP0 NOP NOP STM #RCR20,SPSA0STM #DK_RCR20,McBSP0 NOPNOP STM #XCR20,SPSA0STM #DK_XCR20,McBSP0NOPNOPRET;*XT: RSBX XFLD*(cout),AADD #-50,A STLA,*(cout)BCXT1,ANEQST#0FF
25、FH,*(cout)XT1: AND#0FFCH,ACMPMTMP,#0BCXT2,TCOR#1000H,A ST#0,TMPBXT3XT2:OR#8000H,AST#1,TMP XT3:STLMA,DXR10RETE ;*.en4.4 A/D、D/A转换源程序A/D转换器和D/A转换器的直通程序,由A/D采样实验电路产生的模拟信号(可选择方波、正弦波、三角波),再由D/A直接输出,采样一个点输出一个点。.mmregs .def _c_int00 .dataTEMP .usectTEMP, 20h t0_flag .usect vars,1 t0_cout .usect vars,1 AK_S
26、PCR11 .set 0000000000100001bAK_SPCR21 .set 0000001011000001bAK_RCR11 .set 0000000001000000bAK_RCR21 .set 0000000001000000bAK_XCR11 .set 0000000001000000bAK_XCR21 .set 0000000001000000bAK_SRGR11 .set 0000000000010000bAK_SRGR21 .set 0011000000010000bAK_PCR1 .set 0000101000000000bSPSA1 .set 48hMcBSP1 .
27、set 49hDXR11 .set 43hDXR21 .set 42hDRR11 .set 41hDRR21 .set 40h TMP .set 6Ah SPCR11 .set 00h SPCR21 .set 01hRCR11 .set 02hRCR21 .set 03hXCR11 .set 04hXCR21 .set 05hPCR1 .set 0EhSRGR11 .set 06hSRGR21 .set 07h DK_SPCR10 .set 0001100010100001b DK_SPCR20 .set 0000001011100001b DK_RCR10 .set 000000000100
28、0000bDK_RCR20 .set 0000000001000000bDK_XCR10 .set 0000000001000000b DK_XCR20 .set 0000000001000000b DK_SRGR10 .set 0000111100000100bDK_SRGR20 .set 0011000000010000bDK_PCR0 .set 0000101000001111b SPSA0.set 38hMcBSP0.set 39hDXR10 .set 23hDXR20.set 22hDRR10 .set 21hDRR20 .set 20h SPCR10 .set 00h SPCR20
29、 .set 01hRCR10 .set 02hRCR20 .set 03hXCR10 .set 04hXCR20 .set 05hPCR0 .set 0EhSRGR10 .set 06hSRGR20 .set 07h .text_c_int00b startnopnopNMIretenopnopnopSINT17.space 4*16SINT18.space 4*16SINT19.space 4*16SINT20.space 4*16SINT21.space 4*16SINT22.space 4*16SINT23.space 4*16SINT24.space 4*16SINT25.space
30、4*16SINT26.space 4*16SINT27.space 4*16SINT28.space 4*16SINT29.space 4*16SINT30.space 4*16INT0rsbx intmretenopnopINT1rsbx intmretenopnopINT2rsbx intmretenopnopTINT:retenopnopnopRINT0:retenopnopnopXINT0:BDXTnopnopnop SINT6.space 4*16SINT7.space 4*16INT3:retenopnopnop HPINT:retenopnopnop RINT1:BDRECIVn
31、opnopnopXINT1:retenopnopnop;*start:LD #0,DPSTM#200h,SPSTM #07FFFh,SWWSRSTM #1020h,PMST STM#3FFFH,IFR PORTW TMP,2H PORTW TMP,1H LD#0AH,A STLA,TMP PORTW TMP,7H CALLADCBSP CALLDACBSP STM#0420H,IMRRSBXINTMWAIT:IDLE1B WAIT ;* ADCBSPSTM #SPCR11,SPSA1 STM #0000h,McBSP1 NOPNOPSTM #SPCR21,SPSA1 STM #0000h,Mc
32、BSP1 NOPNOPSTM #SPCR11,SPSA1STM #AK_SPCR11,McBSP1 NOPNOPLD#02H,A STLA,TMP PORTW TMP,7H STM #SPCR21,SPSA1STM #AK_SPCR21,McBSP1 NOPNOPSTM #RCR11,SPSA1STM #AK_RCR11,McBSP1 NOPNOPSTM #XCR11,SPSA1STM #AK_XCR11,McBSP1NOPNOPSTM #PCR1,SPSA1STM #AK_PCR1,McBSP1NOPNOP STMSRGR11,SPSA1 STM#AK_SRGR11,McBSP1 NOP N
33、OP STMSRGR21,SPSA1 STM#AK_SRGR21,McBSP1 NOP NOP STM #RCR21,SPSA1STM #AK_RCR21,McBSP1 NOPNOPSTM #XCR21,SPSA1STM #AK_XCR21,McBSP1NOPNOP RET;*RECIV: LDMDRR11,A RETE ;*XT: STLMA,DXR10 RETE ;*DACBSP:STM #SPCR10,SPSA0 STM #0000h,McBSP0 NOPNOPSTM #SPCR20,SPSA0 STM #0000h,McBSP0 NOPNOPSTM #SPCR10,SPSA0STM #
34、DK_SPCR10,McBSP0NOPNOPSTM #SPCR20,SPSA0STM #DK_SPCR20,McBSP0NOPNOPSTM #RCR10,SPSA0STM #DK_RCR10,McBSP0 NOPNOPSTM #XCR10,SPSA0STM #DK_XCR10,McBSP0NOPNOPSTM #PCR0,SPSA0STM #DK_PCR0,McBSP0NOPNOP STMSRGR10,SPSA0 STM#DK_SRGR10,McBSP0 NOP NOP STMSRGR20,SPSA0 STM#DK_SRGR20,McBSP0 NOP NOP STM #RCR20,SPSA0ST
35、M #DK_RCR20,McBSP0 NOPNOP STM #XCR20,SPSA0STM #DK_XCR20,McBSP0NOPNOP RET;*.end4.5 A/D、FIR、D/A综合程序该程序综合完成以下功能:1、通过A/D转换器采集数据,由A/D采样实验电路产生的模拟信号(可选择方波、正弦波、三角波),采集的数据x(n)存放在#3000h地址开始的内存单元。2、采用设计好的FIR低通滤波器,对采集的数据进行低通滤波,低通滤波后的数据y(n)存放在#2400h地址开始的内存单元。3、滤波得到的数据通过D/A转换输出,在示波器上可以观察输出信号。采样一个数据,滤一个数据,输出一个数据。.mmregs .def _c_int00TMP .set 6Ah AK_SPCR11 .set 0000000000100001b AK_SPCR21 .set 0000001011000001bAK_RCR11 .set 0000000001000000b AK_RCR21 .set 0000000001000000b AK_XCR11 .set 00000
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100