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

合集下载

dsp的原理与应用实验

dsp的原理与应用实验

DSP的原理与应用实验介绍数字信号处理(Digital Signal Processing,DSP)是一种数学算法和基于嵌入式系统的技术,用于处理数字信号,是现代通信、音频处理、图像处理等领域的关键技术之一。

本文将介绍DSP的基本原理以及其在实际应用中的实验。

DSP的基本原理1.数字信号和模拟信号的区别–数字信号是离散的,模拟信号是连续的–数字信号可以用离散的数值表示,模拟信号用连续的数值表示2.采样和量化–采样是指将模拟信号在时间上离散化–量化是指将模拟信号在幅度上离散化3.傅里叶变换–DSP中常用的一种变换方法–将信号从时域转换到频域–可以分析信号的频谱特性4.滤波–常见的信号处理操作之一–可以去除噪声、选择特定频率的信号等–常用的滤波器包括低通滤波器、高通滤波器、带通滤波器等DSP的应用实验1.音频处理实验–使用DSP技术对音频进行处理–实现音频的均衡器效果、混响效果等–可以提高音频的质量和效果2.语音识别实验–利用DSP算法对语音信号进行处理–通过提取特征参数来识别语音内容–可以应用于语音控制、语音识别等领域3.图像处理实验–利用DSP技术对图像进行处理和分析–实现图像增强、去噪等操作–可以应用于图像识别、图像处理等领域4.通信系统实验–使用DSP技术对通信信号进行处理–实现调制解调、信号编解码等操作–可以提高通信系统的性能和可靠性结论数字信号处理(DSP)是一种重要的信号处理技术,可以广泛应用于通信、音频处理、图像处理等领域。

通过实验可以深入了解DSP的原理和应用,提高对信号处理的理解和应用能力。

以上就是DSP的原理与应用实验的简要介绍,希望对你有所帮助!。

dsp课程设计实验报告总结

dsp课程设计实验报告总结

DSP课程设计总结(2013-2014学年第2学期)题目:专业班级:电子1103学生姓名:万蒙学号:11052304指导教师:设计成绩:2014 年6 月目录一设计目的----------------------------------------------------------------------3 二系统分析----------------------------------------------------------------------3 三硬件设计3.1 硬件总体结构-----------------------------------------------------------33.2 DSP模块设计-----------------------------------------------------------43.3 电源模块设计----------------------------------------------------------43.4 时钟模块设计----------------------------------------------------------53.5 存储器模块设计--------------------------------------------------------63.6 复位模块设计----------------------------------------------------------63.7 JTAG模块设计--------------------------------------------------------7 四软件设计4.1 软件总体流程-----------------------------------------------------74.2 核心模块及实现代码---------------------------------------8五课程设计总结-----------------------------------------------------14一、设计目的设计一个功能完备,能够独立运行的精简DSP硬件系统,并设计简单的DSP 控制程序。

dsp小实验总结

dsp小实验总结

dsp⼩实验总结电⽓信息⼯程学院D S P技术与综合训练实验报告班级 09通信1W姓名陈学虎学号 09313112指导⽼师倪福银刘舒淇2012年9⽉27⽇⽬录实验1 :发光⼆极管阵列显⽰实验 (2)⼀.实验⽬的 (2)⼆.实验设备 (3)三.实验原理 (3)四.实验步骤 (4)五.实验结果 (7)实验2 :液晶显⽰器控制显⽰ (7)⼀.实验⽬的 (7)⼆.实验设备 (7)三.实验原理 (7)四.实验步骤 (9)五.实验结果与分析 (18)实验3 :⾳频信号发⽣实验 (19)⼀.实验⽬的 (19)⼆.实验设备 (19)三.实验原理 (19)四.实验步骤 (20)五.实验结果 (23)实验4:有限冲激响应滤波器(FIR)和(IIR)算法实验 (23)⼀.实验⽬的 (24)⼆.实验设备 (24)三.实验原理 (24)四.实验步骤 (26)五,实验结果 (31)FIR实验结果如下: (31)IIR实验结果如下: (31)实验1 :发光⼆极管阵列显⽰实验⼀.实验⽬的通过实验学习使⽤5509A DSP的扩展端⼝控制外围设备的⽅法,了解发光⼆极管阵列的控制编程⽅法。

