文档库 最新最全的文档下载
当前位置:文档库 › DSP实验报告重叠保留法和重叠相加法(精)

DSP实验报告重叠保留法和重叠相加法(精)

DSP实验报告重叠保留法和重叠相加法(精)
DSP实验报告重叠保留法和重叠相加法(精)

北京邮电大学

学班姓学

验报告

MATLAB 实现线性卷积运算院:信息与通信工程学院级:名: ______

号:

期:

实验名称:用

索引

一、实验原

理 ..................................................................................................................... 3 1、算法产生背景 (3)

2、算法基本思

想 ...........................................................................................................................3 1)重叠相加法 (3)

2)重叠保留

法 ...........................................................................................................................4 二、流程图设计 . ................................................................................................................. 5 1、重叠相加

法 . .............................................................................................................................. 5 2、重叠保留

法 . (6)

三、MATLAB 源代

码 . ........................................................................................................... 7 1、重叠相加源码 ...........................................................................................................................7 2、重叠保留源

码 ...........................................................................................................................8 四、实验结果与分析 ........................................................................................................... 9 ①调用CONV (计

算 . ......................................................................................................................... 9 ②测试重叠相加算法 (9)

③测试重叠保留算

法 .....................................................................................................................9 五、讨论与总结 . ............................................................................................................... 10 1、算法效率分

析: .....................................................................................................................10 A. 重叠相加法 . (10)

B. 重叠保留

法 . ........................................................................................................................... 11 C. 调用

conv( .............................................................................................................................12 D. 综合对比分

析 . ....................................................................................................................... 13 2、故障和问题分

析 (14)

①分段问

题 . .............................................................................................................................. 14 ②运算完整性问题....................................................................................................................

14 ③算法硬件实

现 (14)

一、实验原理

1、算法产生背景

DFT 是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时间傅里叶变换频域的采样。在形式上,变换两端(时域和频域上)的序列是有限长的。DFT 具备明确且合理的物理含义,适合应用于数字系统,同时可以方便地由计算机进行运算。

对于线性非移变离散系统,可由线性卷积表示时域输入输出关系,即

y (n x (n *h (n

通常采用循环卷积降低运算量,但实际中往往无法满足对信号处理的实时性要求。因此,产生了重叠相加法和重叠保留法两种典型的算法,用以快速计算线性卷积,成为了DFT 的一个重要应用。

2、算法基本思想

1)重叠相加法

重叠相加法是将待过滤的信号分割成长为N 的若干段,如图1所示,每一段都可以和有限时宽单位取样响应作卷积,再将过滤后的各段重叠相加。

具体算法实现原理如图2所示,建立缓存序列,每次输入N 点序列,通过计算x(n和h(n 的循环卷积实现线性卷积运算,将缓存的M -1点序列和卷积结果相加,并输出前N 点作为计算结果,同时缓存后M -1点,如此循环,直至所有分段计算完毕,则输出序列y(n为最终计算结果。

2)重叠保留法

重叠保留法相当于将x l(n和h(n作循环卷积,然后找出循环卷积中相当于线性卷积的部分。在这种情况下,将序列y(n分为长为N 的若干段(如图3所示,每个输入段和前一段有M -1个重叠点。此时只需要将发生重叠的前M -1个点舍去,保留重叠的部分并输出,则可获得序列y(n,算法如图4所示。

二、流程图设计

1、重叠相加法

2、重叠保留法

三、MATLAB 源代码

1、重叠相加源码

2、重叠保留源码

四、实验结果与分析

对两种算法采用同一序列进行测试分析。

设x(n =(n+1 , 0≤n≤9; ?(n =*?2,0,+2+ 。计算y (n =x (n ?h(n 。

①调用conv(计算

首先利用Matlab 对两序列直接运算,得出正确结果。代码为:x=*1:1:10+,h=*-2,0,+2+,conv(x,h

结果为: * -2 -4 -4 -4 -4 -4 -4 -4 -4 -4 18 20 +

②测试重叠相加算法

代码为:overlap_add(x,h,6

结果为:* -2.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000

-4.0000 -4.0000 18.0000 20.0000 +

③测试重叠保留算法

代码为:overlap_save(x,h,4

结果为:* -2.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000 -4.0000

-4.0000 -4.0000 18.0000 20.0000 +

由此可见,两种算法运行正常,计算正确。更多的测试也正确。算法正确。

五、讨论与总结

1、算法效率分析:

A. 重叠相加法

由上表和图1可以看出,随着数据规模增大,运算耗时呈线性增长,因而算法的时间复杂度为O(n,其中n 为数据规模。因而重叠相加算法具有可行性和实用性。再从算法的空间复杂度来看,由于分配的缓存空间只由分段长度确定,不随数据规模的变化而变化,因而空间复杂度为O(1。综合考察,重叠相加法具有较好的时间和空间复杂度。当数据量达到千万量级时,运算延时最少大约为2.328s ,可运用于对信号的实时处理。

MATLAB 实验报告 B.重叠保留法分段长度序列长度 10 100 1000 10000 100000 1000000 10000000 4 0.000512 0.001014 0.009297 0.05674 0.558865 5.221879 52.2464 10 0.000225 0.000514 0.002402 0.023194 0.216818 2.144089 22.02215 100 0.001249 0.000272 0.000787 0.006122 0.039175 0.357428 3.593282 1000 0.000881 0.000836 0.000687 0.003941 0.026044 0.236277 2.335725 10000 0.008454 0.008802 0.011107 0.011083 0.042643 0.327539 3.251762 图2.重叠保留法耗时与数据规模关系图 60 50 40 运算耗时 (s 30 20 10 0 -1.5 -10 序列长度 Millions 0.5 2.5 4.5 6.5 8.5 10.5 从上至下,依次为:N=4,10,100,10000,1000 由上表和图 2 可以看出,同重叠相加法类似,随着数据规模的增大,运算耗时呈线性增长,算法的时间复杂度为 O(n,其中 n 为数据规模.同样由于分配的缓存空间只由分段长度确定,空间复杂度为 O(1.综合考察,重叠保留法也具有较好的时间和空间复杂度.当数据量达到千万量级时,运算延时最少大约为 2.335s,可运用于对信号的实时处理. 第 11 页

MATLAB 实验报告 C.调用 conv( 序列长度运算耗时 (s 10 100 1000 10000 100000 1000000 1000000 0.000113 0.000081 0.000117 0.000275 0.002492 0.032155 0.32588 图3.调用conv(函数耗时与数据规模关系图 0.35 0.3 0.25 运算耗时 (s 0.2 0.15 0.1 0.05 0 -1.5 -0.05 序列长度 Millions 0.5 2.5 4.5 6.5 8.5 10.5 由上表和图 3 可以看出,调用系统自带的线性卷积运算函数 conv(计算线性卷积,运算时间和序列长度也有线性关系.时间复杂度为 O(n.但此时的信号处理延时很小,当数据达到千万量级时,延时仅为 0.325s,实时性非常好! 第 12 页

MATLAB 实验报告 D.综合对比分析分段长度 4 平均耗时(s 重叠相加重叠保留调用 conv( 10 100 1000 10000 9.52527 8.299243 0.05163 3.983497 3.487056

0.05163 0.624769 0.571188 0.05163 0.376769 0.372056 0.05163 0.531758 0.523056 0.05163 图4.三种方法在不同分段长度下的耗时图 9.52527 10 3.983497 8.299243 运行耗时(对数坐标 (s 3.487056 1 0.001 0.01 0.624769 0.1 0.571188 0.376769 1 Thousands 0.531758 10 0.372056 0.1 0.05163 0.05163 0.05163 0.05163 0.523056

0.05163 0.01 分段长度(对数坐标重叠相加重叠保留调用conv( 重叠保留法和重叠相加法运行效率与分段长度相关性较强.分段数和卷积运算的序列长度为非线性关

系,且当分段长度维持在大约 1000 点左右时,获得最高的平均运行效率.内置函数conv(运行效率与分段数无关.重叠相加和重叠保留两者效率几乎一致. 在实际应用中,重叠保留和重叠相加主要用于实施信号处理,因而输入序列是连续输入, 在保证实时性的要求下,输入序列的分段不能太长.设想实际情况如下:设语音信号采样率为

8KHz,相当于每秒输入 8000 点序列,由重叠相加法处理(重叠保留法类似.如若分段为 1000 点,考虑实际系统中为实时输出(Matlab 算法模拟里面是将所有序列保存之后再输出 ,因而每分段处理延时 0.00406/8s,又接收 1000 点延时为 1/8s,故处理总延

时为 0.1255075s.此时接收延时起主要作用,影响实时性.减小接收延时则需要减小分段点数,同时使得处理延时增加.接收延时和处理延时两者是不可调和的矛盾.实际处理时,可根据实时性要求,折中选择分段点数,既满足实时性要求,又降低系统开销. 第13 页

MATLAB 实验报告 2,故障和问题分析①分段问题初始时没有考虑到分段长度的限制,导致用户输入分段小于系统冲击响应 h(n的长度时运算出错.后增加一个判断语句,当出现前述情况时,自动提升分段点数,问题解决. ②运算完整性问题在写好代码之后的测试中,出现了一个十分奇怪的现象,即:当输入点数为 1000, 10000 或者更大时卷积运算最后 M-1 个结果为 0.反复测试发现,不仅 1000 和 10000,只要是分段数 N 的倍数的输入点数都存在同样问题,而其他非倍数的输入,运算与 conv( 函数运算结果完全一致.通过设置断点,逐句调试,最终发现问题的症结,当输入序列为 N 的倍数时,最后的一段卷积实际上没有做.因而将循环次数增加 1,将最后一次保留的M-1 个点补全 N 个 0,做最后一次分段卷积.修改后,测试结果正确. ③算法硬件实现第一,重叠保留和重叠相加算法在硬件实现时将算法中的临时变量都化为缓存,所以考虑缓存的大小限制,不能将输入序列分段过长,否则所需的缓存将加大,成本加大. 第二,接收延时和处理延时两者存在矛盾,减少分段长度,可减少接收延时但会增加处理延时,同理,增大分段长度,可减少处理延时,但将增加接收延时.具体实现时需要综合考虑两者的作用,去最优化值. 第三,算法实际实现时,可实时输出处理过的分段序列,与直接线性卷积相比,实时性大大增强,需要的计算单元特别是系统缓存明显减少.因而实用性很强. 第四,分段卷积能灵活计算长输入序列对 IIR 滤波器的响应,且延时较小,因而很常用.从硬件实现角度讲,重叠保留和重叠相加法效率几乎一致. 第五,测

试算法性能时采用较短的 h(n序列,主要考虑到分段卷积应用在单位冲击响应较短的 IIR 滤波器. <报告结束> 第 14 页

DSP实验报告

一、综合实验内容和目的 1、实验目的 (1) 通过实验学习掌握TMS320F28335的浮点处理; (2) 学习并掌握A/D模块的使用方法; (3) 学习并掌握中断方式和查询方式的相关知识及其相互之间的转换; (4) 学习信号时域分析的方法,了解相关电量参数的计算方法; (5) 了解数字滤波的一些基本方法。 2、实验内容 要求1:对给定的波形信号,采用TMS320F28335的浮点功能计算该信号的以下时域参数:信号的周期T,信号的均方根大小V rms、平均值V avg、峰-峰值V pp。 其中,均方根V rms的计算公式如下: V= rms 式中N为采样点数,()u i为采样序列中的第i个采样点。 要求2:所设计软件需要计算采样的波形周期个数,并控制采样点数大于1个波形周期,且小于3个波形周期大小。 要求3:对采集的数据需要加一定的数字滤波。 二、硬件电路 相关硬件:TMS320F28335DSP实验箱,仿真器。

硬件结构图 三、程序流程图 1、主程序流程图 程序的主流程图2、子程序流程图

参数计算的流程图 四、实验结果和分析 1、实验过程分析 (1) 使用的函数原型声明 对ADC模件相关参数进行定义:ADC时钟预定标,使外设时钟HSPCLK 为25MHz,ADC模块时钟为12.5MHz,采样保持周期为16个ADC时钟。 (2) 定义全局变量 根据程序需要,定义相关变量。主要有:ConversionCount、Voltage[1024]、Voltage1[1024]、Voltage2[1024]、filter_buf[N]、filter_i、Max、Min、T、temp、temp1、temp2、temp3、Num、V、Vav、Vpp、Vrm、fre。这些变量的声明请见报告后所附的源程序。 (3) 编写主函数 完成系统寄存器及GPIO初始化;清除所有中断,初始化PIE向量表,将程

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课程的实用性和趣味性。

DSP实验报告

DSP实验报告 软件实验 1无限冲激响应滤波器(IIR) 算法 一.实验目的 1 .掌握设计IIR 数字滤波器的原理和方法。 2 .熟悉IIR 数字滤波器特性。 3 .了解IIR 数字滤波器的设计方法。 二.实验设备 PC 兼容机一台,操作系统为Windows2000( 或Windows98 ,WindowsXP ,以下默认为Windows2000) ,安装Code Composer Studio 2.21 软件。 三.实验原理 1 .无限冲激响应数字滤波器的基础理论。 2 .模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。 3 .数字滤波器系数的确定方法。 4 .根据要求设计低通IIR 滤波器: 要求:低通巴特沃斯滤波器在其通带边缘1kHz 处的增益为-3dB ,12kHz 处的阻带衰减为30dB ,采样频率25kHz 。设计: - 确定待求通带边缘频率fp1Hz 、待求阻带边缘频率fs1Hz 和待求阻带衰减-20log δsdB 。 模拟边缘频率为:fp1=1000Hz ,fs1=12000Hz 阻带边缘衰减为:-20log δs=30dB - 用Ω= 2πf/fs 把由Hz 表示的待求边缘频率转换成弧度表示的数字频率,得到Ωp1 和Ωs1 。 Ωp1=2 πfp1/fs=2 π1000/25000=0.08 π弧度 Ωs1=2 πfs1/fs=2 π12000/25000=0.96 π弧度 - 计算预扭曲模拟频率以避免双线性变换带来的失真。 由w=2fs tan( Ω/2) 求得wp1 和ws1 ,单位为弧度/ 秒。 wp1=2fs tan( Ωp1/2)=6316.5 弧度/ 秒 ws1=2fs tan( Ωs1/2)=794727.2 弧度/ 秒 - 由已给定的阻带衰减-20log δs 确定阻带边缘增益δs 。

DSP运行实验报告

DSP运行实验报告 一、实验目的 熟悉CCS软件仿真下,DSP程序的下载和运行;熟悉借助单片机的DSP程序下载和运行; 熟悉借助仿真器的DSP程序下载和运行;熟悉与DSP程序下载运行相关的CCS编程环境。 二、实验原理 CCS软件仿真下,借用计算机的资源仿真DSP的内部结构,可以模拟DSP程序的下载和运行。 如果要让程序在实验板的DSP中运行、调试和仿真,可以用仿真器进行DSP程序下载和运行。初学者也可以不用仿真器来使用这款实验板,只是不能进行程序调试和仿真。 在本实验板的作用中,单片机既是串口下载程序的载体,又是充当DSP 的片外存储器(相对于FLASH),用于固化程序。 三、实验设备、仪器及材料 安装有WINDOWS XP操作系统和CCS3.3的计算机。 四、实验步骤(按照实际操作过程) 1、CCS软件仿真下,DSP程序的下载和运行。 第一步:安装CCS,如果不使用仿真器,CCS 的运行环境要设置成一个模拟仿真器(软仿真)。

第二步:运行CCS,进入CCS 开发环境。 第三步:打开一个工程。 将实验目录下的EXP01目录拷到D:\shiyan下(目录路径不能有中文),用[Project]\[Open]菜单打开工程,在“Project Open”对话框中选 EXP01\CPUtimer\CpuTimer.pjt,选“打开”, 第四步:编译工程。 在[Project]菜单中选“Rebuild All”,生成CpuTimer.out文件。 第五步:装载程序。 用[File]\[Load Program]菜单装载第四步生成CpuTimer.out文件,在当前工程目录中的Debug 文件夹中找到CpuTimer.out文件,选中,鼠标左键单击“打开”。

dsp实验报告4

实验2.4 外中断 一.实验目的 1.通过实验熟悉VC5509A的中断响应过程。 2.学会C语言中断程序设计,以及运用中断程序控制程序流程。 二.实验设备 计算机,ICETEK-VC5509-A实验箱及电源。 三.实验原理 1.中断及中断处理过程: ⑴中断简介:中断是一种由硬件或软件驱动的信号,DSP在接到此信号时,将当前程序悬挂起来,转去执行另外一个任务,这个任务我们称为中断服务程序(ISR)。TMS320C55x DSP 可支持32个ISR,可由硬件或软件触发。 ⑵DSP处理中断的步骤: ①接收中断请求:由软件或硬件发出。 ②响应中断请求:对于可屏蔽中断,需要满足若干条件,才发生响应;而对于不可屏蔽中断,则立即响应。 ③准备执行中断服务程序。 - 完成当前正在执行的指令;将进入流水线但还未解码的指令清除。 - 自动保存若干寄存器的值到数据堆栈和系统堆栈。 - 取得用户定义的中断向量表中当前中断向量,中断向量指向中断服务程序入口。 ④执行中断服务程序。中断服务程序包含中断返回指令,这样返回时可以出栈以前保存的关键寄存器数据,从而恢复中断服务程序执行前的现场。 ⑶中断向量表: 中断向量表的构成请参见TI的文档sprs295d.pdf之3.11节。 中断向量表的地址可以由用户指定。 ⑷外中断: TMS320C5509可以响应INT0-INT4五个外中断。 2.ICETEK-CTR板的键盘接口: 显示/控制模块ICETEK-CTR通过接口P8连接小键盘,接收小键盘传送的扫描码,并在每个扫描码结束后保存,同时向DSP的INT2发送中断信号;当DSP读键盘时将扫描码送到数据总线上。小键盘上每次按下一个键将产生2个扫描码,2次中断。 3.程序编制 由一个不含中断处理程序的工程通过改写加入中断处理程序部分大致需要如下操作(假设使用INT2): ⑴编制中断服务程序:参见实验程序,编写单独的一个函数XINT,此函数使用interrupt 修饰,没有参数和返回值。 ⑵构造中断向量表:可以用汇编语言构造,编写一个汇编语言模块程序vector.asm。 ⑶修改链接命令文件:在MEMORY小节中开辟单独的地址段用以存放中断向量表;在SECTIONS小节中指定.vectors段到前步开设的内存段中。 ⑷主程序中进行初始化设置:定位中断向量表、使能中断、清中断等。 4.实验程序流程图:

DSP实验报告

DSP实验报告

软件实验 1无限冲激响应滤波器(IIR) 算法 一.实验目的 1 .掌握设计IIR 数字滤波器的原理和方法。 2 .熟悉IIR 数字滤波器特性。 3 .了解IIR 数字滤波器的设计方法。 二.实验设备 PC 兼容机一台,操作系统为Windows2000( 或Windows98 ,WindowsXP ,以下默认为Windows2000) ,安装Code Composer Studio 2.21 软件。 三.实验原理 1 .无限冲激响应数字滤波器的基础理论。 2 .模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器、贝塞尔滤波器)。 3 .数字滤波器系数的确定方法。 4 .根据要求设计低通IIR 滤波器: 要求:低通巴特沃斯滤波器在其通带边缘1kHz 处的增益为-3dB ,12kHz 处的阻带衰减为30dB ,采样频率25kHz 。设计: - 确定待求通带边缘频率fp1Hz 、待求阻带边缘频率fs1Hz 和待求阻带衰减-20log δsdB 。 模拟边缘频率为:fp1=1000Hz ,fs1=12000Hz 阻带边缘衰减为:-20log δs=30dB - 用Ω= 2πf/fs 把由Hz 表示的待求边缘频率转换成弧度表示的数字频率,得到Ωp1 和Ωs1 。 Ωp1=2 πfp1/fs=2 π1000/25000=0.08 π弧度 Ωs1=2 πfs1/fs=2 π12000/25000=0.96 π弧度 - 计算预扭曲模拟频率以避免双线性变换带来的失真。 由w=2fs tan( Ω/2) 求得wp1 和ws1 ,单位为弧度/ 秒。 wp1=2fs tan( Ωp1/2)=6316.5 弧度/ 秒 ws1=2fs tan( Ωs1/2)=794727.2 弧度/ 秒 - 由已给定的阻带衰减-20log δs 确定阻带边缘增益δs 。 因为-20log δs=30 ,所以log δs=-30/20 ,δs=0.03162

DSP原理与应用实验报告

DSP原理与应用实验报告 姓名: 学号: 班级: 学院: 指导教师:

实验一代数汇编指令基础实验 一、实验目的: 1.通过调试目标代码,掌握指令的功能,熟悉指令; 2.通过指令的熟悉,能够指令应用于实际项目中。 二、实验原理: Ti公司的代数汇编指令。 三、实验程序: .title"算术指令综合实验" .mmregs .sect ".vect" .copy "vectors.asm" .text _Start: ; AR7=#767 ; A=#38CAH ; DP=#08AH ; RSA=#0123H; DP=#188H ; ASM=#0AH AR7=A MMR(*AR7+)=#1234H DP=#04H A=#9876H AR6=#230H *AR6+=#9ACDH ARP=#6 ; @38H=A NOP NOP AR0=#003AH A=*AR6+0 T=#08H SXM=1 B=*AR6-<

DSP实验报告word版

实验一 离散系统的时域分析 一、实验目的 1、掌握离散时间信号的MATLAB 表示; 2、信号运算; 3、差分方程的求解; 4、离散时间信号的卷积运算。 二、实验原理 1、离散时间信号 离散时间信号只在某些离散的瞬时给出函数值,而在其他时刻无定义。它是时间上不连续按一定先后次序排列的一组数的集合,称为时间序列,用x(n)表示,n 取整数代表时间的离散时刻。 在matlab 中用向量来表示一个有限长度的序列。 2、序列的类型 为了分析的方便,在数字信号处理中规定了一些基本的序列。 a) 单位采样序列 function [x,n]=impseq(n1,n2,n0) n=[n1:n2]; x=[(n-n0)==0]; 调用该函数 [x,n]=impseq(-2,8,2); stem(n,x) 00 10 ()00 1()0n n n n n n n n n δδ =?= ? ≠? =?-? ≠?

单位采样序列的另一种生成方法 n0=-2; n=[-10:10]; nc=length(n); x=zeros(1,nc); for i=1:nc if n(i)==n0 x(i)=1 end end stem(n,x) b) 单位阶跃序列 function [x,n]=stepseq(n1,n2,n0) n=[n1:n2]; x=[(n-n0)>=0]; 调用该函数 [x,n]=stepseq(-2,8,2); stem(n,x) 000 10()001() 0n n n n n n n n n εε >=?=? =?-?

c) 实数指数序列 x(n)=an (运算符“.^”) n=[0:10]; x=0.9.^n; stem(n,x) d) 复数指数序列 n=[-10:10]; alpha=-0.1+0.3*j; x=exp(alpha*n); real_x=real(x); image_x=imag(x); mag_x=abs(x); phase_x=angle(x); subplot(2,2,1); stem(n,real_x) subplot(2,2,2); stem(n,image_x) subplot(2,2,3); stem(n,mag_x) subplot(2,2,4); stem(n,phase_x) ()()j n x n e αω+=(0.1j0.3)n x(n)e (10n 10) -+= -<<

DSP实验报告模版

我们做的dsp实验是实验一,实验二,实验三!模板上只有1 3 !2要自己仿照实验一写! 不要弄错了!实验题目在另外一个共享表格里! 实验一数据存储实验 一、实验目的 1. 掌握ccs的使用 2. 掌握 tms320c54x 程序空间的分配; 3. 掌握 tms320c54x 数据空间的分配; 4. 能够熟练运用tms320c54x 数据空间的指令。 二、实验设备 计算机,ccs 3.1版软件,dsp仿真器,e300实验箱,dsp-54xp cpu板。 三、实验步骤与内容 1. 在进行 dsp实验之前,需先连接好仿真器、实验箱及计算机,连接方法如下所示: 2. e300 底板的开关sw4 的第1位置on,其余位置off。其余开关设置为off。 sw5全部置on;其余开关不做设置要求 3. 上电复位 在硬件安装完成后,确认安装正确、各实验部件及电源连接无误后,启动计算机,接通仿真器电源,此时,仿真器上的“红色指示灯”应点亮,否则dsp开发系统与计算机连接存在问题。 4. 运行ccs程序 1) 待计算机启动成功后,实验箱220v电源置“on”,实验箱上电 2) 启动ccs3.1,进入ccs界面后,点击“debug—connect” 3) 此时仿真器上的“绿色指示灯”应点亮,ccs正常启动,表明系统连接正常;否则仿真器的连接、jtag 接口或ccs 相关设置存在问题,这时需掉电检查仿真器的连接、jtag 接口连接是否正确,或检查ccs相关设置是否存在问题。 5. 成功运行ccs 程序后,首先应熟悉ccs的用户界面; 6. 学会在ccs环境下创建工程文件、添加程序文件、编写程序、编译、装载、调试,学习如何使用观察窗口等。 7. 用“project\open”打开“c:\ti5000\myprojects\01_mem\ mem.pjt”. 编译并装载“\ 01_mem\debug\mem.out” 8.用“edit”下拉菜单中的“memory/fill”编辑内存单元,参数设置如下图: 单击“ok”此时以0x1000 为起始地址的16个内存单元被修改成:0x0009 9.用“view”下拉菜单“memory”观察内存单元变化,输入要查看的内存单元地址,本实验要查看0x1000h~0x100fh 单元的数值变化,输入地址0x1000h; 单击“ok”如下图所示: 10. 点击“debug\go main”进入主程序,在程序中“加软件断点1”和“加软件断点2”处 施加软件断点。 11. 单击“debug\run”运行程序,也可以“单步”运行程序;当程序运行到“软件断点1” 处时,查看0x1000h~0x1007h单元的值变化, 12. 再单击“debug\run”,当程序运行到“软件断点2”处时,查看0x1008~0x100f

DSP实验报告重叠保留法和重叠相加法(精)

北京邮电大学 实 学班姓学 日 验报告 MATLAB 实现线性卷积运算院:信息与通信工程学院级:名: ______ 号: 期: 实验名称:用 索引

一、实验原 理 ..................................................................................................................... 3 1、算法产生背景 (3) 2、算法基本思 想 ...........................................................................................................................3 1)重叠相加法 (3) 2)重叠保留 法 ...........................................................................................................................4 二、流程图设计 . ................................................................................................................. 5 1、重叠相加 法 . .............................................................................................................................. 5 2、重叠保留 法 . (6) 三、MATLAB 源代 码 . ........................................................................................................... 7 1、重叠相加源码 ...........................................................................................................................7 2、重叠保留源 码 ...........................................................................................................................8 四、实验结果与分析 ........................................................................................................... 9 ①调用CONV (计 算 . ......................................................................................................................... 9 ②测试重叠相加算法 (9) ③测试重叠保留算 法 .....................................................................................................................9 五、讨论与总结 . ............................................................................................................... 10 1、算法效率分 析: .....................................................................................................................10 A. 重叠相加法 . (10)

DSP实验报告

DSP实验报告 电子111班 刘卓 112099 同组人:张顺 112108

指令实验 一、实验目的 1、了解DSP的结构及引脚功能; 2、掌握DSP的基本指令。 二、实验要求 了解怎样对DSP进行简单的编程操作、运算控制等基本汇编语言及算术语言、实验测试及除错验证。 三、实验步骤 见教材342页。 四、实验结果 1、直观结果 .title "ex1" .mmregs .def _c_int00 DAT0 .SET 60H DAT1 .SET 61H DAT2 .SET 62H DAT3 .SET 63H .text ADD3 .MACRO P1,P2,P3,ADDRP LD P1,A ADD P2,A ADD P3,A STL A,ADDRP .ENDM _c_int00:B start start: LD #004h,DP ;DP=0004,ST0=1804 STM #1000h,SP ;SP=1000 SSBX INTM ;INTM=1 bk0: ST #0012h,DAT0 ;D(0x0260)=0x0012 LD #0023h,A ;A=0000000023 ADD DAT0,A ;A=0000000035,ST0=1004,C=0 NOP NOP bk1: ST #0054h,DAT0 ;D(0x0260)= 0x0054 LD #0002h,A ;A=0000000002 SUB DAT0,A ;A=FFFFFFFFAE NOP NOP bk2: ST #0345h,DAT0 ;D(0x0260)=0x0345 STM #0002h,T ;T=0002

DSP实验报告4剖析.

DSP实验报告 院系:哈尔滨理工大学荣成校区 专业:电子信息工程 学号: 1230160101 姓名:董小天 日期: 2015年6月16日

实验四无限冲击相应滤波器(IIR)算法实验 一、实验目的 1、熟悉设计IIR数字滤波器的原理与方法 2、掌握数字滤波器的计算机仿真方法; 3、通过观察对实际信号的滤波作用,获得对数字滤波的感性认识。 二、实验设备 计算机,CCS 3.1版软件,实验箱,DSP仿真器,连接线。 三、实验原理 1、无限冲击响数字滤波器的基础理论; 2、模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、贝塞尔滤波器); 3、双线性变换的设计原理。 四、实验步骤 1、复习有关巴特沃斯滤波器设计和用双线性变换法设计IIR数字滤波器的知识; 2、阅读本实验所提供的样例子程序; 3、运行CCS软件,对样例程序进行跟踪,分析结果; 4、填写实验报告。 5、样例程序实验操作说明 A.实验前准备 ①实验箱和CPU板设置:SW2的2、4置ON,1、3置OFF;S2全部置ON;JP3开关的3、6位置ON,其余置off,S23全部置OFF。 ②用导线连接“信号源”2号孔“信号源1”和“A/D单元”2号孔“ADIN1”; B.实验 启动CCS 3.1,打开工程文件exp03_iir。在程序中m=0处设置断点,运行 打开一个图形观察窗口;设置双综观察在起始地址x、y,数值变化为256,32位浮点型变量。 五、实验结果及代码

实验代码 #define UCHAR unsigned char #define UINT16 unsigned int #define UINT32 unsigned long #define TRUE 1 #define FALSE 0 //--------------------------------------------------------- //----------------定义寄存器地址-------------- #define IODIR_ADDR 0x3400 #define IODATA_ADDR 0x3401 //---------------定义寄存器操作-------------- #define IODIR *(ioport unsigned int *)IODIR_ADDR #define IODATA *(ioport unsigned int *)IODATA_ADDR #define IER0 (*(volatile unsigned int*)0x0000) //Interrupt Enable Register 0 #define IFR0 (*(volatile unsigned int*)0x0001) //Interrupt Flag Register 0 #define IER1 (*(volatile unsigned int*)0x0045) //Interrupt Enable Register 1 #define IFR1 (*(volatile unsigned int*)0x0046) //Interrupt Flag Register 1 #define AD_Addr 0x20008 #define AD_in (*(unsigned int *)AD_Addr) //AD输入 //---------------------------------------------------------- /* 全局变量定义*/

DSP技术及课程设计实验报告二(精)

DSP技术及课程设计实验报告二(精)

东南大学自动化学院 实验报告 课程名称: D SP 原理及C 程序开发 第二次实验 实验名称:基于DSP 系统的实验——指示灯、拨码开关和定时器院(系):自动化专业:自动化 姓名:学号: 实验室:实验组别: 同组人员:实验时间:2012 年 4 月 18日 评定成绩:审阅教师: 第一部分实验:基于DSP 系统的实验——指示灯和拨码开关 一.实验目的 1. 了解ICETEK –F28335-A 评估板在TMS320F28335DSP 外部扩展存储空间上的扩展。 2. 了解ICETEK –F28335-A 评估板上指示灯和拨码开关扩展原理。 3. 学习在C 语言中使用扩展的控制寄存器的方法。 二.实验设备 计算机,ICETEK –F28335-A 实验箱(或ICETEK 仿真器+ICETEK–F28335-A 评估板+相关连线及电源)。 三.实验原理

1.TMS320F28335DSP 的存储器扩展接口 存储器扩展接口是DSP 扩展片外资源的主要接口,它提供了一组控制信号和地址、数据线,可以扩展各类存储器和存储器、寄存器映射的外设。 -ICETEK –F28335-A 评估板在扩展接口上除了扩展了片外SRAM 外,还扩展了指示灯、DIP 开关和D/A 设备。具体扩展地址如下: 0x180004- 0x180005:D/A 转换控制寄存器 0x180001:板上DIP 开关控制寄存器 0x180000:板上指示灯控制寄存器 -与ICETEK –F28335-A 评估板连接的ICETEK-CTR 显示控制模块也使用扩展空间控制主要设备: 208000-208004h :读-键盘扫描值,写-液晶控制寄存器 208002-208002h :液晶辅助控制寄存器 208003-208004h :液晶显示数据寄存器 2.指示灯与拨码开关扩展原理

DSP实验报告

实验报告 课程名称: 微机原理及其应用 指导老师: 徐习东 成绩: 实验名称: 实验一二三综合实验报告 实验类型: 同组学生姓名: 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 1、 了解DSP 的基本原理和实验过程。完成实验一、二、三。完成4段程序的运行过程。 2、 了解DSP 的编程方法,学习TI 资源文件的使用方法, 3、 认识中断、GPIO 、定时器等的编程使用方法。 二、实验内容和原理 实验一 LED 绿灯的控制: 共阳极发光二极管原理图如下 图1 发光二极管原理图 通过GPIO 控制发光二极管DS20~DS25的亮灭。当GPIOFx=0时,对应的发光二极管被点亮。 GPIO 端口: GPIOF13~GPIOF8 实验二

实验名称:DSP实验综合报告姓名:学号: 装订线 利用CPU定时器和中断实现点亮了4盏规定的绿灯,同时控制灯分别以1s,100ms,10ms,1ms为周期交替亮灭。 通过设置CPU定时器,使1ms产生1个中断输出,再通过循环计数控制当分别产生1ms、10ms、100ms、1s的时间间隔进入中断,控制相应LED亮灭。 实验三 分别用两种TI资源的方法编程,实现控制绿灯和红灯的要求。方法一是仅仅使用TI规定的变量编程,方法二是使用TI资源的内置文件,初始化文件和.c文件等中的自带函数。 把6盏绿灯及16盏红灯有规律地控制点亮。 红灯的控制: LED接口如图: 1、一端接电源高电平红灯的控制: 2、一端接锁存器的输出; 3、由两个锁存器控制16盏灯;

DSP实验报告

姓名:班级:自动化15学号:2015 实验一数据存储实验 一实验目的 1.掌握TMS320F2812程序空间的分配; 2.掌握TMS320F2812数据空间的分配; 3.能够熟练运用TMS320F2812数据空间的指令。 二实验步骤与内容 实验步骤 1.在进行DSP实验之前,需先连接好仿真器、实验箱及计算机,连接方法 如下所示: 2.F2812CPU板的JUMP1的1和2脚短接,拨码开关SW1的第二位置ON; 其余OFF 3.E300底板的开关SW4的第2位置ON,其余位置OFF。其余开关设置为 OFF。 4.上电复位 在硬件安装完成后,确认安装正确、各实验部件及电源连接无误后,启动计算机,接通仿真器电源,此时,仿真器上的指示灯应点亮,否则DSP开发系统与计算机连接存在问题。 5.运行CCS程序 1)待计算机启动成功后,实验箱220V电源置“ON”,实验箱上电 2)启动CCS5.5,工作环境的路径选择:E:\E300Program\E300 TechV-2812\normal ; 6.成功运行CCS5.5程序后,出现如下图所示界面:

7.右键点击Project Explorer窗口下的工程文件“e300_01_mem”,选择 “Open Project”命令打开该工程,如下图所示,可以双击才看左侧源文件; 8.点击菜单栏Project/Build All命令编译整个工程,编译完成后点击 按钮进入仿真模式,完全进入后如下图所示:

9.用“View”下拉菜单中的“Memory/Browser”查看内存单元,参数设置 如下图:注意:下面的参数设置都是以16进制。 此时可以观测到以0x003F9020为起始地址的存储单元内的数据; 10.单击按钮,开始运行程序,一段时间后,单击按钮,停止程序运 行,0x003F9020H~ 0x3F902FH单元的数据的变化,如下图所示: 11.关闭Memory Browser窗口,点击按钮,退出仿真模式。右键点击 Project Explorer窗口下的工程文件“e300_01_mem”,选择Close Project命令关闭该工程,然后关闭CCS软件,本实验完毕。 内容

DSP实验报告5

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 all x=[2,3,4,5,6];N=8; x=[x,zeros(1,N-length(x))];nx=0:N-1 y=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 ()(())() (),11 N N x n y n x n R n x 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实验报告

DSP实验报告 实验三:快速傅里叶变换及其应用

【一】 观察高斯序列的时域和幅频特性,固定信号Xa(n)中参数p = 8,改变q的值,使p分别等于2、4、8,观察他们的时域和幅频特性,了解当q取不同的值是,对信号序列的时域和幅频特性的影响;固定q = 8,改变p,使p分别等于8、13、14,观察参数p变化对信号序列的时域和幅频特性的影响,注意p等于多少是,会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。 1、P = 8,q = 2、4、8的高斯序列的时域及幅频特性为 程序代码:>> n = 0:15; p1 = 8; p2 = 13; p3 = 14; q1 = 2;

q2 = 4; q3 = 8; x1 = exp(-(n-p1).*(n-p1)/q1); x2 = exp(-(n-p1).*(n-p1)/q2); x3 = exp(-(n-p1).*(n-p1)/q3); x1w = fft(x1); x2w = fft(x2); x3w = fft(x3); subplot(3,2,1); stem(x1); subplot(3,2,2); stem(abs(x1w)); subplot(3,2,3); stem(x2); subplot(3,2,4); stem(abs(x2w)); subplot(3,2,5); stem(x3); subplot(3,2,6); stem(abs(x3w)); 结果分析:当P不变时,随着Q的增大,信号时域波形变化变缓,波形变“胖”,信号频域低频分量增加,泄漏减小。

DSP实验报告

姓名:班级:自动化15 学号:2015 实验一数据存储实验 一实验目的 1.掌握TMS320F2812程序空间的分配; 2.掌握TMS320F2812数据空间的分配; 3.能够熟练运用TMS320F2812数据空间的指令。 二实验步骤与内容 实验步骤 1.在进行DSP实验之前,需先连接好仿真器、实验箱及计算机,连接方法 如下所示: 2.F2812CPU板的JUMP1的1和2脚短接,拨码开关SW1的第二位置ON; 其余OFF 3.E300底板的开关SW4的第2位置ON,其余位置OFF。其余开关设置为 OFF。 4.上电复位 在硬件安装完成后,确认安装正确、各实验部件及电源连接无误后,启动计算机,接通仿真器电源,此时,仿真器上的指示灯应点亮,否则DSP开发系统与计算机连接存在问题。 5.运行CCS程序 1)待计算机启动成功后,实验箱220V电源置“ON”,实验箱上电

2)启动CCS5.5,工作环境的路径选择:E:\E300Program\E300 TechV-2812\normal ; 6.成功运行CCS5.5程序后,出现如下图所示界面: 7.右键点击Project Explorer窗口下的工程文件“e300_01_mem”,选择 “Open Project”命令打开该工程,如下图所示,可以双击才看左侧源文件; 8.点击菜单栏Project/Build All命令编译整个工程,编译完成后点击 按钮进入仿真模式,完全进入后如下图所示:

9.用“View”下拉菜单中的“Memory/Browser”查看内存单元,参数设置 如下图:注意:下面的参数设置都是以16进制。 此时可以观测到以0x003F9020为起始地址的存储单元内的数据; 10.单击按钮,开始运行程序,一段时间后,单击按钮,停止程序运 行,0x003F9020H~ 0x3F902FH单元的数据的变化,如下图所示: 11.关闭Memory Browser窗口,点击按钮,退出仿真模式。右键点击 Project Explorer窗口下的工程文件“e300_01_mem”,选择Close Project命令关闭该工程,然后关闭CCS软件,本实验完毕。 内容

DSP实验报告

实验报告 课程名称DSP原理与应用 实验项目DSP软件开发工具CCS的使用 指导教师沈冰夏王勇潘建军 学院信息与通信工程 专业电子信息工程 班级/学号 学生姓名 实验日期 2014.11.19 成绩

一、实验目的 1.掌握CCS的软件仿真和硬件仿真7两种仿真模式。 2.掌握CCS软件开发工具的设置。 3.掌握CCS工程的创建和管理,程序编辑、编译、链接、加载、运行、调试的软件开发步 骤。 4.熟悉CCS调试工具和分析工具的使用。 二、实验仪器及工具 PC机、TI 的软件开发工具CCStudio v3.3;ICETEK-VC5509教学实验箱。 三、实验内容 https://www.wendangku.net/doc/5c6241477.html,S软件仿真模式下库和可执行程序的开发步骤。 https://www.wendangku.net/doc/5c6241477.html,S软件仿真模式下调试工具和分析工具的使用。 https://www.wendangku.net/doc/5c6241477.html,S硬件仿真模式程序的调试及VC5509A片内外存储器的查看。 四、实验步骤 (一)、CCS软件仿真模式下库和可执行程序的开发步骤 1.点击桌面“Setup CCStudio v3.3”图标,按C:\VC5509AE\DOCS\ICETEK-VC5509-A指导书 3.3-v3.pdf 给出的步骤设置CCS为软件仿真模式,例如“C55xx Rev3.0 CPU Functional Simulator”,保存并退出,鼠标点击“CCStudio v3.3”图标打开CCS集成开发环境。2.找到CCS的安装目录(默认安装在C:\CCStudio_v3.3\目录下),在 C:\CCStudio_v3.3\MyProjects\目录下新建文件夹,可取名为myapplication。把 C:\CCStudio_v3.3\tutorial\sim55xx\maxminmath\目录下所有.c和.cmd文件拷贝到这个新建文件夹中。 3.选择菜单Project→New,新建库工程.pjt,可取名为maxminlibrary.pjt,注意新建工程时 Project类型选择“Library(.lib)”,添加averagevalue.c、maximumvalue.c和minimumvalue.c 三个C源代码文件到工程,阅读三个文件,理解代码的含义。选择菜单Project→Build Option,选择“Archiver(归档器)”选项卡,查看归档器选项。选择菜单Project→Rebuild all,或单击工具栏上的“Rebuild All”按钮,编译生成.lib。 4.再新建一可执行工程.pjt,可取名为mainapplication.pjt,注意Project类型选择 Executable(.out),分别添加main 函数文件testapp. c、链接器命令文件 mainapplication.cmd、运行支持库rts55.lib(位于c:ti\c5500\cgtools\lib\目录下)、库文件maxminlibrary.lib(..\debug\目录下),理解testapp.c代码的含义。选择菜单Project→Build Option,选择编译器(Compile)选项卡,“Category:”列表下点击Assembly, 选中“Keep generated .asm Files(-k)”复选框,观察上面编译选项的变化;选择链接器(Linker)选项

相关文档