DSP实验报告

合集下载

dsp实验报告总结doc

dsp实验报告总结doc
3.1 硬件总体结构
3.2 DSP总体结构
3.3 电源模块设计
3.4 时钟模块设计
3.5 存储器模块设计
3.6复位模块设计
篇二:DSP实验报告
DSP课程设计 实 验 报 告
语音压缩、存储和回放
学 院:电子信息工程学院电子科学与技术专业 设计人员: 吴莲梅 08214085电子0803班 杨 莹 08214088电子0803班指导老师: 日 期:
(1)A律限制采样值为12比特,A律的压缩可以按照下列公式进行定义:
A|x|11?lnA|x|1
(0?|x|?)?sgn(x)(?|x|?1)F(x)?sgn(x)
1?lnAA1?lnAA
式中,A是压缩参数(在欧洲,A=87.6)x是需要压缩的归一化整数。从线性到A律的压缩转换如下表所示:(压缩后的码字组成:比特0-3表示量化值,比特4-6表示段值,压缩后
一、 设计目的
设计一个功能完备,能够独立运行的精简DSP硬件系统,并设计简单的DSP控制程序。
二、 系统分析
1.1设计要求 硬件要求:
(1)使用TMS320VC5416作为核心芯片。 (2)具有最简单的led控制功能。 (3)具有存放程序的外部Flash芯片。 (4)外部输入+5V电源。 (5)绘制出系统的功能框图。
(6) 仪器仪表--如频谱分析、函数发生、锁相环、地震处理等。 (7) 自动控制--如引擎控制、深空、自动驾驶、机器人控制、磁盘控制。 (8) 医疗--如助听、超声设备、诊断工具、病人监护等。(9) 家用电器--如高保真音响、音乐合成、音调控制、玩具与游戏、数字 电话/电视等 DSP 的发展前景 DSP 的功能越来越强,应用越来越广,达到甚至超过了微控制器的功能,比 微控制器做得更好而且价格更便宜, 许多家电用第二代 DSP 来控制大功率电机就 是一个很好的例子。汽车、个人通信装置、家用电器以及数以百万计的工厂使用 DSP 系统。数码相机、IP 电话和手持电子设备的热销带来了对 DSP 芯片的巨大需 求。而手机、

dsp原理与应用实验报告总结

dsp原理与应用实验报告总结

dsp原理与应用实验报告总结DSP(Digital Signal Processing)数字信号处理是利用数字技术对信号进行处理和分析的一种方法。

在本次实验中,我们探索了DSP的原理和应用,并进行了一系列实验以验证其在实际应用中的效果。

以下是对实验结果的总结与分析。

实验一:数字滤波器设计与性能测试在本实验中,我们设计了数字滤波器,并通过性能测试来评估其滤波效果。

通过对不同类型的滤波器进行设计和实现,我们了解到数字滤波器在信号处理中的重要性和应用。

实验二:数字信号调制与解调本实验旨在通过数字信号调制与解调的过程,了解数字信号的传输原理与方法。

通过模拟调制与解调过程,我们成功实现了数字信号的传输与还原,验证了调制与解调的可行性。

实验三:数字信号的傅里叶变换与频谱分析傅里叶变换是一种重要的信号分析方法,可以将信号从时域转换到频域,揭示信号的频谱特性。

本实验中,我们学习了傅里叶变换的原理,并通过实验掌握了频谱分析的方法与技巧。

实验四:数字信号的陷波滤波与去噪处理陷波滤波是一种常用的去除特定频率噪声的方法,本实验中我们学习了数字信号的陷波滤波原理,并通过实验验证了其在去噪处理中的有效性。

实验五:DSP在音频处理中的应用音频处理是DSP的一个重要应用领域,本实验中我们探索了DSP在音频处理中的应用。

通过实验,我们成功实现了音频信号的降噪、均衡和混响处理,并对其效果进行了评估。

实验六:DSP在图像处理中的应用图像处理是另一个重要的DSP应用领域,本实验中我们了解了DSP在图像处理中的一些基本原理和方法。

通过实验,我们实现了图像的滤波、边缘检测和图像增强等处理,并观察到了不同算法对图像质量的影响。

通过以上一系列实验,我们深入了解了DSP的原理与应用,并对不同领域下的信号处理方法有了更深刻的认识。

本次实验不仅加深了我们对数字信号处理的理解,也为日后在相关领域的研究与实践提供了基础。

通过实验的结果和总结,我们可以得出结论:DSP作为一种数字信号处理的方法,具有广泛的应用前景和重要的实际意义。

DSP实验报告6

DSP实验报告6

DSP第六、七次实验报告1. 实验目的:(1)进一步熟悉Matlab实验环境和语言。

(2)熟悉各种滤波器的结构及Matlab实现语言。

(3)掌握用冲击响应不变法和双线性变换法设计IIR滤波器的方法。

(4)掌握用窗函数法和频率抽样法设计FIR滤波器的方法。

2. 实验内容及总结:1.滤波器结构:(1)IIR滤波器各种结构1、直接型结构例如直接型滤波器系统函数, 则有系数向量a=[1,a1,a2,a3],b=[b0,b1,b2], 利用:Y=filter[b,a,x]求信号x(n)通过此滤波器的输出。

2、由系统函数或差分方程求系统的二阶分式(含一阶分式)的级联结构将例如的系统函数重写为二阶分式节的级联型, 利用:[sos,G]=tf2sos(b,a)3、由二阶分式的级联结构转换成系统函数的直接结构是第二步的逆运算, 调用函数:[b,a] = sos2tf(sos)可以求得系数向量a,b, 从而得到H(z)4、由系统函数求部分分式展开(留数及其极点计算)即求z反变换的部分分式展开法, 利用:[r,p,c]=residuez(b,a)其中极点为p, 留数为r, 直接项系数为c。

5、由r,p,c求系统函数即第4步的逆运算, 利用:[b,a]=residuez(r,p,c)6、由直接型结构转换为并联型结构需开发函数:[C,B,A]=tf2par(b,a)其中, b,a为直接型的系数向量, C,B,A为并联型实系数向量, 基本思想是: 1.反复调用[r,p,c]=residuez(b,a)求出极点及留数;2.利用cplxpair函数把极点、留数对按复共轭极点-留数对, 实极点-留数对的顺序排列;3.开发cplxcomp函数, 保证极点和留数相互对应;4.调用[b,a]=residuez(r,p,c)计算并联二阶节的分子分母。

7、由并联型结构转换成直接型结构开发函数:[b,a]=par2tf(C,B,A)为[C,B,A]=tf2par(b,a)的逆函数。

dsp数据存取实验报告

dsp数据存取实验报告

竭诚为您提供优质文档/双击可除dsp数据存取实验报告篇一:Dsp实验一数据存取实验《Dsp技术》课程实验报告学生姓名:所在班级:指导教师:记分及评价:一、实验名称Dsp数据存取实验二、实验目的(1)掌握Tms320F2812程序空间的分配(2)掌握Tms320F2812数据控件的分配三、实验内容(3)往0x003F9020地址开始的八个存储单元依次写入0-8的八个数(4)读取0x003F9020地址开始的八个存储单元内容并写入0x003F9028地址开始的八个存储单元内。

(5)从0x003F9020开始的八个存储单元的内容依次与0x003F9020地址开始的八个存储单元相乘,运算结果存入0x003F9000开始的八个存储单元内。

(6)从0x003F9020开始的八个存储单元的内容依次与0x003F9020地址开始的八个存储内容相加,运算结果依次存入0x003F9038地址开始的八个存储单元内。

四、实验程序与结果分析程序和结果如图1:图1结果voidmain(void){inti;volatileunsignedint*room=(volatileunsignedint*)0x3f 9020;volatileunsignedint*room2=(volatileunsignedint*)0x3 f902F;volatileunsignedint*room3=(volatileunsignedint*)0x3 f9030;volatileunsignedint*room4=(volatileunsignedint*)0x3 f903F;//Initializesystemcontrol://pLL,watchDog,enableperipheralclocksInitsysctrl();//DisablecpuinterruptsDInT;//Disablecpuinterruptsandclearallcpuinterruptflags: IeR=0x0000;IFR=0x0000;/*将0xAAAA写入从数据空间的地址0x3f9020开始的8个单元中*/for(i=0;i {*room=0x0000+i;room++;}/*从0x3f9020开始的8个空间读出数据依次写入从0x3f9028开始的8个单元中*/for(i=0;i {*room2=*(room-1);room--;room2--;}room2++;for(i=0;i {*room3=((*room)*(*room2));//0x003F9028开始的八个存储单元的内容依次与0x003F9030地址开始的八个存储单元相乘room++;room2++;room3++;}room--;room2--;for(i=0;i {*room4=((*room)+(*room2));//0x003F9028开始的八个存储单元的内容依次与0x003F9038地址开始的八个存储内容相加room--;room2--;room4--;}}五、小结通过本次实验,我学会了Tms320F2812的寻址方式,明白了试验箱扩展存储器空间的寻址方法以及ccs修改、填充Dsp内存单元的方法,加深了对于ccs2000软件的应用,为接下来的实验提供良好的帮助。

DSP实验报告

DSP实验报告

DSP实验报告⼀、综合实验内容和要求1. 实验⽬的(1) 学习掌握CCS3.3编译器的使⽤;(2) 通过实验学习掌握TMS320F28335的GPIO ,浮点计算; (3) 学习并掌握A/D 模块的使⽤⽅法;(4) 学习并掌握中断⽅式和查询⽅式的串⼝通信; (5) 学习并掌握28335DSP 的定时器相关的设置与运⽤; (6) 学习信号时域分析的⽅法,了解相关波形参数的计算⽅法; (7) 了解数字滤波的⼀些基本⽅法; (8) 学习数码管的驱动及运⽤。

(9) 学习MATLAB 串⼝以及画图的运⽤。

2. 实验设计内容与要求:(1) 对给定的周期波形信号采⽤TI 公司的TMS320F28335DSP ,利⽤试验箱上的相关资源计算出波形的周期T ,波形的有效值rms V ,平均值avg V 。

其中,有效值和平均值的计算公式(数字量的离散公式)如下:rms V =1()NavgiV u i N=∑式中N 为⼀个周期采样点数,()u i 为采样序列中的第i 个采样点。

(2) 通过算法计算出波形的有效值和平均值,利⽤串⼝通信把测得的数据发送到串⼝助⼿查看,或者在MATLAB 上编写上位机程序,把发送的数据在MATLAB 上画出来。

(3) 把测得的数据实时显⽰在数码管上。

⼆、硬件电路图1为试验系统的硬件图,硬件电路主要包括TMS320F28335DSP 实验箱,SEED-XDS510仿真器,数码管,SCI,信号发⽣器,电脑,串⼝线等。

图1 硬件电路图三、实验原理本试验主要是通过程序去测量⼀个周期波形的有效值、平均值、峰值等相关参数。

计算离散数据的有效值可⽤公式rms V =平均值可⽤公式1()N avgiV u i N=∑。

所以⾸先需要测出波形的周期,然后确定每个周期需要采样的点数N ,最后去计算平均值和有效值。

v mv 1图2 理想输⼊采样波形如图2所⽰为⼀个正弦输⼊波形,m V 为输⼊波形的峰值,1V 是介于0~ m V 的⼀个值。

DSP实验报告_6

DSP实验报告_6

实验一: 闪灯实验熟悉DSP 软硬件测试系统实验目的1.了解SHARC 系列高性能数字信号处理器的程序开发过程和编程语言;2.熟悉集成开发工具VisualDSP++, 学会使用VisualDSP++进行SHARC 系列ADSP 的程序开发、编译与调试;3.掌握SHARC 系列ADSP 的程序加载设计和加载过程。

实验内容利用波形产生信号板, 结合FPGA 编程技术和程序编程器, 编写测试ADSP21065L 和FPGA 之间硬件连接的应用程序, 同时完成应用程序的加载和脱机操作, 在信号指示灯“HL2”上产生可调周期的脉冲信号, “点亮”与“熄灭”指示灯HL2。

实验要求通过DSP 编程, 在其FLAG11引脚上模拟如下波形的周期信号:要求:(1) 500H T ms >,500L T ms >. (2) 并用示波器查看波形, 测量信号周期。

实验步骤1. 熟悉电路图, 清楚波形产生电路板ADSP21065L 与可编程FPGA 器件之间的连接关系;2. 编写FPGA 程序。

在FPGA 内部将ADSP21065L 的标志引脚FLAG11(引脚号26)设置为输出, 作为FPGA 的输入信号, 在FPGA 内部编程将该信号直接输出在发FPGA 的37引脚号上, 设置37引脚为输出信号, 驱动板上的HL2 LED 指示灯;3. 启动VisualDsp++4.5,选择project 工程选项菜单, 创建一个名称为Test.dpj 的工程文件, 选择处理器的型号为ADSP-21065L ;4.弹出一个对话框, 选择是否需要加入VDSP kernel ,选择“NO ”;5. 在工程中加入以下参考源文件:\exp1\test(boot)\ boot1.asm 和boot1.ldf 6.编译, 链接调试, 生成可执行文件。

7.运行程序, 可以看到波形发生电路板上的指示灯“HL2”不断闪动。

8. 利用示波器观测系统时钟,并测量产生信号的波形和周期。

DSP实验报告5_2

DSP实验报告5_2

DSP 第五次实验1.实验目的:(1)进一步熟悉matlab 实验环境和语言。

(2)掌握求序列圆周翻褶的MATLAB 方法。

(3)掌握求序列DFT 及IDFT 矩阵的MATLAB 方法。

(4)掌握用MATLAB 求解用圆周卷积计算线性卷积的时域的方法。

(5)掌握用FFT 计算有限长序列的线性卷积和线性相关的方法。

2.实验内容及总结:1.圆周翻褶【例3.27】 已知()[2,3,4,5,6],8X n N ==,求x(n)的8点圆周翻褶序列88(())()x n R n -。

代码:clc;clear allx=[2,3,4,5,6];N=8;x=[x,zeros(1,N-length(x))];nx=0:N-1y=x(mod(-nx,N)+1);subplot(121),stem([0:N-1],x);title('原序列');xlabel('n');ylabel('x(n)');grid;subplot(122),stem([0:N-1],y);title('圆周翻褶序列');xlabel('n');ylabel('x((n))8 R8(n)');grid;结果:总结:对于圆周翻褶(0),0()(())()(),11N Nx ny n x n R nx N n n N==-=⎨-≤≤-MA TLAB可用y=x(mode(-nx,N)+1)求得。

因此,要求X(n)=[2,3,4,5,6],N=8的8点圆周翻褶序列,要先将x(n)补零到8点长度再求圆周翻褶。

x=[x,zeros(1,N-length(x))];nx=0:N-1 %x补零到8点长y=x(mod(-nx,N)+1); %圆周翻褶从一开始,因此得到8点长%序列,应该再加一2.DFT矩阵,IDFT矩阵【例3.29】已知N=4的DFT矩阵w4,求IDFT矩阵w4I。

DSP(数字信号处理)实验报告2

DSP(数字信号处理)实验报告2

本科学生实验报告学号124090314 姓名何胜金学院物电学院专业、班级12电子实验课程名称数字信号处理(实验)教师及职称杨卫平开课学期第三至第四学年下学期填报时间2015 年 3 月 1 9 日云南师范大学教务处编印2.产生幅度调制信号x[t]=cos(2t)cos(200t),推导其频率特性,确定抽样频率,并会出波形。

程序: clc,clear,close all t=[0:0.01:5];x=cos(2*pi*t).*cos(200*pi*t); plot(t,x);clc,clear,close allt0=0:0.001:0.1;x0=0.5*(cos(202*pi*t0)+cos(198*pi*t0)); plot(t0,x0,'r') hold on fs=202;t=0:1/fs:0.1;x=0.5*(cos(202*pi*t)+cos(198*pi*t)); stem(t,x);3.对连续信号x[t]=cos(4t)进行抽样以得到离散序列,并进行重建。

(1)生成信号x(t),时间为t=0:0.001:4,画出x(t)的波形。

程序clc,clear,close all t0=0:0.001:3; x0=cos(4*pi*t0); plot(t0 ,x0,'r');(2)以faam=10HZ对信号进行抽样,画出在0≤t≤1范围内的抽样序列,x[k],利用抽样内插函数恢复连续时间信号,画出重逢信号的波形。

程序:clc,clear,close all t0=0:0.001:3; x0=cos(4*pi*t0); plot(t0,x0); hold onfs=10;t=0:1/fs:3; x=cos(4*pi*t); stem(t,x);4.若x[k]是对连续信号x(t)=cos(0.5t)以samf=2Hz抽样得到的离散序列,如何通过在抽样点之间内插,恢复原连续时间信号x(t)?程序:clc,clear,close all t=0:0.0001:4; x=cos(0.5*pi*t); plot(t,x); Figure1:clc,clear,close allt=0:0.0001:4; x=cos(0.5*pi*t); subplot(2,1,1); plot(t,x);t0=0:0.5:4;x0=cos(0.5*pi*t0); subplot(2,1,2); stem(t0,x0);5.已知序列x[k]={1,3,2,-5;k=0,1,2,3},分别取N=2,3,4,5对其频谱X(e j)进行抽样,再由频域抽样点恢复时域序列,观察时域序列是否存在混叠,有何规律?k=[0,1,2,3]; x=[1,3,2,-5]; n=100;omega=[0:n-1]*2*pi/n;X0=1+3*exp(-j*omega)+2*exp(-2*j*omega)-5*exp(-3*j*omega); subplot(3,4,1);stem(k,x);title('原序列');subplot(3,4,2);plot(omega./pi,abs(X0));title('序列的频谱 N=100');N=2;omega=[0:N-1]*2*pi/N;X1=1+3*exp(-j*omega)+2*exp(-2*j*omega)-5*exp(-3*j*omega); subplot(3,4,5);stem(omega./pi,abs(X1));title('频域抽样 N=2');rx1=real(ifft(X1)); subplot(3,4,9);stem(rx1);title('时域恢复');N=3;omega=[0:N-1]*2*pi/N;X2=1+3*exp(-j*omega)+2*exp(-2*j*omega)-5*exp(-3*j*omega); subplot(3,4,6);stem(omega./pi,abs(X2));title('频域抽样 N=3');rx2=real(ifft(X2)); subplot(3,4,10);stem(rx2);title('时域恢复');N=4;omega=[0:N-1]*2*pi/N;X3=1+3*exp(-j*omega)+2*exp(-2*j*omega)-5*exp(-3*j*omega); subplot(3,4,7);stem(omega./pi,abs(X3));title('频域抽样 N=4');rx3=real(ifft(X3)); subplot(3,4,11);stem(rx3);title('时域恢复');。

DSP实验报告(二)

DSP实验报告(二)

DSP实验报告(二)实验二应用FFT对信号进行频谱分析一、实验目的1、在理论学习的基础上,通过本次实验,加深对快速傅里叶变换的理解,熟悉FFT算法及其程序的编写。

2、熟悉应用FFT对典型信号进行频谱分析的方法。

3、了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。

二、实验原理与方法①一个连续信号的频谱可以用它的傅立叶变换表示为+ Xa(jW)=-jWtx(t)edtòa-如果对该信号进行理想采样,可以得到采样序列x(n)=xa(nT)同样可以对该序列进行z变换,其中T为采样周期X(z)=+ x(n)z-n+ -令z为ejw,则序列的傅立叶变换X(ejw)=x(n)ejwn-其中ω为数字频率,它和模拟域频率的关系为w=WT=W/fs式中的是采样频率。

上式说明数字频率是模拟频率对采样率的归一化。

同模拟域的情况相似。

数字频率代表了序列值变化的速率,而序列的傅立叶变换称为序列的频谱。

序列的傅立叶变换和对应的采样信号频谱具有下式的对应关系。

1X(e)=Tjw+ - w-2pXa(j)T即序列的频谱是采样信号频谱的周期延拓。

从式可以看出,只要分析采样序列的谱,就可以得到相应的连续信号的频谱。

注意:这里的信号必须是带限信号,采样也必须满足Nyquist定理。

在各种信号序列中,有限长序列在数字信号处理中占有很重要的地位。

无限长的序列也往往可以用有限长序列来逼近。

有限长的序列可以使用离散傅立叶变换。

当序列的长度是N时,定义离散傅立叶变换为:X(k)=DFT[x(n)]=其中W=e2pj-NN-1n=0WNkn它的反变换定义为:1x(n)=IDFT[X(k)]=N根据式和,则有N-1n=0X(k)WNknX(z)|z=Wnk=NN-1n=0x(n)WNnk=DFT[x(n)]j2pN可以得到X(k)2pk的点,就NN是将单位圆进行N等分以后第k个点。

所以,X(k)是z变换在单位圆上的等距采样,或者说是序列傅立叶变换的等距采样。

dsp实验报告

dsp实验报告

dsp实验报告实验一:CCS入门实验实验目的:1. 熟悉CCS集成开发环境,掌握工程的生成方法;熟悉SEED-DEC643实验环境; 掌握CCS集成开发环境的调试方法。

2.学习用标准C 语言编写程序;了解TI CCS开发平台下的C 语言程序设计方法和步骤; 熟悉使用软件仿真方式调试程序。

3. 学习用汇编语言编写程序; 了解汇编语言与 C 语言程序的区别和在设置上的不同;了解TMS320C6000 汇编语言程序结果和一些简单的汇编语句用法学习在CCS 环境中调试汇编代码。

4. 在了解纯C 语言程序工程和汇编语言程序工程结构的基础上,学习在C 工程中加入汇编编程的混合编程方法; 了解混合编程的注意事项;理解混合编程的必要性和在什么情况下要采用混合编程5. 熟悉CCS集成开发环境,掌握工程的生成方法; 熟悉SEED-DEC643实验环境;掌握CCS集成开发环境的调试方法。

实验原理:CCS 提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。

CCS 提供了基本的代码生成工具,它们具有一系列的调试、分析能力序。

使用此命令后,要重新装载.out 文件后,再执行程序。

使用 CCS常遇见文件简介1. program.c: C 程序源文件;2. program.asm: 汇编程序源文件;3. filename.h: C 程序的头文件,包含DSP/BIOS API模块的头文件;4. filename.lib: 库文件;5. project.cmd: 连接命令文件;6. program.obj: 由源文件编译或汇编而得的目标文件;7. program.out: 经完整的编译、汇编以及连接后生成可执行文件; 8. program.map: 经完整的编译、汇编以及连接后生成空间分配文件; 9.project.wks: 存储环境设置信息的工作区文件。

P.S(CMD文件中常用的程序段名与含义1. .cinit 存放C程序中的变量初值和常量;2. .const 存放C程序中的字符常量、浮点常量和用const声明的常量;3. .text 存放C程序的代码;4. .bss 为C 程序中的全局和静态变量保留存储空间;5. .far 为C 程序中用far声明的全局和静态变量保留空间;6. .stack 为 C 程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果;7. .sysmem 用于 C 程序中malloc、calloc 和 realloc 函数动态分配存储空间。

DSP实验报告最终版

DSP实验报告最终版
DSP实验报告
小组成员
一、实验说明:
为了保证生产质量、生产效率和生产的安全性,在钢铁企业的定期常规设备检修必不可少,在设备检修的过程中,为了保证检修人员的人身安全和设备的安全,通常需设置检修报警提示,如:检修警报、检修指示灯等。
本次实验设计钢铁企业的滚带传送装置的检修控制系统,需要检修时,首先停止传动皮带的工作,切换到检修警报,检修警报开始工作以保证检修人员和设备的安全。当检修工作完成后,停止警报装置,返回传动电机的正常工作状态。
南-绿
北-红
北-黄
北-绿
两个寄存器的地址均映射到2812DSP的扩展空间,CTRLR,DSP通过对该地址的写操作来修改二个寄存器各位的状态,当寄存器某位取‘1’时,相应提示灯被点亮,取‘0’则熄灭。当写入CTRLR的数据(8位有效值)的高两位为‘00’时,数据的低6位将写入EWR寄存器;高两位为‘01’时,数据的低6位将写入SNR寄存器。
图3 利用开关管对直流电动机进行PWM调速控制的原理图和输入输出电压波形 上图是利用开关管对直流电动机进行PWM调速控制的原理图和输入输出电压波形。图中,当开关管MOSFET的栅极输入高电平时,开关管导通,直流电动机电枢绕组两端有电压Us,t1秒后,栅极输入变为低电平,开关管截止,电动机电枢两端电压为0。T2秒后,栅极输入重新变为高电平,开关管的动作重复前面的过程。这样,对应着输入的高低电平,直流电动机电枢绕组两端的电压波形如图中所示。电动机的电枢绕组两端的电压平均值Uo为:
图中PWM输入对应ICETEK-CTR-A板上P4外扩插座第26引脚的S22信号,DSP将在此引脚上给出PWM信号开控制直流电机转速;图中的DIR输入引脚ICETEK-CTR-A板上P4外扩插座第29引脚的S14信号,DSP将在此引脚上给出高电平或低电平来控制直流电机的方向。从DSP输出的PWM信号和转向信号先经过2个与门和1个非门再与各个开关管的栅极相连。

DSP实验报告一

DSP实验报告一

DSP实验报告一引言本实验旨在通过实际操作,探索数字信号处理(DSP)的基本概念和技术。

DSP是一种通过数字计算来处理连续时间信号的技术,被广泛应用于音频处理、图像处理、通信系统等领域。

本实验将重点介绍数字信号的采样、量化和离散化过程,并通过实际编程实现。

实验过程1. 信号的采样1.1 信号的定义在DSP领域,信号是指随着时间变化的某种物理量,可以是声音、图像等。

我们首先需要定义一个连续的信号,用于采样和处理。

在本次实验中,我们选择了一个简单的正弦信号作为示例:x(t) = A \\sin(2\\pi f t)其中,A表示幅值,f表示频率,t表示时间。

1.2 采样过程为了将连续信号转换为离散信号,我们需要对信号进行采样。

采样是指在一定时间间隔内对连续信号进行测量。

我们可以通过模拟采样器来模拟采样过程。

在本实验中,我们选择了采样频率为100Hz,即每秒采样100次。

使用Python编程实现采样过程:import numpy as np# 信号参数设置A =1f =10# 采样频率设置fs =100# 采样点数设置N =100# 生成时间序列t = np.arange(N) / fs# 生成采样信号x = A * np.sin(2* np.pi * f * t)上述代码中,我们通过调整A和f的值来模拟不同的信号。

生成的信号将存储在x变量中,可以用于后续处理。

2. 信号的量化2.1 量化过程量化是指将连续信号的幅值转换为离散的数值。

在实际应用中,我们通常使用有限位数来表示信号的幅值。

常用的量化方式有线性量化和非线性量化。

在本实验中,我们选择了线性量化方式。

具体的量化过程可以通过下列Python代码实现:import math# 量化位数设置bits =8# 量化步长计算step_size =2* A / (2** bits -1)# 信号的量化x_quantized = np.round(x / step_size) * step_size上述代码中,我们通过调整bits的值来控制量化位数。

dsp实验报告

dsp实验报告

dsp实验报告DSP实验报告一、引言数字信号处理(Digital Signal Processing,DSP)是一种对数字信号进行处理和分析的技术。

它在许多领域中被广泛应用,如通信、音频处理、图像处理等。

本实验旨在通过实际操作,探索和理解DSP的基本原理和应用。

二、实验目的1. 理解数字信号处理的基本概念和原理;2. 掌握DSP实验平台的使用方法;3. 进行一系列DSP实验,加深对DSP技术的理解。

三、实验器材和软件1. DSP开发板;2. 电脑;3. DSP开发软件。

四、实验内容1. 实验一:信号采集与重构在此实验中,我们将通过DSP开发板采集模拟信号,并将其转换为数字信号进行处理。

首先,我们需要连接信号源和开发板,然后设置采样频率和采样时间。

接下来,我们将对采集到的信号进行重构,还原出原始模拟信号,并进行观察和分析。

2. 实验二:滤波器设计与实现滤波器是DSP中常用的模块,用于去除或增强信号中的特定频率成分。

在此实验中,我们将学习滤波器的设计和实现方法。

首先,我们将选择合适的滤波器类型和参数,然后使用DSP开发软件进行滤波器设计。

最后,我们将将设计好的滤波器加载到DSP开发板上,并进行实时滤波处理。

3. 实验三:频谱分析与频域处理频谱分析是DSP中常用的方法,用于分析信号的频率成分和能量分布。

在此实验中,我们将学习频谱分析的基本原理和方法,并进行实际操作。

我们将采集一个包含多个频率成分的信号,并使用FFT算法进行频谱分析。

然后,我们将对频谱进行处理,如频率选择、频率域滤波等,并观察处理后的效果。

4. 实验四:音频处理与效果实现音频处理是DSP中的重要应用之一。

在此实验中,我们将学习音频信号的处理方法,并实现一些常见的音频效果。

例如,均衡器、混响、合唱等。

我们将使用DSP开发软件进行算法设计,并将设计好的算法加载到DSP开发板上进行实时处理。

五、实验结果与分析通过以上实验,我们成功完成了信号采集与重构、滤波器设计与实现、频谱分析与频域处理以及音频处理与效果实现等一系列实验。

dsp信号处理实验报告

dsp信号处理实验报告

dsp信号处理实验报告DSP信号处理实验报告一、引言数字信号处理(DSP)是一种将连续信号转换为离散信号,并对其进行处理和分析的技术。

在现代通信、音频处理、图像处理等领域中,DSP技术被广泛应用。

本实验旨在通过对DSP信号处理的实践,加深对该技术的理解与应用。

二、实验目的本实验旨在通过对DSP信号处理的实践,掌握以下内容:1. 学习使用DSP芯片进行信号采集和处理;2. 理解离散信号的采样和重构过程;3. 掌握常见的DSP信号处理算法和方法。

三、实验原理1. 信号采集与重构在DSP信号处理中,首先需要对模拟信号进行采样,将连续信号转换为离散信号。

采样过程中需要注意采样频率的选择,以避免混叠现象的发生。

采样完成后,需要对离散信号进行重构,恢复为连续信号。

2. DSP信号处理算法DSP信号处理涉及到多种算法和方法,如滤波、频谱分析、时域分析等。

其中,滤波是一种常见的信号处理方法,可以通过滤波器对信号进行去噪、增强等处理。

频谱分析可以将信号在频域上进行分析,了解信号的频率成分和能量分布。

时域分析则关注信号的时序特征,如幅值、相位等。

四、实验步骤1. 信号采集与重构在实验中,我们使用DSP芯片进行信号采集与重构。

将模拟信号输入DSP芯片的模拟输入端口,通过ADC(模数转换器)将模拟信号转换为数字信号。

然后,通过DAC(数模转换器)将数字信号转换为模拟信号输出。

2. 滤波处理为了演示滤波处理的效果,我们选择了一个含有噪声的信号进行处理。

首先,使用FIR滤波器对信号进行低通滤波,去除高频噪声。

然后,使用IIR滤波器对信号进行高通滤波,增强低频成分。

3. 频谱分析为了对信号的频率成分和能量分布进行分析,我们使用FFT(快速傅里叶变换)算法对信号进行频谱分析。

通过观察频谱图,可以了解信号的频率特性。

4. 时域分析为了对信号的时序特征进行分析,我们使用时域分析方法对信号进行处理。

通过计算信号的均值、方差、峰值等指标,可以了解信号的幅值、相位等特性。

DSP课程实验报告

DSP课程实验报告

目录目录 (1)实验一试验名称:RGB转灰度,添加噪声实验 (2)实验二试验名称:图像平滑,中值滤波实验 (7)实验三试验名称:图像锐化实验 (9)实验四试验名称:灰度变换实验 (11)实验五试验名称:灰度直方图,直方图均衡实验 (13)实验六试验名称:边沿提取,灰度反转,二值化实验 (16)实验七试验名称:熟悉imgLib的使用实验 (18)实验一试验名称:RGB转灰度,添加噪声实验一、试验目的1、熟悉CCS,学会运用CCS导入图像,并仿真DSP处理图像2、掌握如何将目标图像由彩色转为灰色3、掌握如何给目标图像添加各类噪声二、试验设备1、PC机一台,windows操作系统2、CCS编程环境三、试验原理(1)彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255个中值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围。

而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其中一个像素点的变化范围为255种,所以在数字图像处理中一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。

灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。

在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫做灰度值。

因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。

图像的灰度化处理,一般有以下三种处理方法:方法一:加权平均法根据重要性及其它指标,将R、G、B三个分量以不同的权值进行加权平均。

由于人眼对绿色的敏感度最高,对蓝色敏感度最低。

因此,在MATLAB中我们可以按下式系统函数,对RGB三分量进行加权平均能得到较合理的灰度图像。

f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j))方法二:平均值法将彩色图像中的R、G、B三个分量的亮度求简单的平均值,将得到均值作为灰度值输出而得到灰度图。

硕士信号处理实验报告(3篇)

硕士信号处理实验报告(3篇)

第1篇一、实验背景随着信息技术的飞速发展,数字信号处理(DSP)技术已成为通信、图像处理、语音识别等领域的重要工具。

本实验旨在通过一系列实验,加深对数字信号处理基本原理和方法的理解,提高实际应用能力。

二、实验目的1. 理解数字信号处理的基本概念和原理。

2. 掌握常用信号处理算法的MATLAB实现。

3. 培养分析和解决实际问题的能力。

三、实验内容本实验共分为五个部分,具体如下:1. 离散时间信号的基本操作(1)实验目的:熟悉离散时间信号的基本操作,如加法、减法、乘法、除法、延时、翻转等。

(2)实验步骤:- 使用MATLAB生成两个离散时间信号。

- 对信号进行基本操作,如加法、减法、乘法、除法、延时、翻转等。

- 观察并分析操作结果。

2. 离散时间系统的时域分析(1)实验目的:掌握离散时间系统的时域分析方法,如单位脉冲响应、零状态响应、零输入响应等。

(2)实验步骤:- 使用MATLAB设计一个离散时间系统。

- 计算系统的单位脉冲响应、零状态响应和零输入响应。

- 分析系统特性。

(1)实验目的:掌握离散时间信号的频域分析方法,如快速傅里叶变换(FFT)、离散傅里叶变换(DFT)等。

(2)实验步骤:- 使用MATLAB生成一个离散时间信号。

- 对信号进行FFT和DFT变换。

- 分析信号频谱。

4. 数字滤波器的设计与实现(1)实验目的:掌握数字滤波器的设计与实现方法,如巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器等。

(2)实验步骤:- 使用MATLAB设计一个低通滤波器。

- 使用窗函数法实现滤波器。

- 对滤波器进行性能分析。

5. 信号处理在实际应用中的案例分析(1)实验目的:了解信号处理在实际应用中的案例分析,如语音信号处理、图像处理等。

(2)实验步骤:- 选择一个信号处理应用案例。

- 分析案例中使用的信号处理方法。

- 总结案例中的经验和教训。

四、实验结果与分析1. 离散时间信号的基本操作实验结果表明,离散时间信号的基本操作简单易懂,通过MATLAB可以实现各种操作,方便快捷。

DSP实验报告

DSP实验报告

DSP实验报告实验⼀信号、系统及响应⼀、实验⽬的1.熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对采样定理的理解。

2.熟悉离散信号和系统的时域特性。

3.熟悉线性卷积的计算编程⽅法:利⽤卷积的⽅法,观察分析系统响应的时域特性。

4.掌握序列傅⽒变换的计算机实现⽅法,利⽤序列的傅⽒变换对离散信号,系统及系统响应进⾏频域分析。

⼆、实验内容在编制以上各部分程序以后,编制主程序调⽤各个功能模块实现对信号,系统和系统响应的时域,频域分析,完成以下实验内容。

1.分析理想采样信号序列的特性。

产⽣理想采样信号序列()a x n ,使A =444.128,α=,0Ω= a.⾸先选⽤采样频率为1000Hz,T =1/1000,观察所得理想采样信号的幅频特性,在折叠频率以内和给定的理想幅频特性⽆明显差异,并做记录。

b.改变采样频率为300Hz,T=1/300,观察所得到的幅频特性曲线的变化,并做记录c.进⼀步减少采样频率为200Hz,T=1/200,观察频谱“混淆”现象是否明显存在,说明原因,并记录幅频特性曲线。

2.离散信号,系统和系统响应的分析(1).观察信号()b x n 和系统()b h n 的时域和幅频特性,利⽤线性卷积求信号通过系统以后的响应。

⽐较系统响应和系统()b h n 的时域和幅频特性,注意它们之间有⽆差异,并绘出曲线。

(2).观察信号()c x n 和系统()a h n 的时域和幅频特性,利⽤线性卷积求系统响应。

判断响应序列图形及序列⾮零值长度是否与理论结果⼀致,说出⼀种定性判断响应序列图形正确与否的⽅法(提⽰:10()()()c a x n h n R n ==)。

利⽤系统的傅⽴叶变换数值计算⼦程序求出()k j Y e ω,观察响应序列的幅频特性。

定性判断结果正确与否,改变信号()c x n 的脉冲宽度,使N =5,重复以上动作,观察变化,记录改变参数前后的差异。

(3)将实验步骤2-(2)中信号变换为()a x n ,其中A=1,α =0.4,0Ω=2.0734,T=1。

DSP实验报告_百度文库(精)

DSP实验报告_百度文库(精)

实验0 实验设备安装才CCS调试环境实验目的:按照实验讲义操作步骤,打开CCS软件,熟悉软件工作环境,了解整个工作环境内容,有助于提高以后实验的操作性和正确性。

实验步骤:以演示实验一为例:1.使用配送的并口电缆线连接好计算机并口与实验箱并口,打开实验箱电源;2.启动CCS,点击主菜单“Project->Open”在目录“C5000QuickStart\sinewave\”下打开工程文件sinewave.pjt,然后点击主菜单“Project->Build”编译,然后点击主菜单“File->Load Program”装载debug目录下的程序sinewave.out;3.打开源文件exer3.asm,在注释行“set breakpoint in CCS !!!”语句的NOP处单击右键弹出菜单,选择“Toggle breakpoint”加入红色的断点,如下图所示;4.点击主菜单“View->Graph->Time/Frequency…”,屏幕会出现图形窗口设置对话框5.双击Start Address,将其改为y0;双击Acquisition Buffer Size,将其改为1;DSP Data Type设置成16-bit signed integer,如下图所示;6.点击主菜单“Windows->Tile Horizontally”,排列好窗口,便于观察7.点击主菜单“Debug->Animate”或按F12键动画运行程序,即可观察到实验结果:心得体会:通过对演示实验的练习,让自己更进一步对CCS软件的运行环境、编译过程、装载过程、属性设置、动画演示、实验结果的观察有一个醒目的了解和熟悉的操作方法。

熟悉了DSP实验箱基本模块。

让我对DSP课程产生了浓厚的学习兴趣,课程学习和实验操作结合为一体的学习体系,使我更好的领悟到DSP课程的实用性和趣味性。

实验二基本算数运算2.1 实验目的和要求加、减、乘、除是数字信号处理中最基本的算术运算。

DSP实验报告(完美版)

DSP实验报告(完美版)

DSP实验报告班级:11050641学号:姓名:指导教师:实验一、二 DSP芯片的开发工具及应用实验1.实验目的(1)熟悉CCS集成开发环境,掌握工程的生成方法;(2)熟悉SEED-DTK DAD实验环境;(3)掌握CCS集成开发环境的调试方法。

2.实验设备DSP实验箱,计算机,CCS软件。

3.实验内容及步骤(1)CCS软件的安装;(2)了解SEED-DTK5416实验环境;(3)打开CCS集成开发环境,进入CCS的操作环境;(4)新建一个工程文件○1在c:\ti\myprojects中建立文件夹volume1(如果CCS安装在其他d:\ti ,则在d:\ti\myprojects中);○2将c:\ti\tutorial\target\volume1拷贝到c:\ti\myprojects\ volume1;○3从在CCS 中的Project 菜单,选择 New;○4在Project Name域中,键入volume1;○5在Location区域中,浏览步骤1所建立的工作文件夹;○6在Project Type 域中,选择Executable(.out);○7在Target域中,选择CCS配置的目标,并单击完成。

(5)向工程中添加文件○1从Project/Add Files to Project,选择 volume.c,单击Open(或右击Project View图标,选择Add Files to Project );○2选择Project/Add Files to Project,在Files of type对话框中,选择Asm Source Files (*.a*, *.s*)。

选择vectors.asm 和 load.asm, 单击Open;○3选择 Project/Add Files to Project,在Files of type 对话框中选择 Linker Command File (*.cmd),选择volume.cmd,单击Open。

DSP实验报告(精)

DSP实验报告(精)

DSP上机实验:DTMF信号的编码一、实验要求设计作业:双音多频(DTMF)信号的编码:把自己的电话号码DTMF编码生成为一个.wav文件。

【wavwrite()】技术指标:根据ITU Q.23建议,DTMF信号的技术指标是:传送/接收率为每秒10个号码,或每个号码100ms。

每个号码传送过程中,信号存在时间至少45ms,且不多于55ms,100ms的其余时间是静音。

在每个频率点上允许有不超过±1.5%的频率误差。

任何超过给定频率±3.5%的信号,均被认为是无效的,拒绝接收。

二、实验思想:1、编码:DTMF拨号键盘由一个4*4行列构成,每列代表一个高频信号,每行代表一个低频信号,每当按下一个键时,产生高、低频率的两个正弦信号,代表一个特定的数字或符号,根据ITU Q.23颁布的国际标准,DTMF传送或接受每个号码的时间为100ms,其中每个号码传送的过程中,信号存在时间至少45ms,其余时间静音。

用一个字符串变量来接受输入的电话号码,并将各个数字和符号的ASCII码用一个4*4矩阵表示,每接收到一个数字就对应两个频率,并产生由两个正弦波叠加的信号,完成DTMF编码,利用matlab提供的fft函数画出其频谱,用sound函数发出声音。

2、解码:采用Goertzel算法来检测DTMF信号,它是用IIR滤波器实现DFT算法的一种特殊方法,在实际DTMF解码中,只需要知道输入信号即DTMF信号的离散傅里叶变换X(k)的幅度信息,忽略相位信息,因为只要能得到8个特定频率点的幅度值,看哪两个频率对应的幅度最大,就能知道对应的是哪个数字,达到解码的目的,可以利用matlab提供的goertzel函数来对信号解码。

三、实验代码:d=input('请键入电话号码: ','s');sum=length(d);total_x=[];sum_x=[];sum_x=[sum_x,zeros(1,800)];for a=1:sumsymbol=abs(d(a));tm=[49,50,51,65;52,53,54,66;55,56,57,67;42,48,35,68]; for p=1:4;for q=1:4;if tm(p,q)==abs(d(a));break,endendif tm(p,q)==abs(d(a));break,endendf1=[697,770,852,941];f2=[1209,1336,1477,1633];n=1:400;x=sin(2*pi*n*f1(p)/8000)+sin(2*pi*n*f2(q)/8000); x=[x,zeros(1,400)]; sum_x=sum_x+x;total_x=[total_x,x];endwavwrite(total_x,'soundwave')sound(total_x);t=(1:8800)/8000;subplot(2,1,1);plot(t,total_x);axis([0,1.2,-2,2]);xlabel('时间/s')title('DTMF信号时域波形')xk=fft(x); mxk=abs(xk);subplot(2,1,2);k=(1:800)*sum*8000/800;plot(k,mxk); xlabel('频率');title('DTMF信号频谱');disp('双频信号已生成并发出')四、实验结果图:请键入电话号码: 130xxxxxxxx。

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

实验一 程序的控制与转移一、实验目的1、掌握条件算符的使用。

2、掌握循环操作指令(BNAZ )和比较操作指令(CMPR )二、实验设备计算机、ZY13DSP12BD 实验箱、5402EVM 板。

三、实验原理程序控制指令主要包括分支转移、子程序调用、子程序返回、条件操作及循环操作等。

通过传送控制到程序存储器的其他位置,转移会中断连续的指令流。

转移会影响在PC 中产生和保护的程序地址。

其中转移可以分为两种形式的,一种是有条件的,另一种是无条件的。

四、实验内容编写程序,实现计算y=∑=51i ix的值。

五、实验步骤1、用仿真机将计算机与ZY13DSP12BD 实验箱连接好,并依次打开实验箱电源、仿真机电源,然后运行CCS 软件。

2、新建一个项目:点击Project -New ,将项目命名为example2,并将项目保存在自己定义的文件夹下。

3、新建一个源文件example2.asm 。

将该文件添加到工程example2.pjt 中。

4、在工程管理器中双击example2.asm ,编写源程序: .tiltle ”example2.asm ” .mmregsSTACK .usect ”STACK ”,10H ;堆栈的设置.bss x,5 ;为变量分配6个字的存储空间 .bss y,1 .def start .datatable: .word 10,20,3,4,5 ;x1,x2,x3,x4,x5 .textStart: STM #0,SWWWSR ;插入0个等待状态 STM #STACK+10H,sp ;设置堆栈指针STM #x,AR1 ;AR1指向xRPT #4 ;下一条被重复执行5遍MVPD table,*AR1+ ;把程序存储器中的数据传送到数据存储器 LD #0,A ;A 清零CALL SUM ;调用求和函数 end: B endSUM: STM #x,AR3 ;AR3指向x STM #4,AR2 ;AR2=4loop: ADD *AR3+,A ;*AR3+A-->A,然后AR3+BANZ loop,*AR2- ;如果AR2的值不为0,则跳到loop 处;否则执行下一条指令 STL A,*(y) ;把A 的低16位赋给变量yRET.end6、编写链接配置文件:/*example2.cmd */vectors.obj /*中断向量的目标文件*/example2.obj /*产生目标文件*/-o example2.out /*产生可执行下载文件,文件名可以根据不同项目而定*/-m example2.map /*产生存储器映射文件,文件名可以根据不同项目而定*/-estart /*程序入口*/MEMORY{PAGE 0: /*定义程序存贮区*/EPROM:org=0090H len=0F70H /*定义EPROM区,起始地址0090H,长度0F70H*/ VECS: org=0080H len=0010H /*定义VECS区,起始地址0080H,长度0010H*/PAGE 1: /*定义数据存贮区*/SPRAM:org=1000H len=1000H /*定义SPRAM区,起始地址1000H,长度1000H*/ DARAM:org=2000H len=2000H /*定义DARAM区,起始地址2000H,长度2000H*/}SECTIONS{.text :>EPROM PAGE 0 /*将.text段映射到PAGE0的EPROM区*/.data :>EPROM PAGE 0 /*将.text段映射到PAGE0的EPROM区*/.bss :>SPRAM PAGE 1 /*将.text段映射到PAGE1的SPRAM区*/STACK :>DARAM PAGE 1 /*将.text段映射到PAGE1的DARAM区*/.vectors :>VECS PAGE 0 /*将中断向量表定位到PAGE0的VECS区*/}7、编写中断向量表文件/* vectors.asm */.title "vectors.asm" /*中断向量表的文件名*/.ref start /*引用外部定义的标号*/.sect ".vectors" /*定义初始化的段名*/B start /*引用start*/.end8、对项目进行编译和链接:把example2.asm、vectors.asm、example2.cmd依次添加到项目后,点击Project-Compile File,在项目编译成功之后点击Project-Build选项对该项目进行链接,生成*.OUT文件。

9、装载可执行文件:点击:File-Load Programe再选择生成的example2.out文件就可以将程序装载到DSP的内部存储器中。

M10、运行程序并查看结果:首先打开欲查看的数据空间:点击View-Memory,弹出“Memory Window Options”对话框,把欲查看的地址改为0x1000。

下面是运行结果:实验二 加减法和乘除法运算一、实验目的掌握加减法和乘除法运算指令。

二、实验设备计算机、ZY13DSP12BD 实验箱、5402EVM 板。

三、实验原理加减法是通过指令ADD 和SUB 来实现的。

乘法是通过MPY 和MAC 来实现的。

而在C54X 指令中没有除法器硬件,也就没有专门的除法指令,但是可以一条条件减法指令加上重复指令“#RPT #15”就可以实现两个无符号数的除法运算。

四、实验内容1、编写程序,分别实现计算z=x+y-w 、y=mx+b 、y=x1×a2+x2×a2、y=∑=41i ii xa 。

2、分别编写程序,实现计算0.4÷(-0.8)和16384÷512的值。

五、实验步骤1、用仿真机将计算机与ZY13DSP12BD 实验箱连接好,并依次打开实验箱电源、仿真机电源,然后运行CCS 软件。

2、新建一个项目,将项目命名为example4。

3、新建一个源文件保存在和项目相同的一个文件夹下面(example4),保存类型选择*.ASM ,保存名字命名为example4.asm 。

4、在项目中添加源文件:将刚才建立的example4.asm 文件添加到该项目中去。

5、编写源程序:在工程管理器中双击example4.asm ,将出现文本编辑窗口,在该文本编辑窗口中输入计算z=x+y-w 的代码如下: .title "example4.asm" .mmregsSTACK .usect "STACK",10H ;堆栈的设置 .bss x,1 ;为变量分配4个字的存储空间 .bss y,1 .bss w,1 .bss z,1 .def start .datatable .word 10,26,23 ;x,y,w .textstart: STM #0,SWWSR ;插入0个等待状态 STM #STACK+10H,SP ;设置堆栈指针 STM #x,AR1 ; AR1指向x RPT #2MVPD table,*AR1+ ;把程序存储器中的数据移动到数据存储器 CALL SUMB end: B endSUMB: LD *(x),AADD *(y),ASUB *(w),ASTL A,*(z)RET.end6、编写链接配置文件:参照实验一,需要更改的地方如下:更改前更改后example2.obj example4.obj-o example2.out -o example4.out-m example2.map -m example4.map7、编写中断向量表文件参照实验一,可不作修改。

8、对项目进行编译和链接:把example4.asm、vectors.asm、example4.cmd 依次添加到项目后,点击Project-Compile File,在项目编译成功之后点击Project-Build 选项对该项目进行链接,生成*.out 文件。

9、装载可执行文件:要让程序代码在DSP 内部运行必需将生成的*.OUT 文件装载到DSP 内部,装载方法是点击:File -Load Programe 再选择生成的example4.out 文件就可以将程序装载到DSP 的内部存储器中。

10、运行程序并查看结果:a)首先打开欲查看的数据空间:点击View-Memory,弹出“Memory Window Options” 对话框,把欲查看的地址改为0x1000,如右图所示。