⼆.实验设备计算机,ICETEK-VC5509-A实验箱(或ICETEK仿真器+ICETEK-VC5509-A系统板+相关连线及电源)。

三.实验原理1.EMIF接⼝:TMS320C5509DSP的扩展存储器接⼝(EMIF)⽤来与⼤多数外围设备进⾏连接,典型应⽤如连接⽚外扩展存储器等。

这⼀接⼝提供地址连线、数据连线和⼀组控制线。

ICETEK-VC5509-A将这些扩展线引到了板上的扩展插座上供扩展使⽤。

2.LED指⽰灯控制⽅法根据封装原理图可以看出:当芯⽚上的IO⼝置于0时,LED灯才会亮。

已知LED指⽰灯的控制寄存器CTRLED由DSP的扩展地址0x600802给出,这是⼀个只写的16位寄存器,低8位有效,它的0到7位分别控制指⽰灯LED1到LED8,每⼀个对应位置0就表⽰点亮该指⽰灯,置1表⽰熄灭该指⽰灯。

东南大学DSP实验报告

东南大学DSP实验报告

第三章DSP芯片系统实验实验3.1 :数据存取实验一.实验目的1.了解TMS320F2812A的内部存储器空间的分配及指令寻址方式。

2.了解ICETEK-F2812-A评估板扩展存储器空间寻址方法,及其应用。

3.了解ICETEK-F2812-EDU实验箱扩展存储器空间寻址方法,及其应用。

4.学习用Code Composer Studio修改、填充DSP内存单元的方法。

5.学习操作TMS32028xx内存空间的指令。

二.实验设备计算机,ICETEK-F2812-A-EDU实验箱(或ICETEK仿真器+ICETEK-F2812-A评估板+相关连线及电源)。

三.实验内容在外部SARAM的0x80000~0x8000f单元置数0~0xf,将该单元块存储的数据复制到0x80100~0x8010f处,最后通过“Memory”查看窗口观察各存储区中的数据。

四.实验原理TMS32028xx DSP内部存储器资源介绍:TMS32028xx系列DSP基于增强的哈佛结构,可以通过三组并行总线访问多个存储空间。

它们分别是:程序地址总线(PAB)、数据读地址总线(DRAB)和数据写地址总线(DW AB)。

由于总线工作是独立的,所以可以同时访问程序和数据空间。

TMS32028xx系列DSP的地址映象请参考第一章1.2.4节ICETEK-F2812-A评估板的存储空间定义及寄存器映射说明中的介绍。

五.实验步骤1.实验准备连接实验设备。

参见第一章1.3.1节中的“硬件连接方法”。

连接仿真器USB口接线,打开实验箱电源开关,接通评估板电源(关闭实验箱上的扩展模块和信号源电源开关)。

2.设置Code Composer Studio 2.21在硬件仿真(Emulator)方式下运行。

参见第一章1.4.2节中的“设置CCS工作在硬件仿真环境”。

3.启动Code Composer Studio 2.21选择菜单Debug→Reset CPU。

DSP综合性实验报告 数字巴特沃斯滤波器设计

DSP综合性实验报告 数字巴特沃斯滤波器设计

重庆交通大学信息科学与工程学院综合性实验报告姓名:学号:班级:实验项目名称:数字巴特沃斯滤波器设计实验项目性质:设计性试验实验所属课程:数字信号处理实验室(中心):现代电子实验中心指导教师:实验完成时间: 2012 年 12 月 12 日一、实验目的:1、进一步熟悉和掌握MATLAB软件的应用和操作,增强对于MATLAB实际设计运用能力;2、熟悉巴特沃斯滤波器的设计思路,了解一些关于巴特沃斯滤波器的相关问题,增加知识面;3、熟悉至少一种(冲激响应不变法或者双线性法)数字滤波器的设计方案,尽量在此基础上做出更多、更好的成就。

