数字信号处理实验报告
实验项目名称: A/D采样与D/A输出实验
实验日期: 2012年10月30日 实验成绩:
实验评定标准:
一、 实验目的:
l 熟悉CCS的开发环境;
l 熟悉SEED-DTK5416的硬件系统;
l 了解SEED-MMI的硬件系统;
l 熟悉CODEC芯片TLV320AIC23B作为A/D的原理;
l 了解同步串口MCBSP的基本原理;
l 掌握MCBSP的设置;
l 了解DAC811DE 工作方式;
l 了解D/A信号的产生过程。
二、 实验器材:
PC机一台
SEED-DTK DAD Lab5416 软件资料
TMAS320系列DSP实验箱 一台
实验箱串口线一根
三、 实验内容:
1. 将DSP仿真器与计算机连接好;
2. 将DSP仿真器的JTAG插头与SEED-DEC54xx单元的18相连接;
3. 打开程序,设置AD参数,设置结果显示参数。
四、 实验结果:
1、AD参数中,设置数据长度为128,采样频率为44000,AD转换起点为0,终点为100,则采样结果显示如下:
2、AD参数中,设置数据长度为512,采样频率为96000,AD转换起点为0,终点为256,则采样结果显示如下:
五、 实验结果分析:
通过实验,使得我通过对设定数据长度和采样频率而得到了不同的波形。而在实验的过程中,也使我更加熟悉了CCS的开发环境;熟悉了SEED-DTK5416的硬件系统;更加深刻的了解了SEED-MMI的硬件系统;熟悉和掌握了CODEC芯片TLV320AIC23B作为A/D的原理以及了解了同步串口MCBSP的基本原理;掌握了MCBSP的设置和DAC811DE 工作方式和D/A信号的产生过程。
第二篇:DSP实验报告
DSP课程设计实验报告
————利用DSP实现实时信号FIR滤波
学院:电子信息工程学院
专业:自动化(信号)1201
小组成员:12212150 洪恩杯
12212154 金夏垚
指导老师:高海林
一、 实验目的
掌握DSP集成开发环境CCS的使用和调试方法。掌握DSP片上资源和片外资源访问的基本方法。通过对DSP处理器及CODEC的编程,培养学生C语言编程能力。学会利用Matlab对信号进行FIR滤波,掌握Matlab的信号仿真方法。掌握利用DSP实现信号实时FIR滤波设计可使学生更加透彻的理解信号的采集方法和滤波方法。培养学生使用DSP硬件平台实现数字信号处理算法的能力。
二、 实验要求
基本部分
(1) 掌握利用Matlab的滤波器工具箱设计FIR滤波器的方法,并提取滤波器参数。
(2) 掌握Matlab的信号处理工具箱的使用,以及利用Matlab对信号进行滤波的方法。
(3) 在DMA中断服务程序中,编写数字滤波算法程序,或调用DSPLIB中的滤波函数,实现对信号的滤波。
(4) 在实验板的Line in输入端接入正弦信号,分左右声道分别采集,并分别滤波。
(5) 利用CCS信号分析工具分析信号的频谱成分,根据实际输入信号确定滤波器的参数。
发挥部分
(1)比较加不同窗和阶数时滤波器的滤波效果。
(2)测试所设计滤波器的幅频特性和相频特性,并与MATLIB下的设计结果进行比较。
三、 实验相关技术
1、DMA技术
直接内存存取(Direct Memory Access ,简称DMA)是数字信号处理器(DSP)中用于快速数据交换的重要技术,它具有独立于CPU的后台批量数据传输能力,能够满足实时图像处理中高速数据传输要求。允许在外部设备和存储器之间直接读写数据,既不通过CPU,也不需要CPU干预。整个数据传输操作在一个称为"DMA控制器"的控制下进行的。CPU除了在数据传输开始和结束时做一点处理外,在传输过程中CPU可以进行其他的工作。这样,在大部分时间里,CPU和输入输出都处于并行操作。因此,使整个计算机系统的效率大大提高。
实现DMA传送的基本操作如下:
1、外设可通过DMA控制器向CPU发出DMA请求;
2、CPU响应DMA请求,系统转变为DMA工作方式,并把总线控制权交给DMA控制器;
3、由DMA控制器发送存储器地址,并决定传送数据块的长度;
4、执行DMA传送;
5、DMA操作结束,并把总线控制权交还CPU。
2、FIR滤波技术
假设数字滤波器的频率响应函数H用下式表示:
幅频特性表示信号通过该滤波器后各频率成分振幅衰减情况,而相频特性反映各频率成分通过滤波器后在时间上的延时情况。一般选频滤波器的技术要求由幅频特性给出,其相频特性是确定的,所以在设计过程中,对相频特性一般不作要求。在低通滤波器的幅频特性中,Wp和Ws分别称为通带边界频率和阻带截止频率。从Wp到Ws称为过渡带,过渡带上的频响一半是单调下降的。
当冲击响应满足下列条件时,FIR滤波器具有对称结构,为线性相位滤波器:
这种对称性,可使得乘法器数量减半:对n价滤波器,当n为偶数时,乘法器的个数为n/2个;当n为奇数时,乘法器的个数为(n+1)/2个。在电路实现中,乘法器占用的逻辑单元数较多。乘法器的增加,意味着电路成本增加,另外对电路的工作速度也有影响。
在DSP的应用中,可以应用Matlab的滤波器设计工具箱fdatool工具箱生成需要的FIR滤波器,在生成C文件,提取出相应的滤波数据,应用CCS来调用这些数据,从而应用DSP产生信号的滤波效果,这样就实现了FIR的低通滤波效果。
3、利用DSP实现实时的FIR滤波
利用DSP实现对模拟信号的实时滤波流程图:
信号采集和滤波的流程图:
将DMA传输和DSP的算法FIR相结合,在DMA采集和传输的主程序中的存储器处理子程序中嵌入滤波算法,则可以实现利用DSP实现信号实时滤波。
四、 实验内容
(一)实验基本思路:
外部模拟信号先进行A/D转换,利用MCBSP的接收寄存器接收数据。利用CCS的频谱分析工具对输入信号进行频谱分析;根据频谱成分确定滤波器参数,然后利用Matlab设计FIR滤波器,并将参数提取出来。在DMA中断服务程序中调用DSPLIB中的FIR滤波函数,对信号进行滤波。滤波后的数据利用DMA方式送到D/A转换器转换为模拟信号。
本设计可以分为两部分:
(1) 信号仿真
(a) 首先利用Matlab的fdatool工具箱设计滤波器,在sptool工具箱进行信号分析与滤波。
(b) 利用CCS进行信号滤波算法的仿真,即利用simulator进行仿真。调用DSPLIB库中的fir()滤波函数实现信号FIR滤波,或自行编写FIR滤波程序实现信号FIR滤波。
(2) 利用Emulator在DSP实验板上采用DMA方式实现信号采集与传输。
(3) 在DSP实验板上,结合FIR滤波算法,实现信号的实时FIR滤波。
(二)实验过程
1、 利用Matlab的滤波器工具箱设计FIR滤波器,生成c文件,并提取相应的滤波数据。用MATLAB的fdatool滤波器工具箱设计低通滤波器:
得到的64个数据:
2、 MATLAB中的sptool工具箱对任意设置的信号进行分析:
设两个中心频率分别为2000Hz和5000Hz的正弦波相叠加,设计截止频率为3000Hz的低通滤波器进行滤波。
输入(叠加正弦波)信号的频域、时域波形分别如下所示:
经过截止频率为3000Hz的低通滤波之后的时域、频域波形分别为:
3、 利用ccsS新建工程、编译和运行调试
步骤如下所示:
4、 利用ccs图形观测工具观察
输入左声道频谱:
滤波后左声道频谱:
比较上面左声道滤波前后的频谱纵坐标数据,滤波前的最大纵坐标值(增益)为2.8e^5,滤波后纵坐标最大值(增益)为2899,即滤波后增益减小。
左(右)声道输入时域波形:
滤波后左声道时域波形
比较滤波前后的左声道的时域波形,可看出经过滤波后,信号变得平滑,且失真几乎没有。
5、 基于声卡的模拟示波器显示
滤波前:由于左声道低通滤波器的截止频率设置的是4000Hz,故当左声道(绿线)的频率设置为3000Hz的时候还处在滤波器的高通范围内,信号没有被滤掉,故还可以显示出来;右声道(红线)没有进行滤波,故改变频率其频谱基本上没什么变化。相应的频谱显示如下图所示:
滤波后:由于设计的低通滤波器的截止频率是4000Hz,所以当左声道信号(图中绿线)的频率为7000Hz时,大于了截止频率,处于阻带范围内,信号被滤掉,而右声道信号没有经过滤波处理,故其频谱没什么变化,只是频率变高后,高频部分的频谱将会稍微减弱。频谱变化如下图所示:
五、 实验感想
通过DSP的课程设计,将之前数字信号处理的内容进行实践,过去只是在matlab上通过软件进行信号的滤波处理,这次不仅需要软件仿真,还需要通过硬件进行处理滤波,我们从开始的什么都不会,到后来一点点查找资料,弄懂DSP处理的原理以及方法,在编程调试的过程中加深了对DSP的理解,因DSP独特的结构使他在数字信号处理方面有独特的优势,在以后的工作中会起到很大的作用。