DSP实验报告.docx

上传人:b****5 文档编号:7677570 上传时间:2023-01-25 格式:DOCX 页数:9 大小:275.73KB
下载 相关 举报
DSP实验报告.docx_第1页
第1页 / 共9页
DSP实验报告.docx_第2页
第2页 / 共9页
DSP实验报告.docx_第3页
第3页 / 共9页
DSP实验报告.docx_第4页
第4页 / 共9页
DSP实验报告.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

DSP实验报告.docx

《DSP实验报告.docx》由会员分享,可在线阅读,更多相关《DSP实验报告.docx(9页珍藏版)》请在冰豆网上搜索。

DSP实验报告.docx

DSP实验报告

电子科技大学DSP实验报告

实验一:

VisualDSP++开发环境和流程、FIR滤波器设计

实验目的:

熟悉VisualDSP++开发环境,熟练使用开发软件,初步了解ADSP汇编程序结构。

在此基础上,掌握在DSP处理器上设计和实现FIR滤波器的方法。

实验器材

计算机、MATLAB仿真软件、VisualDSP++软件。

实验内容:

1、简单自学VisualDSP++自带的例子

2、利用MATLAB产生包含三个不同频率正弦信号的测试数据,设计一个带通滤波器,滤去频率最小和最大的两个正弦信号,而仅允许中间频率值的信号通过。

3、编写FIR测试程序,利用上述设计的滤波器系数和测试数据测试该滤波器,用VisualDSP++的SIMULATOR观察滤波前后的信号波形

实验步骤:

1、启动VisualDSP++,打开tutorial中的项目

2、全速运行得到结果Dotproduct[0]=0.000000;Dotproduct[1]=0.707107;

Dotproduct[2]=-0.500000

3、利用MATLAB产生测试数据和FIR滤波器系数

4、将mydata.dat和coff.dat文件拷贝到VisualDSP++工程文件夹下,设计带通滤波器:

#include"def21060.h"

#defineSAMPLES101//0x3E8

#defineTAPS21

.EXTERNfir,fir_init;

.SEGMENT/PMpm_data;

.VARcoefs[TAPS]="coff.dat";/*FIRcoefficientstoredinfile*/

.ENDSEG;

.SEGMENT/DMdm_data;

.VARdline[TAPS];/*noneedtomakethiscircular*/

.ENDSEG;

.SEGMENT/DMdm_data;

.VARinbuf[SAMPLES]="mydata.dat";

.VARoutbuf[SAMPLES];

.ENDSEG;

.SEGMENT/PMpm_rsti;

initial_setup:

jumpbegin(db);

pmwait=0x0021;

dmwait=0x8421;

.ENDSEG;

.SEGMENT/PMpm_code;

begin:

l1=0;

l2=0;

l0=TAPS;

l8=TAPS;

m0=1;

m8=1;

r0=TAPS;

callfir_init(db);/*setuptheFIRfilterDAGsandzerodelayline*/

b1=inbuf;

b2=outbuf;

b0=dline;

b8=coefs;

lcntr=SAMPLES,dofilteringuntillce;

callfir(db);/*inputsamplepassedinF0,outputreturnedinF0*/

r1=TAPS-3;

f0=dm(i1,1);

filtering:

dm(i2,1)=f0;

done:

jumpdone;

.ENDSEG;

通过修改coff.dat和mydata.dat文件中的数据,分别实现高通、低通、带通滤波器。

波形:

高通滤波器

结论:

在滤波器设计中,用MATLAB得到了相关滤波器系数和测试信号,在DSP++上进行滤波!

实验二:

基于SIMULATOR的DFT及音频音量调节

实验目的:

利用SIMULATOR实现几种基本的数字信号处理算法之一DFT运算,初步接触利用DSP处理音频信号

实验器材

计算机、MATLAB仿真软件、VisualDSP++软件、EZ-KIT实验开发板。

实验内容:

1、DFT运算:

编写对输入序列进行DFT运算以及对DFT运算结果进行求模的汇编程序;利用plot功能,观察波形。

2、音量调节:

按下不同按键,通过耳机观察音频音量是否增大、减小、静音。

实验步骤:

#include"def21160.h"/*MemoryMappedIOPregisterdefinitions*/

#defineN64/*Constantfornumberofpointsininput*/

.section/DMseg_dmda;/*Declarevariablesindatamemory*/

.VARinput[N]="sin64.dat";