二、实验内容及要求:<一>实验内容:通过运用冲激响应不变法设计巴特沃斯数字滤波器;并能够运用自己所设计出来的滤波器来实现滤波,最后输出所滤波的波形等。

<二>实验要求:在实验的过程中,尽量自己独立完成实验或者是按小组完成,独立地查找相关资料并完成程序的编写、链接、编译、运行等;我所做的程序中,要求如下:直接设定采样周期为T为2,抽样频率fs为1/T,要求:通过设置相关参数如通带截止频率、阻带截止频率、通带内最大衰减、阻带内最小衰减等,采用输入信号为x=sin(2*0.2*pi*n)+2*sin(2*1.5*pi*n)+sin(2*pi*40*n);最后自己设计出滤波器三、实验原理:根据巴特沃斯滤波器的设计方法,应用冲激响应不变法设计数字滤波器。

四、实验仪器、材料:Pc机一台MATLAB 软件平台五、实验过程及原始记录:T=2; %设置采样周期为2fs=1/T; %采样频率为周期倒数Wp=0.25*pi/T; %Wp通带截止频率Ws=0.35*pi/T; %Ws阻带截止频率Ap=20*log10(1/0.9); %Ap通带内最大衰减As=20*log10(1/0.18); %As阻带内最小衰减n=0:1:80;x=sin(2*0.2*pi*n)+2*sin(2*1.5*pi*n)+sin(2*pi*40*n); %输入信号[N,Wc]=buttord(Wp,Ws,Ap,As,'s'); %调用buttord函数确定巴特沃斯滤波器阶数N为阶数,Wc为3dB通带截止频率[B,A]=butter(N,Wc,'s'); %调用butter函数设计巴特沃斯滤波器开始数字滤波器的设计W=linspace(0,pi,400*pi); %指定一段频率值hf=freqs(B,A,W); %计算模拟滤波器的幅频响应[D,C]=impinvar(B,A,fs); %调用脉冲响应不变法Hz=freqz(D,C,W); %返回freqz频率响应subplot(3,1,1);plot(W/pi,abs(Hz)/abs(Hz(1))); %绘出巴特沃斯数字低通滤波器的幅频特性曲线grid on;title('巴特沃斯数字滤波器'); xlabel('Frequency/Hz');ylabel('Magnitude');y=filter(B,A,x);subplot(3,1,3);plot(y)title('滤波之后的图像') xlabel('n');ylabel('幅度');subplot(3,1,2);plot(n,x)title('原始图像')xlabel('n');ylabel('幅度');六、实验结果及分析:<一>实验结果如下:<二>实验分析:通过对以上程序的执行,对输入以上源图像的前提下,可以得到如上图所示的图形,通过对比可以发现,滤波器已经实现滤波,达到了预期效果。

DSP实验:常用指令及数据存储实验

DSP实验:常用指令及数据存储实验

DSP实验一:常用指令及数据存储实验一、实验目的1、了解DSP开发系统的组成和结构;2、熟悉DSP开发系统的连接;3、熟悉CCS的开发界面;4、熟悉C54X系列的寻址系统;5、熟悉常用C54X系统指令的用法6、掌握TMS320C54的程序空间和数据空间的分配7、熟悉操作TMS320C54数据空间的指令二、实验设备计算机、CCS2.0版软件,DSP仿真器、实验箱。

三、实验系统相关资源1、DSP芯片引脚XF连接LED5,可通过ssbx,rsbx改变XF的值来控制LED52、系统时钟频率为10MHz3、TMS320VC54存储器分配图四、实验步骤1、用仿真机将计算机与数字信号处理实验箱连接好,并依次打开实验箱电源、仿真机电源,然后运行CCS软件。

