最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

DSP实验报告3

IT圈 admin 51浏览 0评论

2024年3月11日发(作者:载妍)

DSP实验报告3

姓名 学号

时间 2015.6.9 地点 实验大楼A631

实验题目 卷积运算

一、 实验目的

1、学习如何用DSP的C语言程序实现卷积与相关的计算;

2、学习用CCS调试程序的详细过程;

3、学习如何设置断点。

二、 实验内容及步骤

1、创建一个新项目工程

将“maxminmath文件夹”复制到“D:CCStudio_v3.3MyProjects”下。

2、打开工程调试程序,并说明程序的功能;

3、编程实现以下功能:

已知

x

n

R

4

n

h

n

R

4

n

,求

y

n

x

n

h

n

a、采用子程序调用的方式实现,并且注释程序;

b、把x,h和y添加到Watch窗口中作为观察对象;

c、观察三个数组从初始化到卷积运算结束整个过程中的变化(可单击变量名前的“+”号把

数组展开),并将变化过程记录下来。

三、 实验程序

给出卷积运算的子程序:

void main()

{

int x[7]={0,0,0,1,1,1,1},h[7]={1,1,1,1,0,0,0},y[7]={0};

int i,j;

for(i=0;i<7;i++)

for(j=0;j<7;j++)

{if(i+j<7)

y[i]=y[i]+x[i+j]*h[j];

y[i]=y[i]%2;}

}

四、 实验结果

y值的变化情况如下:

五、 实验思考题

1、试用汇编语言编写实现卷积运算的程序;

.global start ;定义全局变量

.mmregs

.data; 开始数据段

.bss m,1; 开设全局变量,每个变量占用一个字

.bss n,1

.bss z,1

.text; 开始文本段

start: ST #1000h,AR1

ST #3000h,AR2

ST #5000h,AR3

ST #0,@m

RPT 999

RPT m+

LOOP: MVPD 6000h

MVDD *AR1+,*AR4

MVDD *AR2+,*AR5

MACP *AR4,*AR5,src

B LOOP

ST A,*AR3+

xh: b xh;空循环

.end

2、考虑如何实现复数的卷积运算。

用四个矩阵分别存储数组x和h中的复数实部和虚部,对它们分别计算乘加得到另外四个数

组,将实部和实部、虚部和虚部乘得的数组相减就可得到复数卷积的最终实部,然后将实部

和虚部相乘的两个数组相加可得最终的虚部。

六、 小结:

不得不说,这次的实验很难解决,程序调试那块有点复杂,请教完同学之后顺利得以解决。

2024年3月11日发(作者:载妍)

DSP实验报告3

姓名 学号

时间 2015.6.9 地点 实验大楼A631

实验题目 卷积运算

一、 实验目的

1、学习如何用DSP的C语言程序实现卷积与相关的计算;

2、学习用CCS调试程序的详细过程;

3、学习如何设置断点。

二、 实验内容及步骤

1、创建一个新项目工程

将“maxminmath文件夹”复制到“D:CCStudio_v3.3MyProjects”下。

2、打开工程调试程序,并说明程序的功能;

3、编程实现以下功能:

已知

x

n

R

4

n

h

n

R

4

n

,求

y

n

x

n

h

n

a、采用子程序调用的方式实现,并且注释程序;

b、把x,h和y添加到Watch窗口中作为观察对象;

c、观察三个数组从初始化到卷积运算结束整个过程中的变化(可单击变量名前的“+”号把

数组展开),并将变化过程记录下来。

三、 实验程序

给出卷积运算的子程序:

void main()

{

int x[7]={0,0,0,1,1,1,1},h[7]={1,1,1,1,0,0,0},y[7]={0};

int i,j;

for(i=0;i<7;i++)

for(j=0;j<7;j++)

{if(i+j<7)

y[i]=y[i]+x[i+j]*h[j];

y[i]=y[i]%2;}

}

四、 实验结果

y值的变化情况如下:

五、 实验思考题

1、试用汇编语言编写实现卷积运算的程序;

.global start ;定义全局变量

.mmregs

.data; 开始数据段

.bss m,1; 开设全局变量,每个变量占用一个字

.bss n,1

.bss z,1

.text; 开始文本段

start: ST #1000h,AR1

ST #3000h,AR2

ST #5000h,AR3

ST #0,@m

RPT 999

RPT m+

LOOP: MVPD 6000h

MVDD *AR1+,*AR4

MVDD *AR2+,*AR5

MACP *AR4,*AR5,src

B LOOP

ST A,*AR3+

xh: b xh;空循环

.end

2、考虑如何实现复数的卷积运算。

用四个矩阵分别存储数组x和h中的复数实部和虚部,对它们分别计算乘加得到另外四个数

组,将实部和实部、虚部和虚部乘得的数组相减就可得到复数卷积的最终实部,然后将实部

和虚部相乘的两个数组相加可得最终的虚部。

六、 小结:

不得不说,这次的实验很难解决,程序调试那块有点复杂,请教完同学之后顺利得以解决。

发布评论

评论列表 (0)

  1. 暂无评论