.VARreal[N];

.VARimag[N];

.section/PMseg_pmda;/*Declarevariablesinprogrammemory*/

.VARsine[N]="sin64.dat";/*Cosineisderivedusingashifted*/

/*pointertothiscircularbuffer.*/

.section/PMseg_rth;

rth:

nop;nop;nop;nop;

nop;

jump_main;

nop;nop;

.section/PMseg_pmco;/*ExamplesetupforDFTroutine*/

_main:

BITSETMODE1CBUFEN;

M1=1;

M9=1;

B0=input;

L0=@input;/*Inputbufferiscircular*/

I1=imag;

L1=0;

CALLdft(DB);/*Exampledelayedcallinstruction*/

I2=real;/*Indelayfieldofcall*/

L2=0;/*''*/

_exit:

IDLE;

dft:

B8=sine;/*Sinepointer*/

L8=@sine;

B9=sine;/*Derivecosinefromsineby*/

I9=sine+N/4;/*shiftingpointerover2pi/4*/

L9=@sine;/*andusingacircularbuffer.*/

I10=0;/*I10isusedtoincrementthe*/

L10=0;/*frequencyofsinelookup.*/

F15=0;/*Zerotoclearaccumulators*/

LCNTR=N,DOouterUNTILLCE;

F8=PASSF15,M8=I10;/*Updatefrequency*/

F9=PASSF15,F0=DM(I0,M1),F5=PM(I9,M8);

F12=F0*F5,F4=PM(I8,M8);

LCNTR=N-1,DOinnerUNTILLCE;

F13=F0*F4,F9=F9+F12,F0=DM(I0,M1),F5=PM(I9,M8);

inner:

F12=F0*F5,F8=F8-F13,F4=PM(I8,M8);

F13=F0*F4,F9=F9+F12;

F8=F8-F13,DM(I2,M1)=F9;/*Writerealresult*/

MODIFY(I10,M9);/*Incrementfrequency*/

outer:

DM(I1,M1)=F8;/*Writeimaginaryresult*/

RTS;

DFT实验结果:

1、打开示例工程TT_VolumeControl,运行所给示例程序,观察开发板led灯得亮灭情况,按下不同按键,通过耳机观察音频音量是否增大、减小、静音。

音量调节实验结果:

通过按键尝试,发现可以减小、增大耳机中传出声音音量的大小,也可以一次是音量静音,说明中断按键也实现了相应功能,整个系统正常工作。

实验结论:

通过在开发板上进行试验,对DSP硬件有了初步了解,也初步认识了DSP的中断系统。

实验三:

基于SIMULATOR的卷积及FFT的了解

实验目的:

学习卷积,进一步巩固VisualDSP++的使用,同时加深巩固对基本的数字信号处理理论的理解。

实验器材:

计算机、MATLAB仿真软件、VisualDSP++软件。

实验内容:

1、时域卷积:

输入不同的序列x和y,编译并运行程序,通过MEMORY命令和plot功能观察各种输入、输出序列的数值和波形。

2、FFT运算

运行所给示例程序,观察输入输出波形。

实验步骤:

#include"def21060.h"

#defineM6

#defineN3

.section/dmdm_data;

.varinputx[M]={1e+0,2e+0,1e+0,3e+0,2e+0,1e+0};

.varinputy[N]={1e+0,1e+0,2e+0};

.section/pmpm_rsti;

jumpstart;

.section/pmpm_data;

.varoutput[M+2*N-2]={0,0,0,0,0,0,0,0,0,0};

.section/pmpm_code;

start:

i0=inputx;

m0=1;

i8=output+N-1;

m8=1;

lcntr=M,dolabeluntillce;

f0=dm(i0,m0);

label:

pm(i8,m8)=f0;

conv:

i10=output;

m10=1;

m1=-1;

lcntr=M+N-1,doouteruntillce;

i1=inputy+N-1;

i9=i10;

f9=0;

lcntr=N,doinneruntillce;

f0=dm(i1,m1),f5=pm(i9,m10);

f12=f0*f5;

inner:

f9=f9+f12;

outer:

pm(i10,m10)=f9;

end:

idle;

实验结果:

卷积波形

实验结论:

通过本次试验,掌握了FFT的基本算法思想,通过对波形的观察,进一步了解了FFT算法的实质,进而利用FFT变换得到了两个信号的卷积,把FFT的作用落到了实处,知道了FFT的具体应用之一。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1