2、新建一个工程:点击Project-new,输入项目名Exp1, 并将工程文件保存在自己定义的文件夹下,注意文件夹一定要用英文名,不要将文件夹取名为中文名,因为CCS软件不能识别以中文命名的文件夹。

3、编写源程序:3.1 新建一个源文件File-New-Source File,出现文本编辑窗口3.2 复制以下代码到编辑窗口;File Name:exp01.asm;the program is compiled at no autoinitialization mode.mmregs.global _main;声明_main可被其他模块引用,程序加载到目标板后,;会自动跳转到标号为_main的汇编指令STACK: .usect ".stack",10h.text_main:stm #STACK+10h,sp ;设置堆栈指针STM #0, CLKMD ; (to divider mode before setting) TstStatu1:LDM CLKMD, AAND #01b, A ;poll STATUS bitBC TstStatu1, ANEQSTM #0xF7FF, CLKMD ; set C5402 DSP clock to 10MHz loop:ssbx xf ;将XF置1,熄灭LED5call delay ;调用延时子程序,延时rsbx xf ;将XF置0,点亮LED5call delay ;调用延时子程序,b loop ;程序跳转到"loop";延时子程序delay:stm 270fh,ar3 ; 270fh=9999loop1:stm 0f9h,ar4 ; 0f9h=249loop2:banz loop2,*ar4-banz loop1,*ar3-ret.end注意:(1)源代码的书写有一定的格式,每一行代码分为三个区:标号区、指令区和注释区。

精选-东南大学信息学院_DSP_第二次实验报告

精选-东南大学信息学院_DSP_第二次实验报告

实验三 IIR 数字滤波器的设计04013222 张嘉俊一、实验目的(1)掌握双线形变换法及脉冲响应不变法设计IIR 数字滤波器的具体设计方法及其原理,熟悉用双线形变换法及脉冲响应不变法设计低通,高通和带通IIR 数字滤波器的计算机编程。

(2)观察双线形变换法及脉冲响应不变法设计的滤波器的频域特性,了解双线形变换法及脉冲响应不变法的特点。

(3)熟悉巴特沃思滤波器,切比雪夫滤波器和椭圆滤波器的频率特性。

(3)实验中有关变量的定义cr sf f At f T 通带边界频率阻带边界频率通带波动最小阻带衰减采样频率采样周期(4)设计一个数字滤波器一般包括以下两步a. 按照任务要求,确定滤波器性能指标b. 用一个因果稳定的离散时不变系统的系统函数去逼近这一性能要求(5)数字滤波器的实现对于IIR 滤波器,其逼近问题就是寻找滤波器的各项系数,使其系统函数逼近一个所要求的特性。

先设计一个合适的模拟滤波器,然后变换成满足约定指标的数字滤波器。

用双线形变换法设计IIR 数字滤波器的过程:a. 将设计性能指标中的关键频率点进行“预畸”b. 利用“预畸”得到的频率点设计一个模拟滤波器。

c. 双线形变换,确定系统函数二、实验内容(1)fc=0.3kHz,δ=0.8dB,fr=0.2kHz,At=20dB,T=1ms;设计一切比雪夫高通滤波器,观察其通带损耗和阻带衰减是否满足要求。

源程序:clc,clear;wc=2000*tan(2*pi*300*0.001/2);wr=2000*tan(2*pi*200*0.001/2);[N,wn]=cheb1ord(wc,wr,0.8,20,'s');[B,A]=cheby1(N,0.8,wn,'high','s');[num,den]=bilinear(B,A,1000);[h,w]=freqz(num,den);f=w/(2*pi)*1000;plot(f,20*log10(abs(h)));axis([0,500,-80,10]);grid;xlabel('Frequency/Hz');ylabel('Amplitude/dB');title('Chebyshev High-pass Filter');实验结果:分析与结论:观察图形可知,δ趋近于0;f=200Hz时,幅度约为-30dB,满足At=20dB的要求,故其通带损耗和阻带衰减满足要求。

