1、四实验步骤1实验准备:-设置软件仿真模式,-启动 CCS。2打开工程,浏览程序,工程目录为 C:ICETEK-VC5509-EDULabLab0503-FFTFFT.pjt。3编译并下载程序。4打开观察窗口:选择菜单 View-Graph-Time/Frequency进行如下图所示设置。5清除显示:在以上打开的窗口中单击鼠标右键,选择弹出式菜单中“Clear Display”功能。6设置断点:在程序 FFT.c 中有注释“break point”的语句上设置软件断点。7运行并观察结果。选择“Debug”菜单的“Animate”项,或按 F12 键运行程序。观察“Test Wave”窗口中时域图
2、形;在“Test Wave”窗口中点击右键,选择属性,更改图形显示为 FFT。观察频域图形。观察“FFT”窗口中的由 CCS 计算出的正弦波的 FFT。8退出 CCS。通过观察频域和时域图, 通过观察频域和时域图,程序计算出了测试波形的功率谱,与 CCS 计算的 FFT 结果相近五 预习内容 (1)快速傅立叶变换中基2FFT算法 (2)C语言编程六 实验报告内容(1).目的,仪器,原理和内容.(2).程序清单,重要说明.如:重要的指令功能,重要的程序段功能.(3)实验结果和数据(4)实验心得及有意义的建议七.问题与思考当输入信号频率(改变C语言源程序)发生改变,观察频域和时域图变化。实验 二
3、卷积算法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,
4、-1,0,1,2,3,各值,即可得全部 y(n)值。2源程序及注释:程序的自编函数及其功能:1 processing1(int *input2, int *output2):intput2、output2 为两个整型指针数组。返回了一个“TRUE”,让主函数的while循环保持连续。对输入的input2 buffer波形进行截取m点,再以零点的Y轴为对称轴进行翻褶,把生成的波形上的各点的值存入以OUTPUT2指针开始的一段地址空间中。2 processing2(int *output2, int *output3):output2、output3 为两个整型指针数组。返回了一个“TREN”,让
5、主函数的while循环保持连续。对输出的output2 buffer 波形进行作n点移位,然后把生成的波形上的各点的值存入以 OUTPUT3 指针开始的一段地址空间中。3 processing3(int *input1,int *output2,int *output4):output2、output4、input1 为三个整型指针数组。返回了一个“TRUE”,让主函数的 while 循环保持连续。对输入的 input2 buffer 波形和输入的 input1 buffer 作卷积和运算,然后把生成的波形上的各点的值存入以 OUTPUT4 指针开始的一段地址空间中。4 processing4
6、(int *input2,int *output1):output1、input2 为两个整型指针数组。 :对输入的 input2 buffer 波形截取 m 点,然后把生成的 波形上的各点的值存 入以 OUTPUT1 指针开始的一段地址空间中。实验程序流程图:2打开工程,浏览程序工程目录 C:ICETEK-VC5509-EDULabLab0504-ConvolveConvolve.pjt。4设置输入数据文件:请在 volume.c 程序中有注释“break point”的两行上设置 probe point 和 break point:设置方法是把光标指示到这一行上,按鼠标右键,从显示的菜单上
7、分别选择 probe point 和break point。5打开观察窗口:-选择菜单 View-Time/Frequency进行如下设置:在弹出的图形窗口中单击鼠标右键,选择“Clear Display”。6设置波形输入文件,请按照如下设置:选择菜单 File-File I/O,打开“File I/O”窗口;单击“Add File”按钮,在“File Input” 窗口中选择工程目录下的 sine11.dat 文件,单击“打开”按钮;在“Address”项中输入 inp1_buffer,在“Length”项中输入 64,在“Warp Around”项前加上选择标记,单击“Add Probe
8、Point”按钮;在“Break/Profile Points”窗口中单击“Probe Point”列表中的“Convolve.c line52No Connection”,再单击“Connect”项尾部的展开按钮,在显示的展开式列表中选择列表末尾 的“FILE IN:D:.SIN11.DAT”,单击“Replace”按钮,单击“确定”按钮。在“File I/O”窗口中单击“确定”,完成设置。选择“File”菜单中的“File I/O”,打开“File I/O”窗口;单击“Add File”按钮,在“File Input”窗口中选择工程目录下的 sine11.dat 文件,单击“打开”按钮;在
9、“Address”项中输 入 inp2_buffer,在“Length”项中输入 64,在“Warp Around”项前加上选择标记,单击“Add Probe Point”按钮;在“Break/Profile Points”窗口中单击“Probe Point”列表中的“Convolve.c line53 No Connection”,再单击“Connect”项尾部的展开按钮,在显示的展开式列表中选择列表末尾 的“FILE IN:7运行程序,观察结果:-按 F5 键运行程序,待程序停留在“Dis-Assembly”窗口中的“abort”标号处时程序运行结 束;观察刚才打开的三个图形窗口,其中显示
10、的是输入和输出的时域波形;8输入波形文件改成其他波形,如:sin22.dat 等,观察运行结果。在修改输入波形文件时须 首先将原文件删除;在重新运行程序时,先选择菜单“Debug”的“Reset CPU”、“Restart”、“Go Main”,再选择“Debug”中“Run”或按一下 F5 即可。当输入波形均为 sin11.dat 时,得到的卷积时域图为:(1)数字信号处理中线性时不变系统输入与输出之间的关系(2)C语言编程七问题与思考 当两路输入信号改变时注意观察输出信号变化。实验 三 采样定理1熟悉 A/D 转换的基本过程和程序处理过程。2熟悉 FFT 的应用。3掌握抽样定理的内容和其在
11、实际中的运用。计算机,ICETEK-VC5509-EDU 实验箱(或 ICETEK 仿真器+ICETEK-VC5509-A 系统板+相 关连线及电源)。示波器。1采样定理:在应用 DSP 进行信号处理过程中,经常需要对信号进行采集,而采集工作一般通过 AD 转 换器件完成,AD 器件在工作时不可能取得连续的值,只能间隔一段时间进行一次转换,得到 转换结果后再进行下一次转换。这样,对连续变换的信号只能在离散时间点上进行取样,这也 叫抽样过程。 抽样是在离散时间间隔对连续时间信号(例如模拟信号)的采集,它是实时信号处理中的基本 概念。模拟信号由一些离散时间的值来代表,这些抽样的值等于原始的模拟信号
12、在离散时间点 的取值。DSP 器件只能通过抽样的方法得到离散的信号,我们如何对信号进行采样才能获得原有信 号所具备所有频率特征,这是采样定理所涉及的问题。采样定理规定对模拟信号应该以多大的 速率抽样,以保证能够捕捉到包含在信号中的相关信息或者经过抽样后能够保留相关的信息。 抽样定理:如果信号的最高频率分量是 f max ,为了使抽样值能够完整地描述信号,那么至少应该以 2 f max 的速率进行抽样。即 sF 2 f max ,其中 sF 是抽样频率或抽样率。 因此,如果模拟信号中的最大频率分量为 4kHz,那么,为了保留或捕捉信号中的所有信息, 应该以 8kHz 或者更高的抽样率进行抽样。小
13、于抽样定理规定的抽样率进行抽样将导致频谱折 叠,或者相频混叠进入到希望的频带内,以至于我们在把抽样的数据转回到模拟信号时不能恢 复出原始信号。信号有很多能量常常在感兴趣的最高频率之外或者包含噪声,信号的能量在很宽的频率范围 内是不变的。例如,在电话中感兴趣的最高频率是大约 3.4kHz,而语音信号可能超过 10kHz。 因此,如果我们没有将感兴趣的带宽之外的信号和噪声移去,那么将违反抽样定理。在实际应 用中,让信号通过一个模拟抗混叠滤波器,可以达到移去感兴趣频带之外信号的目的。2AD 原理:略。3快速傅立叶变换应用:通过 FFT 计算,我们能直观地分析信号的频率特征,了解信号中的主要频率分量的
14、频点。4分析及程序设计:程序流程图:连接实验设备:准备信号源进行 AD 输入。取出 1 根实验箱附带的信号线(如右图,两端均为单声道语音插头)。用信号线连接实验箱底板上信号源 I 模块(下图中单实线框中部分)的“波形输出”插座(下图中的 3 )和“A/D 输入”模块(下图中虚线框中部分)的“ADCIN2”插座(下图中的 A),注意插头要插牢、到底。这样,信号源 I 的输出波形即可送到 ICETEK-VC5509-A 板 的 AD 输入通道 0。设置信号源 I:调整拨动开关“频率选择”(下图中的 5)拨到“1KHz10KHz”档(下图中的 9)。将“频率微调”(下图中的 6)逆时针调到头(最小)
15、。调整拨动开关“波形选择”(下图中的 7)拨到“正弦波”档(下图中的 11)。将“幅值微调”(下图中的 8)顺时针调到头(最大)。将信号源 I 的电源开关(下图中的 2)拨到“开”的位置。2设置 Code Composer Studio 2.21 在硬件仿真(Emulator)方式下运行。3启动 Code Composer Studio 2.21。选择菜单 DebugReset CPU。64打开工程文件:工程目录为:C:ICETEK-VC5509-EDULabLab0506-NyquistAD.pjt。5编译、下载程序,选择菜单 Debug-Go Main,使程序运行到 main 函数入口位置
16、。6设置软件断点和观察窗口:-打开源程序 main.c,在有注释“break point”的行上加软件断点。7运行程序,测算 AD 采样频率: 按“F5”键运行,用示波器测试采样频率:示波器探头可以连接到“测试点”(下图中的 4 ),调节示波器旋钮,测出频率,这一频率是 AD 采样频率的 1/2,现假设 测得的频率为 10182.4Hz,那么 AD 的采样频率为 20364.8Hz。选择菜单 Debug-Halt,停止程序运行。将示波器探头改到测试信号源 I 的输出,可以连接到“测试点”模块的“ADCIN2”上。8打开观察窗口观察波形的频域统计结果-注意在打开窗口中的横轴单位实际上应该是 kH
17、z。-在 main.c 程序中有注释“break point”的语句上加注软件断点。9运行程序观察显示:-按“F12”运行程序,观察两个窗口中的显示。-观察示波器的频率统计,对照“FFT”窗口的尖峰指示(可以用鼠标将光标移动到尖峰位置, 再从状态条读出频率值,如图),看是否相近。-顺时针微调信号源 I 的“频率微调”旋钮,使频率增大,观察到“FFT”尖峰向频率高端(右 侧)移动。对照频率测量值和 FFT 计算值。10观察混叠现象:-将信号源 I“频率微调”旋钮逆时针调到头;“频率选择”旋钮切换到“10kHz-100kHz”档。-顺时针微调信号源 I 的“频率微调”旋钮,使频率增大,对照频率测量
18、值和 FFT 计算值。11选择菜单 Fileworkspacesave workspacs As,输入文件名 SY.wks 。12退出 CCS:在实验步骤 9 以前,“FFT”窗口峰值频率随频率值的微调增大,但到了步骤 10 中,到达某个频率后,“FFT”窗口峰值频率不随频率值的微调增大,反而有减小(向左移动)的现象,这就是信号频率超越了奈奎斯特(Nyquist)频率(也就是采样频率的 1/2)后发生的频率混叠现象,这时“FFT”窗口的频率计算值已经无法正确得到实际信号的频率值。(1)数字信号处理中模拟信号数字处理方法(2)A/D转换原理为何在固定的采样频率 20364.8Hz 所能测量的信号
19、最高频率不能高于 10182.4Hz?要测量高频率在 10182.4Hz 的信号,必须保证采样频率大于 Nyquist 频率=2*10182.4Hz 才能得到 不失真的结果?实验四 FIR 滤波器的信号滤波1掌握 A/D 转换的基本过程和程序处理过程;2学习通过对采样值进行计算产生混频波形;3熟悉 FIR 滤波器及其参数的调整。1AD 原理:2模数转换工作过程:-模数转换模块接到启动转换信号后,按照设置进行相应通道的数据采样转换。-经过一个采样时间的延迟后,将采样结果放入 AD 数据寄存器中保存。-等待下一个启动信号。3模数转换的程序控制: 模数转换相对于计算机来说是一个较为缓慢的过程。一般采
20、用中断方式启动转换或保存结 果,这样在 CPU 忙于其他工作时可以少占用处理时间。设计转换程序应首先考虑处理过程如 何与模数转换的时间相匹配,根据实际需要选择适当的触发转换的手段,也要能及时地保存结 果。由于 TMS320VC5509DSP 片内的 A/D 转换精度是 10 位的,转换结果(16 位)的最高位(第 15 位)表示转换值是否有效(0 有效),第 14-12 位表示转换的通道号,低 10 位为转换数值,所以 在保留时应注意取出结果的低 10 位,再根据高 4 位进行相应保存。4混频波形产生:将接收到的两路 AD 采集信号进行相加,并对结果的幅度进行限制,从而产生混合后的输出 波形。
21、实验中采用了同相位混频方法,也可修改程序完成异相混频法。5FIR 滤波器工作原理及参数计算:滤波器参数:采样频率 20364.8Hz,带通滤波 500Hz-5kHz,增益 40dB,阶数 64。6源程序及注释:本实验程序在主循环中对 AD 进行连续采样,每次采样首先设置 AD 转换控制寄存器(ADCCTL),发送转换通道号和启动命令,然后循环等待转换结果,最后将结果保存。由于需 要进行实时混频,所以交替转换通道 0 和通道 1(ICETEK-VC5509-EDU 实验箱上 ADCIN2 和 ADCIN3)。混频的波形通过 FIR 滤波器,得到输出波形。由于采用了带通滤波,输入频率在 500Hz
22、-5kHz 之间的才能通过滤波器。取出 2 根实验箱附带的信号线(如右图,两端均为单声道语音插头)。用 1 根信号线连接实验箱底板上信号源 I 模块(下图中单实线框中部分)的“波形输出” 插座(下图中的 3 或 4)和“A/D 输入”模块(下图中虚线框中部分)的“ADCIN2”插座(下图 中的 A),注意插头要插牢、到底。这样,信号源 I 的输出波形即可送到 ICETEK-VC5509-A 板的AD输入通道 0。用 1 根信号线连接实验箱底板上信号源 II 模块下图中双实线框中部分)的“波形输出” 插座(下图中的 c 或 d)和“A/D 输入”模块的“ADCIN3”插座(下图中的 B),注意插
23、头要 插牢、到底。这样,信号源 II 的输出波形即可送到 ICETEK-VC5509-A 板的 AD 输入通道设置信号源 I:-调整拨动开关“频率选择”(上图中的 5)拨到“100Hz1KHz”档(上图中的 10)。-将“频率微调”(上图中的 6)顺时针调到头(最大)。-调整拨动开关“波形选择”(上图中的 7)拨到“正弦波”档(上图中的 11)。-将“幅值微调”(上图中的 8)顺时针调到头(最大)。设置信号源 II:-调整拨动开关“频率选择”(上图中的 e)拨到“10Hz100Hz”档(上图中的 i)。-将“频率微调”(上图中的 f)顺时针调到头(最大)。-调整拨动开关“波形选择”(上图中的
24、g)拨到“正弦波”档(上图中的 k)。-将“幅值微调”(上图中的 h)顺时针调到头(最大)。5 将两个信号源的电源开关(上图中的 2 和 b)拨到“开”的位置。Reset CPU。工程目录:ICETEK-VC5509-EDULabLab0507-MixerFIRAD.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 的“频率选择”
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1