数字信号处理实验指导书newWord文件下载.docx
《数字信号处理实验指导书newWord文件下载.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验指导书newWord文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
![数字信号处理实验指导书newWord文件下载.docx](https://file1.bdocx.com/fileroot1/2022-11/30/c55fdba3-42d3-4c2b-a4e6-b7a18c18e9c6/c55fdba3-42d3-4c2b-a4e6-b7a18c18e9c61.gif)
四.实验步骤
1.实验准备:
-设置软件仿真模式,-启动CCS。
2.打开工程,浏览程序,工程目录为C:
\ICETEK-VC5509-EDULab\Lab0503-FFT\FFT.pjt。
3.编译并下载程序。
4.打开观察窗口:
选择菜单View->
Graph->
Time/Frequency…进行如下图所示设置。
5.清除显示:
在以上打开的窗口中单击鼠标右键,选择弹出式菜单中“ClearDisplay”功能。
6.设置断点:
在程序FFT.c中有注释“breakpoint”的语句上设置软件断点。
7.运行并观察结果。
⑴选择“Debug”菜单的“Animate”项,或按F12键运行程序。
⑵观察“TestWave”窗口中时域图形;
⑶在“TestWave”窗口中点击右键,选择属性,更改图形显示为FFT。
观察频域图形。
⑷观察“FFT”窗口中的由CCS计算出的正弦波的FFT。
8.退出CCS。
通过观察频域和时域图,
通过观察频域和时域图,程序计算出了测试波形的功率谱,与CCS计算的FFT结果相近
五预习内容
(1)快速傅立叶变换中基2FFT算法
(2)C语言编程
六实验报告内容
(1).目的,仪器,原理和内容.
(2).程序清单,重要说明.如:
重要的指令功能,重要的程序段功能.
(3)实验结果和数据
(4)实验心得及有意义的建议
七.问题与思考
当输入信号频率(改变C语言源程序)发生改变,观察频域和时域图变化。
实验二卷积算法
1.掌握卷积算法的原理和计算方法。
2.熟悉卷积算法特性。
3.学习卷积算法的程序实现。
1.卷积算法基础理论:
卷积的基本原理和公式:
卷积和:
对离散系统“卷积和”也是求线性时不变系统输出响应(零状态响应)的主要方法。
卷积和的运算在图形表示上可分为四步:
①翻褶:
先在亚变量坐标M上作出x(m)和h(m),将m=0的垂直轴转为轴翻褶成h(-m)。
②移位:
将h(-m)移位n,即得h(n-m)。
当n为正整数时,右移n位。
当n为负整数时,左移n位。
③相乘:
再将h(n-m)和x(m)的相同m值的对应点值相乘。
④相加:
把以上所有对应点的乘积叠加起来,即得y(n)值。
依上法,取n=…,-2,-1,0,1,2,3,…各值,即可得全部y(n)值。
2.源程序及注释:
程序的自编函数及其功能:
1processing1(int*input2,int*output2):
intput2、output2为两个整型指针数组。
返回了一个“TRUE”,让主函数的while循环保持连续。
对输入的input2buffer波形进行截取m点,再以零点的Y轴为对称轴进行翻褶,把生成的波形上的各点的值存入以OUTPUT2指针开始的一段地址空间中。
2processing2(int*output2,int*output3):
output2、output3为两个整型指针数组。
返回了一个“TREN”,让主函数的while循环保持连续。
对输出的output2buffer波形进行作n点移位,然后把生成的波形上的各点的值存入以OUTPUT3指针开始的一段地址空间中。
3processing3(int*input1,int*output2,int*output4):
output2、output4、input1为三个整型指针数组。
返回了一个“TRUE”,让主函数的while循环保持连续。
对输入的input2buffer波形和输入的input1buffer作卷积和运算,然后把生成的波形上的各点的值存入以OUTPUT4指针开始的一段地址空间中。
4processing4(int*input2,int*output1):
output1、input2为两个整型指针数组。
:
对输入的input2buffer波形截取m点,然后把生成的波形上的各点的值存入以OUTPUT1指针开始的一段地址空间中。
实验程序流程图:
2.打开工程,浏览程序工程目录C:
\ICETEK-VC5509-EDULab\Lab0504-Convolve\Convolve.pjt。
4.设置输入数据文件:
请在volume.c程序中有注释“breakpoint”的两行上设置probepoint和breakpoint:
设置方法是把光标指示到这一行上,按鼠标右键,从显示的菜单上分别选择probepoint和breakpoint。
5.打开观察窗口:
-选择菜单View->
Time/Frequency…进行如下设置:
在弹出的图形窗口中单击鼠标右键,选择“ClearDisplay”。
6.设置波形输入文件,请按照如下设置:
选择菜单File->
FileI/O…,打开“FileI/O”窗口;
单击“AddFile”按钮,在“FileInput”窗口中选择工程目录下的sine11.dat文件,单击“打开”按钮;
在“Address”项中输入inp1_buffer,在“Length”项中输入64,在“WarpAround”项前加上选择标记,单击“AddProbePoint”按钮;
在“Break/ProfilePoints”窗口中单击“ProbePoint”列表中的“Convolve.cline52
NoConnection”,再单击“Connect”项尾部的展开按钮,在显示的展开式列表中选择列表末尾的“FILEIN:
D:
\..\SIN11.DAT”,单击“Replace”按钮,单击“确定”按钮。
在“FileI/O”窗口中单击“确定”,完成设置。
选择“File”菜单中的“FileI/O…”,打开“FileI/O”窗口;
单击“AddFile”按钮,在“FileInput”窗口中选择工程目录下的sine11.dat文件,单击“打开”按钮;
在“Address”项中输入inp2_buffer,在“Length”项中输入64,在“WarpAround”项前加上选择标记,单击“AddProbePoint”按钮;
在“Break/ProfilePoints”窗口中单击“ProbePoint”列表中的“Convolve.cline53NoConnection”,再单击“Connect”项尾部的展开按钮,在显示的展开式列表中选择列表末尾的“FILEIN:
7.运行程序,观察结果:
-按F5键运行程序,待程序停留在“Dis-Assembly”窗口中的“abort”标号处时程序运行结束;
观察刚才打开的三个图形窗口,其中显示的是输入和输出的时域波形;
8.输入波形文件改成其他波形,如:
sin22.dat等,观察运行结果。
在修改输入波形文件时须首先将原文件删除;
在重新运行程序时,先选择菜单“Debug”的“ResetCPU”、“Restart”、
“GoMain”,再选择“Debug”中“Run”或按一下F5即可。
当输入波形均为sin11.dat时,得到的卷积时域图为:
(1)数字信号处理中线性时不变系统输入与输出之间的关系
(2)C语言编程
七.问题与思考
当两路输入信号改变时注意观察输出信号变化。
实验三采样定理
1.熟悉A/D转换的基本过程和程序处理过程。
2.熟悉FFT的应用。
3.掌握抽样定理的内容和其在实际中的运用。
计算机,ICETEK-VC5509-EDU实验箱(或ICETEK仿真器+ICETEK-VC5509-A系统板+相关连线及电源)。
示波器。
1.采样定理:
在应用DSP进行信号处理过程中,经常需要对信号进行采集,而采集工作一般通过AD转换器件完成,AD器件在工作时不可能取得连续的值,只能间隔一段时间进行一次转换,得到转换结果后再进行下一次转换。
这样,对连续变换的信号只能在离散时间点上进行取样,这也叫抽样过程。
抽样是在离散时间间隔对连续时间信号(例如模拟信号)的采集,它是实时信号处理中的基本概念。
模拟信号由一些离散时间的值来代表,这些抽样的值等于原始的模拟信号在离散时间点的取值。
DSP器件只能通过抽样的方法得到离散的信号,我们如何对信号进行采样才能获得原有信号所具备所有频率特征,这是采样定理所涉及的问题。
采样定理规定对模拟信号应该以多大的速率抽样,以保证能够捕捉到包含在信号中的相关信息或者经过抽样后能够保留相关的信息。
抽样定理:
如果信号的最高频率分量是fmax,为了使抽样值能够完整地描述信号,那么至
少应该以2fmax的速率进行抽样。
即sF≥2fmax,其中sF是抽样频率或抽样率。
因此,如果模拟信号中的最大频率分量为4kHz,那么,为了保留或捕捉信号中的所有信息,应该以8kHz或者更高的抽样率进行抽样。
小于抽样定理规定的抽样率进行抽样将导致频谱折叠,或者相频混叠进入到希望的频带内,以至于我们在把抽样的数据转回到模拟信号时不能恢复出原始信号。
信号有很多能量常常在感兴趣的最高频率之外或者包含噪声,信号的能量在很宽的频率范围内是不变的。
例如,在电话中感兴趣的最高频率是大约3.4kHz,而语音信号可能超过10kHz。
因此,如果我们没有将感兴趣的带宽之外的信号和噪声移去,那么将违反抽样定理。
在实际应用中,让信号通过一个模拟抗混叠滤波器,可以达到移去感兴趣频带之外信号的目的。
2.AD原理:
略。
3.快速傅立叶变换应用:
通过FFT计算,我们能直观地分析信号的频率特征,了解信号中的主要频率分量的频点。
4.分析及程序设计:
程序流程图:
⑴连接实验设备:
⑵准备信号源进行AD输入。
①取出1根实验箱附带的信号线(如右图,两端均为单声道语音插头)。
②用信号线连接实验箱底板上信号源I模块(下图中单实线框中部分)的“波形输出”插座
(下图中的3)和“A/D输入”模块(下图中虚线框中部分)的“ADCIN2”插座(下图中的A),注意插头要插牢、到底。
这样,信号源I的输出波形即可送到ICETEK-VC5509-A板的AD输入通道0。
③设置信号源I:
调整拨动开关“频率选择”(下图中的5)拨到“1KHz-10KHz”档(下图中的9)。
将“频率微调”(下图中的6)逆时针调到头(最小)。
调整拨动开关“波形选择”(下图中的7)拨到“正弦波”档(下图中的11)。
将“幅值微调”(下图中的8)顺时针调到头(最大)。
④将信号源I的电源开关(下图中的2)拨到“开”的位置。
2.设置CodeComposerStudio2.21在硬件仿真(Emulator)方式下运行。
3.启动CodeComposerStudio2.21。
选择菜单Debug→ResetCPU。
6
4.打开工程文件:
工程目录为:
C:
\ICETEK-VC5509-EDULab\Lab0506-Nyquist\AD.pjt。
5.编译、下载程序,选择菜单Debug->
GoMain,使程序运行到main函数入口位置。
6.设置软件断点和观察窗口:
-打开源程序main.c,在有注释“breakpoint”的行上加软件断点。
7.运行程序,测算AD采样频率:
按“F5”键运行,用示波器测试采样频率:
示波器探头可以连接到“测试点”(下图中的4),调节示波器旋钮,测出频率,这一频率是AD采样频率的1/2,现假设测得的频率为10182.4Hz,那么AD的采样频率为20364.8Hz。
选择菜单Debug->
Halt,停止程序运行。
将示波器探头改到测试信号源I的输出,可以连接到“测试点”模块的“ADCIN2”上。
8.打开观察窗口观察波形的频域统计结果
-注意在打开窗口中的横轴单位实际上应该是kHz。
-在main.c程序中有注释“breakpoint”的语句上加注软件断点。
9.运行程序观察显示:
-按“F12”运行程序,观察两个窗口中的显示。
-观察示波器的频率统计,对照“FFT”窗口的尖峰指示(可以用鼠标将光标移动到尖峰位置,再从状态条读出频率值,如图),看是否相近。
-顺时针微调信号源I的“频率微调”旋钮,使频率增大,观察到“FFT”尖峰向频率高端(右侧)移动。
对照频率测量值和FFT计算值。
10.观察混叠现象:
-将信号源I“频率微调”旋钮逆时针调到头;
“频率选择”旋钮切换到“10kHz-100kHz”档。
--顺时针微调信号源I的“频率微调”旋钮,使频率增大,对照频率测量值和FFT计算值。
11.选择菜单File→workspace→saveworkspacsAs…,输入文件名SY.wks。
12.退出CCS:
在实验步骤9以前,“FFT”窗口峰值频率随频率值的微调增大,但到了步骤10中,到达某个频率后,“FFT”窗口峰值频率不随频率值的微调增大,反而有减小(向左移动)的现象,这就是信号频率超越了奈奎斯特(Nyquist)频率(也就是采样频率的1/2)后发生的频率混叠现象,这时“FFT”窗口的频率计算值已经无法正确得到实际信号的频率值。
(1)数字信号处理中模拟信号数字处理方法
(2)A/D转换原理
为何在固定的采样频率20364.8Hz所能测量的信号最高频率不能高于10182.4Hz?
要测量高频率在10182.4Hz的信号,必须保证采样频率大于Nyquist频率=2*10182.4Hz才能得到不失真的结果?
实验四 FIR滤波器的信号滤波
1.掌握A/D转换的基本过程和程序处理过程;
2.学习通过对采样值进行计算产生混频波形;
3.熟悉FIR滤波器及其参数的调整。
1.AD原理:
2.模数转换工作过程:
-模数转换模块接到启动转换信号后,按照设置进行相应通道的数据采样转换。
-经过一个采样时间的延迟后,将采样结果放入AD数据寄存器中保存。
-等待下一个启动信号。
3.模数转换的程序控制:
模数转换相对于计算机来说是一个较为缓慢的过程。
一般采用中断方式启动转换或保存结果,这样在CPU忙于其他工作时可以少占用处理时间。
设计转换程序应首先考虑处理过程如何与模数转换的时间相匹配,根据实际需要选择适当的触发转换的手段,也要能及时地保存结果。
由于TMS320VC5509DSP片内的A/D转换精度是10位的,转换结果(16位)的最高位(第15位)表示转换值是否有效(0有效),第14-12位表示转换的通道号,低10位为转换数值,所以在保留时应注意取出结果的低10位,再根据高4位进行相应保存。
4.混频波形产生:
将接收到的两路AD采集信号进行相加,并对结果的幅度进行限制,从而产生混合后的输出波形。
实验中采用了同相位混频方法,也可修改程序完成异相混频法。
5.FIR滤波器工作原理及参数计算:
滤波器参数:
采样频率20364.8Hz,带通滤波500Hz-5kHz,增益40dB,阶数64。
6.源程序及注释:
本实验程序在主循环中对AD进行连续采样,每次采样首先设置AD转换控制寄存器
(ADCCTL),发送转换通道号和启动命令,然后循环等待转换结果,最后将结果保存。
由于需要进行实时混频,所以交替转换通道0和通道1(ICETEK-VC5509-EDU实验箱上ADCIN2和ADCIN3)。
混频的波形通过FIR滤波器,得到输出波形。
由于采用了带通滤波,输入频率在500Hz-5kHz之间的才能通过滤波器。
①取出2根实验箱附带的信号线(如右图,两端均为单声道语音插头)。
②用1根信号线连接实验箱底板上信号源I模块(下图中单实线框中部分)的“波形输出”插座(下图中的3或4)和“A/D输入”模块(下图中虚线框中部分)的“ADCIN2”插座(下图中的A),注意插头要插牢、到底。
这样,信号源I的输出波形即可送到ICETEK-VC5509-A板的AD输入通道0。
③用1根信号线连接实验箱底板上信号源II模块下图中双实线框中部分)的“波形输出”插座(下图中的c或d)和“A/D输入”模块的“ADCIN3”插座(下图中的B),注意插头要插牢、到底。
这样,信号源II的输出波形即可送到ICETEK-VC5509-A板的AD输入通道
④设置信号源I:
-调整拨动开关“频率选择”(上图中的5)拨到“100Hz-1KHz”档(上图中的10)。
-将“频率微调”(上图中的6)顺时针调到头(最大)。
-调整拨动开关“波形选择”(上图中的7)拨到“正弦波”档(上图中的11)。
-将“幅值微调”(上图中的8)顺时针调到头(最大)。
⑤设置信号源II:
-调整拨动开关“频率选择”(上图中的e)拨到“10Hz-100Hz”档(上图中的i)。
-将“频率微调”(上图中的f)顺时针调到头(最大)。
-调整拨动开关“波形选择”(上图中的g)拨到“正弦波”档(上图中的k)。
-将“幅值微调”(上图中的h)顺时针调到头(最大)。
5将两个信号源的电源开关(上图中的2和b)拨到“开”的位置。
ResetCPU。
工程目录:
\ICETEK-VC5509-EDULab\Lab0507-MixerFIR\AD.pjt。
-打开源程序main.c,在有注释“在此加软件断点”的行上加软件断点。
7.运行程序观察结果:
按“F5”键运行到断点,注意观察窗口“AD0”和“AD1”中的输入波形,同时分析“Mixing”窗口中混频合成的波形与输入波形的关系。
8.观察动态效果:
Animate,运行程序,同时改变信号源输入的波形、频率参数,观察动态效果。
9.调节信号源输出,观察滤波器输出:
-将信号源I的“频率选择”旋钮调节到“100Hz-1kHz”档,调节“频率微调”旋钮到最大,这时,信号源I的输出波形保持1kHz左右的频率。
-将信号源II的“频率选择”旋钮调节到“10Hz-100Hz”档,调节“频率微调”旋钮到最大,这时,信号源I的输出波形保持100Hz左右的频率。
-观察“Mixing”窗口中的混叠波形,再观察“Output”窗口中的输出。
输出的波形与“AD0”窗口中波形的频率相同,而滤除了“AD1”窗口的波形。
-将信号源II的“频率选择”