DSP课程设计论文 - 图文(3)

2019-08-02 01:38

Columns 19 through 26

0.0256 -0.0177 -0.0119 0.0078 0.0048 -0.0029 -0.0018 0.00144

5.2 汇编源程序

采用循环缓冲区实现FIR滤波器的源程序如下: .title \ .mmregs

.def start .bss yn,1

xn .usect \hn .usect \

indata .usect \outdata .usect \

.data fir_coff:

.word 14*32768/10000,-18*32768/10000 .word -29*32768/10000,48*32768/10000 .word 78*32768/10000,-119*32768/10000 .word -177*32768/10000,256*32768/10000 .word 368*32768/10000,-536*32768/10000 .word -821*32768/10000,1452*32768/10000 .word 4484*32768/10000,4484*32768/10000 .word 1452*32768/10000,-821*32768/10000 .word -536*32768/10000,368*32768/10000 .word 256*32768/10000,-177*32768/10000 .word -119*32768/10000,78*32768/10000 .word 48*32768/10000,-29*32768/10000 .word -18*32768/10000,14*32768/10000

.text start:

ssbx frct ;使用小数运算 stm #hn,ar1 ;系数首地址 rpt #39 ;将系数移入循

mvpd fir_coff,*ar1+ ;环缓冲区 stm #-1,ar0

stm #outdata,ar5 stm #indata,ar4 stm #xn+39,ar2

rpt #39 ;将输入数据移入 mvdd *ar4+,*ar2+0% ;循环缓冲区

10

stm #xn+39,ar2 ;指向第一个输入 stm #hn+39,ar3

stm #40,bk ;缓冲区大小40 stm #1024,brc ;块重复1024次 stm #-1,ar0

rptb loop-1 ;块程序重复大小 rptz a,#39 ;计算一个输出 mac *ar2+0%,*ar3+0%,a

sth a,*(yn) ;保存输出 mvkd *(yn),*ar5+

mvdd *ar4+,*ar2+0% ;读进一个输入 loop: nop

b loop

.end

5.3 汇编源程序的连接命令文件

在TMS320VC5402DSP的硬件系统中,用户可使用的程序存储空间:片内0080H~3FFFH,片外48000H~4FFFFH;用户可使用的数据存储空间:片内0080H~3FFFFH,片外4000H~7FFFH。基于TMS320VC5402的资源配置,FIR滤波器源程序的连接命令文件如下: MEMORY

{ PAGE 0:

PARAM: org=1000h len=1000h PAGE 1:

SPRAM org=2060h len=0020h

DARAM: org=2080h len=9f380h }

SECTIONS {

.text :> PARAM PAGE 0 .data :> PARAM PAGE 0 .bss :> SPRAM PAGE 1

xn : align (64) {} > DARAM PAGE 1 hn : align (64) {} > DARAM PAGE 1 indata :> DARAM PAGE 1

outdata :> DARAM PAGE 1 }

6 .FIR滤波器的检验

6.1 利用matlab导出“indata.dat”文件

在matlab中输入下面的程序便可以导出“indata.dat”文件: f12=1000; %/Hz f13=16000; %/Hz

fs=40000; %/采样 Hz

11

N=1000; %数据个数 T=1/fs; %采样周期 n=0:N;

x12=0.7*sin(2*pi*f12*n*T); x13=0.5*sin(2*pi*f13*n*T); x_base=( x12+x13); %待滤波信号波形 figure(1) plot(x_base) %待滤波信号频谱 figure(2)

yff=abs(fft(x_base)) df=n*(fs/N) plot(df,yff)

xout=x_base/max(x_base);%归一化 xto_ccs=round(32767*xout)

fid=fopen('input.dat','w');%打开文件

fprintf(fid,'1651 1 0 0 0\\n');%输出文件头 fprintf(fid,'%d\\n',xto_ccs);%输出 fclose(fid);

6.2 FIR滤波器检验的验证过程

1)进入CCS,编译原文件,生成*.out文件

2)选择File→Load Program→打开D\\lab\\Debug\\fir.out

3) 选择File→Data→Load,在弹出的对话框中选择本实验文件夹下的

indata.dat 文件并打开,在弹出的对话框中输入起始地址indata和长度1024

4)输入完后点击OK,然后选择Debug →Run

5)选择View→Graph→Time/Frequency,通过设置Graph Property Dialog可以查看输入与输出的时域与频域波形,设置的参数和波形截图如下所示:

滤波前的语音信号的时域Graph Property Dialog设置及时域波形图分别如图6、7所示:

12

图6 滤波前语音信号的时域Graph Property Dialog设置参数图

图7 滤波前语音信号的时域波形图

滤波前的语音信号的频域Graph Property Dialog设置及频域波形图分别如图8、9所示:

13

图8 滤波前语音信号的频域Graph Property Dialog设置参数图

图9 滤波前语音信号的频域波形图

滤波后的语音信号的时域Graph Property Dialog设置及时域波形图分别如图10、11所示:

14


DSP课程设计论文 - 图文(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:20112013-05-15-15-23-25.5政治学原理复习题(答案准)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: