实验一 卷积(Convolve)算法实验
1.1 实验目的
1. 掌握卷积算法的原理;
2. 掌握在CCS环境下,TMS320程序编写、编译和调试程序的方法。
1.2 实验设备
计算机,CCS(C5000)软件,实验箱(A/D转换单元,CPU2-5416),DSP仿真器
1.3 实验步骤 1.3.1 实验预习准备
1. 复习离散卷积和的基本原理;
2. 根据预习报告要求设计离散卷积和子程序;填写实验报告。
实验硬件
1)开关K9拨择连接右边的CPU2:TMS320VC52)“A/D转换
单元”的拨码开关设置:
JP3拨码开关(位于实验箱“A/D转换单元”内):
SW2拨码开关(位于实验箱“CPLD下载借口”右侧): S23拨码开关(位于实验箱“模拟信号源”内):
4)检查:计算机、DSP仿真器、实验箱是否正确连接。如果连接正确,系统上电。
1.3.3 实验步骤
1)启动CCS 2.0 ('C5000),Project/Open打开“processing”目录中“exp01_cpu2”子目录下“Exp-CONV-AD.pjt”工程文件;双击“Exp-CONV-AD.pjt” 及“Source”可查看各源程序;
2)根据预习报告完成Source中程序相关内容,编译、汇编、连接,从工作界面底部的“Output(输出)”窗口观察编译信息,并根据提示修改程序,直到没有错误、警告发生; 建立Convolve.h和Convolveok.c
分别定义用到的声明和实现卷积算法; Convolve.h格式如下:
Convolveok.c的部分内容如下:
3)加载刚构建的“Exp-CONV-AD.out”;在主程序中,在t++及flag = 0处分别设置断点(如图2.1);单击“Run”运行程序,程序将运行至第一个断点处停止;
图4.1
4)用View / Graph / Time/Frequency打开图形观察窗口;设置观察图形窗口变量及参数(如图4.2);采用双踪观察由程序产生的两路输入变量Input及Impulse的波形,波形长度为128,数值类型为32位浮点型;再打开一个图形观察窗口,以观察卷积结果波形;该观察窗口的参数设置为:变量为Output,长度为256,数据类型为32位浮点数(参数设置如图4.3);
图4.2
图4.3
5)调整观察窗口,观察两路输入波形和卷积结果波形(如图4.4);
图4.4
6)单击“Run”,程序运行至第二个断点处停止,调整图形观察窗口,该部分实验采用实验箱的模拟信号源产生的信号作为卷积的两个输入信号,观察卷积结果(如图4.5);
图4.5
7)单击“Animate”运行程序,或按F10运行程序;调整观察窗口,并观察卷积结果;改变输入信号的波形、频率、幅值,观察卷积结果并与理论结果对比,实验结束。
8)打开matlab,点击新建建立一个.m文件,并输入如下代码,观察图形,并在CCS(在一个端点之前改变Input及Impulse)及matlab中画出不同序列卷积结果。
k=16;
t=[0:1:128];
xa1=sin(2*pi*t/k); subplot(211) stem(t,xa1,'.') xlabel('n'); ylabel('幅度') title('sin(n)')
c=conv(xa1,xa1) m=length(c)-1; n=0:1:m; subplot(212) stem(n,c,'.'); xlabel('n'); ylabel('幅度')
title('sin(n)的自卷积')
1.4 思考题
在程序中设计任意两个序列,观察卷积结果;
4.5 实验报告要求
1)对比分析实验结果与理论计算的结果;
2)分析设计的卷积和程序是否适用于任意序列的卷积求和,说明理由;
4.6 预习报告要求
1)分析正弦、三角、方波离散序列两两卷积结果并画出图形;
2)根据离散序列卷积和公式及图4.6给定的程序流程图完成下面的求序列卷积和程序
图4.6 Convolveok.c程序流程图
实验一 快速傅里叶变换(FFT)及其应用
DFT(Discrete Fourier Transform)是数字信号处理中重要的数学工具之一。其实质是对有限长序列频谱的离散化,即通过DFT使时域有限长序列与频域有限长序列相对应,从而可以在频率域用计算机进行信号处理。DFT有多种快速算法(FFT,Fast Fourier Transform),可使信号处理速度提高,使数字信号的实时处理得以实现。因此,DFT既有重要的理论意义,又有广泛的应用价值。
离散傅里叶变换满足以下关系式:
N 1
knX(k) x(n)W N n 0 N 1
kn x(n) 1X(k)WN Nk 0
k 0,1,2, ,N 1
n 0,1,2, ,N 1
其中WN e
j
2
N
,N称为DFT变换区间长度。
kn
FFT算法应用了DFT运算的两个基本特点,即利用系数WN的对称性和周期性,利
用这些特性,即可以将DFT运算中的同类相合并,又可以将长度为N的序列的DFT逐次分解成长度变小的DFT。
对于基二算法,一般N为2的M次方,即
N 2M
进而可以按照时间抽取或频率抽取的方法完成M次碟形运算。
1.1 实验目的
1. 加深对DFT算法原理和基本性质的理解; 2. 熟悉FFT算法原理和FFT子程序的应用;
3. 学习用FFT对连续信号和时域信号进行谱分析的方法,了解可能出现的分析误
差及其原因,以便在实际中正确应用FFT。
1.2 实验设备
计算机,CCS 2.0(C5000) 版软件,实验箱(A/D转换单元,CPU2-5416),DSP仿真器
1.3 实验步骤 1.3.1 实验预习准备
学习研究FFT算法的数学原理,使用C语言编程实现。
实验硬件
1)开关K9拨择连接右边的CPU2:TMS320VC52)“A/D转换
单元”的拨码开关设置:
JP3拨码开关:
SW2拨码开关:
S23拨码开关:
3)实验板模拟信号源波形选择波段开关,选择
4)检查:计算机、DSP仿真器、实验箱是否正确连接。如果连接正确,系统上电。
1.3.2 实验步骤
1)启动CCS 2.0 ('C5000),Project/Open打开“Algorithm”目录中“exp01_cpu2”子目录下“exp01.pjt”工程文件;双击“exp01.pjt” 及“Source”可查看各源程序;
2)根据FFT原理及预习报告完成7822_54.c中kfft子程序相关内容,编译、汇编、
连接,从工作界面底部的“Output(输出)”窗口观察编译信息,并根据提示修改程序,直到没有错误、警告发生;
3)加载刚构建的“exp01.out”;在中断子程序中,flag=0处设置断点(如图1.1);单击“Run”运行程序,程序将运行至断点处停止;
图1.1
4) 用View / Graph / Time/Frequency打开一个图形观察窗口;设置该观察图形窗口变量及参数;采用双踪观察在启始地址分别为x和mo,长度为128的单元中数值的变化,数值类型为32位浮点数,设置内容如图1.2;这两段存储单元中分别存放的是经A/D转换后的输入信号和对该信号进行FFT变换的结果;
图1.2
图1.3
5)单击“Animate”运行程序,或按F10运行;调整模拟信号源的频率、幅值、种类观察窗口并观察输入信号波形及其FFT变换结果;单击“Halt”暂停程序运行,关闭窗口,本实验结束。
1.4 思考题
1)对于不同的N,幅频特性会相同吗?为什么?
2)如果采用按频率抽取的基二FFT算法,子程序应该怎么样设计? 3)FFT进行谱分析,可以应用的什么方面?
1.5 实验报告要求
1)简述实验原理及目的;
2)结合实验中所给定典型序列幅频特性曲线,与理论结果比较,并分析说明误差产生的原因以及用FFT作谱分析时有关参数的选择方法。 3)总结实验所得主要结论。
1.6 预习报告要求
1)复习基2FFT算法原理、旋转因子的变化规律,用C语言根据给定流程图完成按时间抽取基2kfft子程序,函数声明语句为:
void kfft(double pr[Length],double pi[Length],int n,int k,double fr[Length],double fi[Length],int l,int il);
fc 100KHZ的正弦、方波、三角波时,计算模拟信号的时间长度及其在N个采样点内
的周期数;分析其FFT频谱大致形状;
图1.4 Kfft子程序流程图
实验二 有限冲击响应滤波器(FIR)算法实验
2.1 实验目的
1. 掌握用窗函数法设计FIR数字滤波器的原理和方法; 2. 熟悉线性相位FIR数字滤波器特性; 3. 了解各种窗函数对滤波特性的影响。
2.2 实验设备
计算机,CCS 2.0(C5000) 版软件,实验箱(A/D转换单元,CPU2-5416),DSP仿真器
2.3 实验步骤 2.3.1 实验预习准备
1)复习有限冲击响应数字滤波器的基础理论及窗口设计发设计数字滤波器系数的确定方法;
2)根据预习报告要求设计数字滤波器;
2.3.2 实验硬件准备
1)开关K9拨到右边,即仿真器选择连接右边的CPU2:TMS320VC5416; 2)“A/D转换单元”的拨码开关设置:
JP3拨
SW2拨码开关:
DSP仿真器、实验箱是否正确连接。如果连接正确,系统上电。 4)S23拨码开关:
A)置拨码开关S23的1、2拨到OFF,用示波器分别观测模拟信号源单元的2号孔“信号源1”和“信号源2”输出的模拟信号,分别调节信号波形选择、信号频率、信号输出幅值等旋钮,直至满意。
低频正弦波信号:幅值5V,频率<20KHz; 高频正弦波信号:幅值2.5V,频率>70KHz;
B)置拨码开关S23的1到ON,两信号混频输出;可在2号孔“信号源1”点用示波器观察混叠信号。
2.3.3 实验步骤
1)启动CCS 2.0 ('C5000),Project/Open打开“Algorithm”目录中“Exp02_cpu2”子目录下“Exp-FIR-AD.pjt”工程文件;双击“Exp-FIR-AD.pjt” 及“Source”可查看各源程序;
2)根据预习报告完成Exp-FIR-AD.c中firdes子程序相关内容,编译、汇编、连接,从工作界面底部的“Output(输出)”窗口观察编译信息,并根据提示修改程序,直到没有错误、警告发生;
3)加载刚构建的“Exp-FIR-AD.out”;在主程序中,flag=0处设置断点(如图2.1);单击“Run”运行程序,程序将运行至断点处停止;
图2.1
4)用View / Graph / Time/Frequency打开一个图形观察窗口;设置观察图形窗口变量及参数为(如图3.2):采用双踪观察启始地址分别为x和y,长度为256的单元中数值的变化,数值类型为32位浮点型变量,这两个数组中分别存放的是经A/D转换后的输入混叠信号(输入信号)和对该信号进行FIR滤波的结果(如图2.3);
图2.2