DSP实验二 语音信号分析与处理,南京理工大学紫金学院实验报告,信号与系统

DSP实验二   语音信号分析与处理,南京理工大学紫金学院实验报告,信号与系统

实验二语音信号分析与处理学号姓名注:1)此次实验作为《数字信号处理》课程实验成绩的重要依据,请同学们认真、独立完成,不得抄袭。

2)请在授课教师规定的时间内完成;3)完成作业后,请以word格式保存,文件名为:学号+姓名4)请通读全文,依据第2及第3 两部分内容,认真填写第4部分所需的实验数据,并给出程序内容。

1. 实验目的(1) 学会MATLAB的使用,掌握MATLAB的程序设计方法(2) 掌握在windows环境下语音信号采集的方法(3) 掌握MATLAB设计FIR和IIR滤波器的方法及应用(4) 学会用MATLAB对语音信号的分析与处理方法2. 实验内容录制一段自己的语音信号,对录制的语音信号进行采样,画出采样后语音信号的时域波形和频谱图,确定语音信号的频带范围;使用MATLAB产生白噪声信号模拟语音信号在处理过程中的加性噪声并与语音信号进行叠加,画出受污染语音信号的时域波形和频谱图;采用双线性法设计出IIR滤波器和窗函数法设计出FIR滤波器,画出滤波器的频响特性图;用自己设计的这两种滤波器分别对受污染的语音信号进行滤波,画出滤波后语音信号的时域波形和频谱图;对滤波前后的语音信号进行时域波形和频谱图的对比,分析信号的变化;回放语音信号,感觉与原始语音的不同。

3. 实验步骤1)语音信号的采集与回放利用windous下的录音机或其他软件录制一段自己的语音(规定:语音内容为自己的名字,以wav格式保存,如wql.wav),时间控制再2秒之内,利用MATLAB提供的函数wavread 对语音信号进行采样,提供sound函数对语音信号进行回放。

[y,fs,nbits]=wavread(file),采样值放在向量y中,fs表示采样频率nbits表示采样位数。

Wavread的更多用法请使用help命令自行查询。