b)点击OK 按钮,然后点击Debug-Run 让程序在DSP 内部运行,最后点击Debug-Halt,再观察“Memory ”对话框,看是否与下图一致。

11、实验结果截图:12、建立其它项目工程文件建立项目工程文件example5,使之实现计算y=mx+b ;建立项目工程文件example6,使 之实现计算y=x1×a2+x2×a2;建立项目工程文件example8,使之实现计算y=∑=41i ii xa ,实验步骤基本同上。

实验代码及结果如下: 计算y=mx+b :.title "example5.asm" .mmregsSTACK .usect "STACK",10H ;堆栈的设置 .bss m,1 ;为变量分配4个字的存储空间 .bss x,1 .bss b,1 .bss y,1 .def start .datatable: .word 3,15,20 ;m,x,b .textstart:STM #0,SWWSR ;插入0个等待状态 STM #STACK+10H,SP ;设置堆栈指针 STM #m,AR1 ;AR1指向mRPT #2 ;把下一条指令重复执行3遍MVPD table,*AR1+ ;把程序存储器中的数据转移到数据存储器 CALL SU end: B end SULD *(m),T MPY *(x),A ADD *(b),A STL A,*(y) RET .end连接表如下更改。

更改前 更改后 example2.obj example5.obj -o example2.out -o example5.out -m example2.map -m example5.map 向量表可以不做更改。

实验结果:计算 y=x1*a1+x2*a2代码:.title "example6.asm".mmregsSTACK .usect "STACK",10H ;堆栈的设置.bss x1,1 ;为变量分配5个字的存储空间.bss x2,1.bss a1,1.bss a2,1.bss y,1.def start.datatable: .word 3,5,15,20 ;x1,x2,a1,a2.textstart: STM #0,SWWSR ;插入0个等待状态STM #STACK+10H,SP ;设置堆栈指针STM #x1,AR1 ;AR1指向x1RPT #3 ;移动4个数据MVPD table,*AR1+ ;把数据从数据存储器存入程序存储器CALL SUMend: B endSUM: LD *(x1),TMPY *(a1),BLD *(x2),TMAC *(a2),B STL B,*(y) STH B,*(y+1) RET.end连接表如下更改。

相关文档
最新文档