2)语音信号的频谱分析利用fft函数对信号进行频谱分析3)受白噪声干扰的语音信号的产生与频谱分析4)据语音信号的频带情况,设计FIR和IIR两种滤波器5)用滤波器对受污染语音信号进行滤波FIR滤波器fftfilt函数对信号进行滤波,IIR滤波器用filter函数对信号进行滤波6)比较滤波前后信号的波形与频谱7)回放滤波后的语音信号4. 实验数据及实验程序实验数据1)原始语音信号的时域波形和频谱图00.51 1.52 2.53 3.54 4.5x 104-0.2-0.15-0.1-0.0500.050.10.150.20.25声音波形图00.51 1.52 2.53 3.54 4.5x 104100200300400500600声音频谱图2)带限白噪声信号的时域波形和幅频特性00.51 1.52-1-0.500.511.5窄带噪声波形图00.51 1.52-1-0.50.511.5窄带噪声频谱图3)受污染语音信号的时域波形和频谱图0246x 104-0.2-0.15-0.1-0.0500.050.10.150.20.25混合信号波形图0246x 1040100200300400500600混合信号频谱图4)滤波器的频响特性图 FIR 滤波器的频响特性图00.10.20.30.40.50.60.70.80.91-8000-6000-4000-2000Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )0.10.20.30.40.50.60.70.80.91-300-200-1000100Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )246x 104-0.3-0.2-0.100.10.20.30.40.50.60.70246x 1040.20.40.60.811.21.4IIR 滤波器的频响特性图0100200300400500600-300-250-200-150-100-5050低通滤波器幅度谱图5)滤波后语音信号的时域波形和频谱图00.51 1.52 2.53 3.54 4.5x 1041002003004005006000246x 104-0.1-0.050.050.10.15恢复信号波形图0246x 104100200300400500600恢复信号频谱图6)滤波前后的语音信号时域波形对比图和频谱对比图0246x 104-0.2-0.15-0.1-0.0500.050.10.150.20.25信号波形图0246x 104-0.1-0.0500.050.10.15恢复信号波形图0246x 104100200300400500600信号频谱图0246x 104100200300400500600恢复信号频谱图实验程序: 1)实验主程序 clc;clear;close%[x,fs,bits]=wavread('录音的名字'); [x,fs,bits]=wavread('录音的名字.wav'); %x=wavread('录音的名字'); sound(x,fs,bits);plot(x);title('声音波形图') figure(2)%y=fft(x,4096); y=fft(x);plot(abs(y));title('声音频谱图')fh=0.9;fl=0.25;n=1;length(x);y1=fh*sinc(fh*(n-5000))-fl*sinc(fl*(n-5000)); figure(5)subplot(1,2,1);plot(y1);title('窄带噪声波形图') y2=fft(y1);subplot(1,2,2);plot(abs(y2));title('窄带噪声频谱图') y3=y1+x; figure(6)subplot(1,2,1);plot(y1+x);title('混合信号波形图') y4=fft(y3);subplot(1,2,2);plot(abs(y4));title('混合信号频谱图')wp=0.5;ws=0.55; detaw=ws-wp; n=ceil(8*pi/detaw); wc=(wp+ws)/2;b1=fir1(n-1,wc/pi,hanning(n));freqz(b1,1,41856)f1=fftfilt(b1,y3);plot(f1)f2=fft(f1);plot(abs(f2))f11=filter (bz,az, y3);figure(8)subplot(1,2,1);plot(f11);title('恢复信号波形图')f22=fft(f11);subplot(1,2,2);plot(abs(f22));title('恢复信号频谱图') sound(f11,fs,bits);figure(9)subplot(1,2,1);plot(x);title('信号波形图')subplot(1,2,2);plot(f11);title('恢复信号波形图') figure(10)subplot(1,2,1);plot(abs(y));title('信号频谱图') subplot(1,2,2);plot(abs(f22));title('恢复信号频谱图') 2)FIR滤波器子程序fh=0.9;f1=0.25;n=1:length(x);h=fh*sinc(fh*(n-5000))-f1*sinc(f1*(n-5000));figure(4)subplot(1,2,1);plot(h);p=fft(h);subplot(1,2,2);plot(abs(p));3)IIR滤波器子程序fs=44100;rp=3;rs=20;wp1=0.5;wss1=0.55;op1=2*fs*tan(wp1/2);os1=2*fs*tan(wss1/2);[N,wc]=buttord(op1,os1,rp,rs,'s')[z,p,k]=buttap(N);[ba,aa]=zp2tf(z,p,k);[b,a]=lp2lp(ba,aa,wc);[bz,az]=bilinear(b,a,fs);H=freqz(bz,az);ma=20*log10(abs(H));figure(7)plot(ma);title('低通滤波器幅度谱图')。

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

实验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 实现16 位定点加、减、乘、除运算的基本方法和编程技巧。

本实验的演示文件为exer1.out。

2.2 实验原理1 定点DSP 中的数据表示方法C54X 是16 位的定点DSP。

一个16 位的二进制数既可以表示一个整数,也可以表示一个小数。

当它表示一个整数时,其最低位(D0)表示20,D1 位表示21,次高位(D14)表示214。

2 实现16 位定点加法C54X 中提供了多条用于加法的指令,如ADD,ADDC,ADDM 和ADDS。

其中ADDS 用于无符号数的加法运算,ADDC 用于带进位的加法运算(如32 位扩展精度加法),而ADDM 专用于立即数的加法。

3 实现16 位定点减法C54X 中提供了多条用于减法的指令,如SUB,SUBB,SUBC 和SUBS。

其中SUBS用于无符号数的减法运算,SUBB 用于带进位的减法运算(如32 位扩展精度的减法),而SUBC 为移位减,DSP 中的除法就是用该指令来实现的。

4 实现16 位定点整数乘法在C54X 中提供了大量的乘法运算指令,其结果都是32 位,放在A 或B 寄存器中。

乘数在C54X 的乘法指令很灵活,可以是T 寄存器、立即数、存贮单元和A 或B寄存器的高16 位。

5 实现16 位定点小数乘法在C54X 中,小数的乘法与整数乘法基本一致,只是由于两个有符号的小数相乘,其结果的小数点的位置在次高的后面,所以必须左移一位,才能得到正确的结果。

C54X中提供了一个状态位FRCT,将其设置为1 时,系统自动将乘积结果左移一位。

但注意整数乘法时不能这样处理,所以上面的实验中一开始便将FRCT 清除。

两个小数(16 位)相乘后结果为32 位,如果精度允许的话,可以只存高16 位,将低16 位丢弃,这样仍可得到16 位的结果。

6 实现16 位定点整数除法在 C54X 中没有提供专门的除法指令,一般有两种方法来完成除法。

一种是用乘法来代替,除以某个数相当于乘以其倒数,所以先求出其倒数,然后相乘。

这种方法对于除以常数特别适用。

另一种方法是使用SUBC 指令,重复16 次减法完成除法运算。

7 实现16 位定点小数除法在 C54X 中实现16 位的小数除法与前面的整数除法基本一致,也是使用循环的SUBC 指令来完成。

但有两点需要注意:第一,小数除法的结果一定是小数(小于1),所以被除数一定小于除数。

2.3 实验内容本实验需要使用C54X 汇编语言实现加、减、乘、除的基本运算,并通过DES 的存贮器显示窗口观察结果。

1 编写实验程序代码2 用ccs simulator 调试运行并观察结2.4 实验结果1、加法结果2、乘法结果3、减法结果4、除2.5 思考题(0.5、0.25)实验三C54X的浮点数的算术运一、实验目的1 练习TMS320C54X 汇编程序的编写与调试方法,重点练习C54X 程序流程控制的方法。

2 学习并掌握应用TMS320C54X 来进行浮点数的各种算术运算的算法实现。

3 练习并掌握TMS320C54X 的汇编语言的汇编指令系统的使用方法,重点练习具有C54X 特点的一些在功能上有所扩展的特殊指令,并了解这些指令在进行算术运算或各种控制时所带来的方便。

4 练习并掌握用CCS 调试程序的一些基本操作。

二.实验原理1 浮点数的表示方法在定点运算中,小数点是在一个特定的固定位置。

例如,如果一个32-bit 的数把小数点放在最高有效位(也就是符号位)之后,那么就只有分数(绝对值小于1)才能被显示。

在定点运算系统中,虽然在硬件上实现简单,但是表示的操作数的动态范围要受到限制。

3 浮点数运算的步骤程序代码分成四个 ASM 文件输入,通过编译生成.obj 文件,连接生成.out 文件后就可以在DES320PP-U 实验系统上调试运行(先要创建一个工程文件,然后加入四个工程文件,并且一起编译,连接。

因为每个文件都对下一个文件作了引用)。

步骤如下:a. 首先启动 setup CCS C5000,在其中设置目前需要的CCS 的工作状态为C54xxsimulator,保存这一设置并退出。

然后再启动CCS 实验系统软件CCS C5000。

b. 在下拉菜单中选择“File”->“Load Program”以装入所要调试的程序fc.out,这时,在反汇编窗口中能看到程序的源代码。

c. 在下拉菜单中选择“View”->“CPU Registers”->“CPU Register”,可以看见在CCS 界面下部份会出现CPU 中的相关寄存器;选择“View”->“Memory…”,在弹出的“Memory Window Options”窗口中选择要观察的区域为数据区,地址开始为0x80h,然后就可以看见出现一个Data Memory 窗口,其中显示了从0x80h 开始的.bss 区。

d. 在反汇编窗口中需要观察的地方设置断点:在这条指令处双击将其点为红色即可。

比如在加法程序中有指令nop 的位置都可以加一个断点。

e. 在下拉菜单中选择“调试”——“连续运行”(或直接点击“运行程序”按钮)运行浮点数程序。

如果编写程序时在计算完毕后遇到一个断点,那么程序到此会自动停止。

f. 当示范程序在第一个断点处停下来时,此时就可以看见程序初始化后的情况:被加数12.0 以浮点数的格式放在内存区0x08a-0x08b 中,其值为4140h 和0000h。

加数12.0 放在内存区0x08c-0x08d 中,其值也为4140h 和0000h。

g. 再点击“运行程序”按钮,之后程序会在下一个断点处停下来,这时可以看见被加数被格式转换后的变量op1hm、op1lm 和op1se 的值在内存区0x084-0x086 中,分别为00c0h、0000h 和0082h。

同样加数被格式转换后的变量op2se、op2hm 和op2lm的值在内存区0x087-0x089 中,分别为0082h、00c0h 和0000h。

h. 再点击“运行程序”按钮,程序停下来时就可以观察到在存储器窗口中表示结果的变量rlthm、rltlm、rltsign 和rltexp 的值在内存区0x080-0x083 中,其值分别为0040h、0000h、0180h 和0083h。

i. 这时可以看到 A 寄存器中的值为AH=41c0h,AL=0000h 这就是最后的以浮点数的格式表示的结果值24(=12+12)。

加法运算到此结束。

j. 继续点击“运行程序”按钮,当程序再次停下来时就可以看见在A 寄存器中显示的13.0 与12.0 进行减法运算的结果:AH=3f80h,AL=0000h。

这是用浮点数格式表示的数1(=13-12)。

减法运算的程序到此结束。

k. 继续点击“运行程序”按钮,当程序再次停下来时就可以看见在A 寄存器中显示的12.0 与12.0 进行乘法运算的结果:AH=4310h,AL=0000h。

这是用浮点数格式表示的数144(=12*12)。

乘法运算的程序到此结束。

l. 继续点击“运行程序”按钮,当程序再次停下来时就可以看见在A 寄存器中显示的12.0 与4.0 进行除法运算的结果:AH=4040h,AL=0000h。

这是用浮点数格式表示的数3(=12/4)。

至此加、减、乘、除四种运算都运行完毕。

m. 如果程序运行不正确,请检查源程序是否有误,必要时可以在源程序中多插入断点语句。

程序在执行到断点语句时自动暂停,此时可以通过检查各个寄存器中的值以及内存单元中的值来判断程序执行是否正确。

三.在 CCS 的C54xx simulator 上调试观察实验结果浮点加法断点一:浮点加法断点二:浮点加法断点三:浮点减法浮点数乘法浮点数除法四心得体会通过学习C54X的浮点数的算术运算,以及实验结果的观察,使我了解了浮点数运算的原理,学习并掌握用TMS320C54X来进行浮点数的各种算术运算的算法实现。

实验四用定时器实现数字振荡器实验四用定时器实现数字振荡器4.1 实验目的在数字信号处理中,会经常使用到正弦/余弦信号。

通常的方法是将某个频率的正弦/余弦值预先计算出来后制成一个表,DSP 工作时仅作查表运算即可。

在本实验中将介绍另一种获得正弦/余弦信号的方法,即利用数字振荡器用叠代方法产生正弦信号。

本实验除了学习数字振荡器的DSP 实现原理外,同时还学习C54X 定时器使用以及中断服务程序编写。

另外,在本实验中我们将使用汇编语言和C 语言分别完成源程序的编写。

4.2本实验利用定时器产生一个 2kHz 的正弦信号。

定时器被设置成每25uS 产生一次中断(等效于采样速率为40K)。

相关文档
最新文档