exp4算法.docx
- 文档编号:5444027
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:61
- 大小:4.93MB
exp4算法.docx
《exp4算法.docx》由会员分享,可在线阅读,更多相关《exp4算法.docx(61页珍藏版)》请在冰豆网上搜索。
exp4算法
第五章算法实验指导
实验一快速傅立叶变换(FFT)算法实验
一.实验目的
1.加深对DFT算法原理和基本性质的理解;
2.熟悉FFT算法原理和FFT子程序的应用;
3.学习用FFT对连续信号和时域信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。
二.实验设备
计算机,CCS2.0版软件,实验箱,DSP仿真器
三.基本原理
1.离散傅立叶变换DFT的定义:
将时域的采样变换成频域的周期性离散函数,频域的采样也可以变换成时域的周期性离散函数,这样的变换称为离散傅立叶变换,简称DFT。
2.FFT是DFT的一种快速算法,将DFT的N2步运算减少为(N/2)log2N步,极大的提高了运算的速度。
3.旋转因子的变化规律。
4.蝶形运算规律。
5.基2FFT算法。
四.实验步骤
1.复习DFT的定义、性质和用DFT作谱分析的有关内容;
2.复习FFT算法原理与编程思想,并对照DIT-FFT运算流程图和程序框图,了解本实验提供的FFT子程序;
3.阅读本实验所提供的样例子程序;
4.运行CCS软件,对样例程序进行跟踪,分析结果;记录必要的参数。
5.填写实验报告。
6.提供样例程序实验操作说明
A.实验前准备:
1)开关K9拨到右边,即仿真器选择连接右边的CPU:
CPU2;
2)“A/D转换单元”的拨码开关设置:
拨码开关设置:
JP3拨码开关:
码位
备注
1
ON:
将“模拟信号源”单元的信号输入到AD7822
2
OFF:
3
OFF:
4
OFF:
5
OFF:
6
OFF:
SW2拨码开关:
SW2
备注
1
2
3
4
码位
ON
ON
ON
ON
AD7822的采样时钟为250KHZ,且中断给CPU2的中断2
S23拨码开关:
码位
备注
1
ON,模拟信号源输出混频
4)检查:
计算机、DSP仿真器、实验箱是否正确连接。
正确完成计算机、DSP仿真器和实验箱的连接后,系统上电。
B.实验
1)启动CCS2.0,Project/Open打开“Algorithm”目录中“exp01_cpu2”子目录下“exp01.pjt”工程文件;双击“exp01.pjt”及“Source”可查看各源程序;加载“exp01.out”;在中断子程序中,flag=0处设置断点;单击“Run”运行程序,程序将运行至断点处停止;
2)用View/Graph/Time/Frequency打开一个图形观察窗口;设置该观察图形窗口变量及参数;采用双踪观察在启始地址分别为x和mo,长度为128的单元中数值的变化,数值类型为32位浮点数,这两段存储单元中分别存放的是经A/D转换后的输入信号和对该信号进行FFT变换的结果;
单击“Animate”运行程序,或按F10运行;调整模拟信号源的频率、幅值、种类观察窗口并观察输入信号波形及其FFT变换结果;单击“Halt”暂停程序运行,关闭窗口,本实验结束。
实验结果:
在CCS2.0环境,同步观察输入语音信号波形及其FFT变换结果。
五.思考题
1.对于不同的N,幅频特性会相同吗?
为什么?
2.FFT进行谱分析,可以应用的什么方面?
六.实验报告要求
1.简述实验原理及目的;
2.结合实验中所给定典型序列幅频特性曲线,与理论结果比较,并分析说明误差产生的原因以及用FFT作谱分析时有关参数的选择方法。
3.总结实验所得主要结论。
七.程序参数说明
voidkfft(pr,pi,n,k,fr,fi,l,il):
基2快速傅立叶变换子程序,n为变换点数,应满足2的整数
次幂,k为幂次(正整数);
数组x:
输入信号数组,A/D转换数据转为浮点型后,生成x数组,长度128;
数组mo:
FFT变换数组,长度128,浮点型
八.子程序流程图:
实验二有限冲击响应滤波器(FIR)算法实验
一、实验目的
1.掌握用窗函数法设计FIR数字滤波器的原理和方法;
2.熟悉线性相位FIR数字滤波器特性;
3.了解各种窗函数对滤波特性的影响。
二、实验设备
计算机,CCS2.0版软件,实验箱,DSP仿真器。
三、实验原理
1.有限冲击响应数字滤波器的基础理论;
2.模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、贝塞尔滤波器);
3.数字滤波器系数的确定方法。
四、实验步骤
1.复习如何设计FIR数字滤波;阅读本实验原理,掌握设计步骤;
2.阅读本实验所提供的样例子程序;
3.运行CCS软件,对样例程序进行跟踪,分析结果;
4.填写实验报告。
5.样例程序实验操作说明
A.实验前准备
1)正确完成计算机、DSP仿真器和实验箱连接后,开关K9拨到右边,即仿真器选择连接右边的CPU:
CPU2;
2)“A/D转换单元”的拨码开关设置:
拨码开关设置:
JP3拨码开关:
码位
备注
1
ON:
将“模拟信号源”单元的信号输入到AD7822
2
OFF:
3
OFF:
4
OFF:
5
OFF:
6
OFF:
SW2拨码开关:
SW2
备注
1
2
3
4
码位
ON
ON
ON
ON
AD7822的采样时钟为250KHZ,且中断给CPU2的中断2
3)检查:
计算机、DSP仿真器、实验箱是否正确连接,系统上电;
4)置拨码开关S23的1、2拨到OFF,用示波器分别观测模拟信号源单元的2号孔“信号源1”和“信号源2”输出的模拟信号,分别调节信号波形选择、信号频率、信号输出幅值等旋钮,直至满意,置拨码开关S23的1到ON,两信号混频输出;
本样例实验程序建议:
采用两路正弦波信号的混叠信号作为输入信号;
低频正弦波信号:
幅值5V,频率<20KHz;
高频正弦波信号:
幅值2.5V,频率>70KHz;
可在2号孔“信号源1”点用示波器观察混叠信号。
B.实验
启动CCS2.0,Project/Open打开“Algorithm”目录中“Exp02_cpu2”子目录下“Exp-FIR-AD.pjt”工程文件;双击“Exp-FIR-AD.pjt”及“Source”可查看各源程序;加载“Exp-FIR-AD.out”;在主程序中,在flag=0处设置断点;单击“Run”运行程序,程序将运行至断点处停止;
用View/Graph/Time/Frequency打开一个图形观察窗口;设置观察图形窗口变量及参数为:
采用双踪观察启始地址分别为x和y,长度为256的单元中数值的变化,数值类型为32位浮点型变量,这两个数组中分别存放的是经A/D转换后的输入混叠信号(输入信号)和对该信号进行FIR滤波的结果;
单击“Animate”运行程序,或按F10运行程序;调整观察窗口并观察滤波结果;
单击“Halt”暂停程序运行,激活“Exp-FIR-AD.c”的编辑窗口;
实验程序说明:
该程序为51阶FIR低通滤波器算法程序,采用矩形窗函数实现,数组h和xmid长度均为51,fs为采样频率,fstop为滤波器截止频率,可以修改以上参数来改变滤波器性能。
重新“RebuildAll”后,重新加载,单击“Animate”,可得到不同的实验结果。
实验结果:
在CCS2.0环境,同步观察输入信号及其FIR低通滤波结果。
五、思考题
1.如果给定通带截止频率和阻带截止频率以及阻带最小衰减,如何用窗函数法设计线性相位低通滤波器?
写出设计步骤。
2.定性说明本实验中,3dB截止频率的理论值在什么位置?
是否等于理想低通的截止频率?
3.如果要求用窗函数法设计带通滤波器,且给定上下边带截止频率,试求理论带通的单位脉冲响应。
六、实验报告要求
1.简述实验目的及理论。
2.自己设计一串数据应用样例子程序,进行滤波。
3.总结设计FIR滤波器的主要步骤。
4.描绘出输入、输出数组的曲线
七、FIR程序参数说明
系统函数
对应的常系数线性差分方程:
程序参数说明:
输入信号:
输入信号经A/D转换后,写入数组x,长度256,32位浮点型;
输出信号:
FIR低通滤波器输出,写入数组y,长度256,32位浮点型。
八、程序流程图:
实验三无限冲击响应滤波器(IIR)算法实验
一、实验目的
1.熟悉设计IIR数字滤波器的原理与方法;
2.掌握数字滤波器的计算机仿真方法;
3.通过观察对实际信号的滤波作用,获得对数字滤波的感性认识。
二、实验设备
计算机,CCS2.0版软件,实验箱,DSP仿真器。
三、实验原理
1.无限冲击响数字滤波器的基础理论;
2.模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、贝塞尔滤波器);
3.双线性变换的设计原理。
四、实验步骤
1.复习有关巴特沃斯滤波器设计和用双线性变换法设计IIR数字滤波器的知识;
2.阅读本实验所提供的样例子程序;
3.运行CCS软件,对样例程序进行跟踪,分析结果;
4.填写实验报告。
5.样例程序实验操作说明
1)正确完成计算机、DSP仿真器和实验箱连接后,开关K9拨到右边,即仿真器选择连接右边的CPU:
CPU2;
2)“A/D转换单元”的拨码开关设置:
JP3拨码开关:
码位
备注
1
ON:
将“模拟信号源”单元的信号输入到AD7822
2
OFF:
3
OFF:
4
OFF:
5
OFF:
6
OFF:
SW2拨码开关:
SW2
备注
1
2
3
4
码位
ON
ON
ON
ON
AD7822的采样时钟为250KHZ,且中断给CPU2的中断2
3)检查:
计算机、DSP仿真器、实验箱是否正确连接,系统上电;
4)置拨码开关S23的1、2拨到OFF,用示波器分别观测模拟信号源单元的2号孔“信号源1”和“信号源2”输出的模拟信号,分别调节信号波形选择、信号频率、信号输出幅值等旋钮,直至满意,置拨码开关S23的1到ON,两信号混频输出;
本样例实验程序建议:
采用两路正弦波信号的混叠信号作为输入信号;
低频正弦波信号:
幅值5V,频率<20KHz;
高频正弦波信号:
幅值2.5V,频率>70KHz;
可在2号孔“信号源1”点用示波器观察混叠信号。
B.实验
启动CCS2.0,Project/Open打开“Algorithm”目录中“Exp03_cpu2”子目录下“Exp-IIR-AD.pjt”工程文件;双击“Exp-IIR-AD.pjt”及“Source”可查看各源程序;加载“Exp-IIR-AD.out”;在主程序中,在flag=0处设置断点;单击“Run”运行程序,程序将运行至断点处停止;
用View/Graph/Time/Frequency打开一个图形观察窗口;采用双踪观察在启始地址分别为x和y,长度为256的单元中数值的变化,数值类型为32位浮点型变量,这两个数组分别存放的是经A/D转换的混叠信号和对该信号进行IIR低通滤波后的输出信号;
单击“Animate”运行程序,或按F10运行程序;调整观察窗口,并观察滤波结果;
单击“Halt”暂停程序运行,激活“ExpIIR.c”的编辑窗口;
该IIR低通滤波器滤波性能参数为:
采样频率为250KHz,通带内最大允许衰减3dB,阻带内最小衰减大于30dB,过渡带宽度约为50KHz;通带上限频率:
20KHz;阻带下限截止频率:
70KHz。
可以修改以上参数的归一化参数“nlpass”和“nlstop”来改变滤波器性能。
修改“ExpIIR.c”程序中“nlpass”和“nlstop”参数可改变IIR低通滤波器的滤波性能。
重新“RebuildAll”后,加载,单击“Animate”,可得到不同的结果。
实验结果:
在CCS2.0环境下,同步观察输入信号及其IIR低通滤波结果。
五、思考题
1.试述用双线性变换法设计数字滤波器的过程?
2.实验中,计算每个二阶滤波器的输出序列时,如何确定计算点数?
3.对滤波前后的信号波形,说明数字滤波器的滤波过程与滤波作用。
六、实验报告要求
1.简述IIR滤波器的基本原理;
2.对比FIR滤波器与IIR滤波器的异同;
3.描绘出输入、输出数组的曲线。
七、IIR程序参数说明
系统函数:
对应的常系数线性差分方程:
程序参数说明:
voidbiir2lpdes(doublefs,doublenlpass,doublenlstop,doublea[],doubleb[]):
IIR低通滤波器参数设计子程序参数说明:
fs:
采样频率;
nlpass:
通带上限频率归一化参数;
nlstop:
阻带下限截止频率归一化参数;
设置时,采样频率对应为1,应使“nlpass”和“nlstop”两参数均要小于0.5,且“nlpass”要比“nlstop”小0.2,否则,将不能满足阻带的最大衰减大于30dB。
数组a:
存放IIR低通滤波器传递函数的极点计算结果,浮点型;
数组b:
存放IIR低通滤波器传递函数的零点计算结果,浮点型;
输入信号:
输入信号经A/D转换后,写入数组x,长度256,32位浮点型;
输出信号:
滤波后信号,写入数组y,长度256,32位浮点型。
八、子程序流程图
实验四卷积(Convolve)算法实验
一、实验目的
1.掌握卷积算法的原理;
2.掌握在CCS环境下,TMS320程序编写、编译和调试程序的方法。
二、实验设备
计算机,CCS2.0版软件,DSP仿真器,实验箱。
三、实验原理及步骤
1.熟悉卷积的基本原理;
2.阅读所提供的样例实验程序;运行样例程序,分析结果;
3.填写实验报告。
4.本实验所提供的样例子程序操作说明
A.实验前准备
1)正确完成计算机、DSP仿真器和实验箱连接后,开关K9拨到右边,即仿真器选择连接右边的CPU:
CPU2;系统上电;
2)“A/D转换单元”的拨码开关设置:
JP3拨码开关:
码位
备注
1
ON:
将“模拟信号源”单元的信号输入到AD7822
2
OFF:
3
OFF:
4
OFF:
5
OFF:
6
OFF:
SW2拨码开关:
SW2
备注
1
2
3
4
码位
ON
ON
ON
ON
AD7822的采样时钟为250KHZ,且中断给CPU2的中断2
S23拨码开关:
码位
备注
1、2
OFF,不混频
B.实验
启动CCS2.0,Project/Open打开“Algorithm”目录中“exp04_cpu2”子目录下“Exp-CONV-AD.pjt”工程文件;双击“Exp-CONV-AD.pjt”及“Source”可查看各源程序;加载“Exp-CONV-AD.out”;在主程序中,在t++及flag=0处分别设置断点;单击“Run”运行程序,程序将运行至第一个断点处停止;
用View/Graph/Time/Frequency打开图形观察窗口;设置观察图形窗口变量及参数;采用双踪观察两路输入变量Input及Impulse的波形,波形长度为128,数值类型为32位浮点型;
再打开一个图形观察窗口,以观察卷积结果波形;该观察窗口的参数设置为:
变量为Output,长度为256,数据类型为32位浮点数;
调整观察窗口,观察两路输入波形和卷积结果波形;这两路输入波形是由程序产生,并对这两个信号进行卷积;
单击“Run”,程序运行至第二个断点处停止,调整图形观察窗口,该部分实验采用实验箱的信号源产生的信号作为卷积的两个输入信号,观察卷积结果;
单击“Animate”运行程序,或按F10运行程序;调整观察窗口,并观察卷积结果;改变输入信号的波形、频率、幅值,观察卷积结果;实验结束。
四、Convolve子程序
时域表达式:
程序参数说明:
voidConvolveok(Input,Impulse,Output,Length)
两序列卷积子程序;
Input:
原始输入数据序列,浮点型,长度128;
Impulse:
冲击响应序列,浮点型,长度128;
Output:
卷积输出结果序列,浮点型,长度256;
Length:
参与卷积运算的两输入序列长度;
子程序流程图:
实验五离散余弦变换(DCT)算法实验
一、实验目的
学习DCT算法的实现方法。
二、实验设备
计算机,CCS2.0版软件,实验箱,DSP仿真器。
三、实验原理
离散余弦变换与离散傅立叶变换紧密相关的,属于正弦类正交变换,由于其优良的去冗余性能及高效快速算法的可实现性,被广泛用于语音及图象的有损和无损压缩。
在开始实验之前,应了解以下基本原理。
1.语音或图象的压缩手段;
2.DCT变换在数据压缩中的作用与应用。
四、实验步骤
1.阅读本实验所提供的样例子程序;
2.运行样例程序,分析结果;
3.样例程序实验操作说明
A.实验前准备
1)正确完成计算机、DSP仿真器和实验箱连接后,开关K9拨到右边,即仿真器选择连接右边的CPU:
CPU2;系统上电;
2)“A/D转换单元”的拨码开关设置:
JP3拨码开关:
码位
备注
1
ON:
将“模拟信号源”单元的信号输入到AD7822
2
OFF:
3
OFF:
4
OFF:
5
OFF:
6
OFF:
SW2拨码开关:
SW2
备注
1
2
3
4
码位
ON
ON
ON
ON
AD7822的采样时钟为250KHZ,且中断给CPU2的中断2
S23拨码开关:
码位
备注
1、2
OFF,不混频
B.实验
启动CCS2.0,Project/Open打开“Algorithm”目录中“exp05_cpu2”子目录下“Exp-DCT-AD.pjt”工程文件;双击“Exp-DCT-AD.pjt”及“Source”可查看各源程序;加载“Exp-DCT-AD.out”;在主程序中,在flag=0处设置断点;单击“Run”运行程序,程序将运行至断点处停止;
用View/Graph/Time/Frequency打开两个图形观察窗口;采用双踪观察在启始地址分别为x和y,长度为128的单元中数值的变化,数值类型为32位浮点型,这两个数组分别存放的是经A/D转换的输入信号和对该信号进行DCT变换的结果;
再打开一个图形观察窗口,设置观察变量为z;变量z为输入信号的DCT变换及逆DCT变换的结果,长度128,32位浮点型,即输入信号的重构信号;
调整各图形观察窗口,观察正变换与逆变换结果;
单击“Animate”运行程序,调整各图形观察窗口,动态观察变换结果;改变输入信号的波形、频率、幅值,动态观察变换结果;
单击“Halt”暂停程序运行,关闭窗口,实验结束;
实验结果:
在CCS2.0环境,同步观察输入信号及其DCT变换结果。
五、思考题
1.压缩的实质是什么?
2.实际压缩处理时,应该有那些流程?
六、实验报告要求
1.简述DCT的基本原理。
2.说明DCT系数是如何确定的?
4.以8*8矩阵描述输入、输出。
七、DCT子程序
变换的核函数
式中系数:
程序说明:
voiddct1c2(doublex[],doubley[],intn):
DCT正变换子程序;
voididct1c2(doubley[],doublez[],intn):
逆DCT变换子程序;
两子程序中,各参数为:
数组x:
输入信号经A/D转换后,转为浮点型后,生成x数组,长度128;
数组y:
DCT正变换输出信号数组,也是逆DCT变换输入数组,浮点型,长度128;
数组z:
逆DCT变换输出信号数组,即重构信号,浮点型,长度128。
八、程序流程图(DCT)
实验六相关(Correlation)算法
一、实验目的
1.学习相关的概念;
2.学习相关算法的实现方法。
二、实验设备
计算机,CCS2.0版软件,实验箱、DSP仿真器。
三、实验原理
1.概率论中相关的概念;
2.随机信号相关函数的估计。
四、实验步骤
1.熟悉基本原理;阅读实验提供的程序;
2.运行CCS,记录相关系数;
3.填写实验报告。
4.实验程序操作说明
A.实验前准备
1)正确完成计算机、DSP仿真器和实验箱连接后,开关K9拨到右边,即仿真器选择连接右边的CPU:
CPU2;系统上电;
2)“A/D转换单元”的拨码开关设置:
拨码开关设置:
JP3拨码开关:
码位
备注
1
ON:
将“模拟信号源”单元的信号输入到AD7822
2
OFF:
3
OFF:
4
OFF:
5
OFF:
6
OFF:
SW2拨码开关:
SW2
备注
1
2
3
4
码位
ON
ON
ON
ON
AD7822的采样时钟为250KHZ,且中断给CPU2的中断2
S23拨码开关:
码位
备注
1、2
OFF,不混频
B.实验
启动CCS2.0,Project/Open打开“Algorithm”目录中“exp06_cpu2”子目录下“Exp-COR-AD.pjt”工程文件;双击“Exp-COR-AD.pjt”及“Source”可查看各源程序;加载“Exp-COR-AD.out”;在主程序中,在i++及flag=0处分别设置断点;单击“Run”运行程序,程序将运行至第一个断点处停止;
用View/Graph/Time/Frequency打开一个图形观察窗口;采用双踪观察变量x及y的波形,长度为128,数值类型为32位浮点型;此时,这两个信号由程序产生;
再打开一个图形观察窗口,以观察变量x与y相关运算的结果;该观察窗口的参数设置为:
变量为cor,长度为255,数据类型为32位浮点数;
调整图形观察窗口,观察两路输入信号相关运算的结果;
单击“Run”,程序运行至第二个断点处停止,此时,两路输入信号由信号源单元产生,并完成自相关运算;
单击“Animate”运行程序,调整各图形观察窗口,动态观察自相关运算的结果;改变输入信号的波形、频率、幅值,动态观察结果;
程序中,mode可赋0或1,赋0时,完成相关函数无偏估计的计算;赋1时,完成相关函数有偏估计的计算;x和y为参与相关运算的两路信号,当x=y时,完成自相关函数的计算,而当xy时,完成互相关函数的计算。
修改以上参数,进行“RebuildAll”,并重新加载程序,运行程序可以得到不同的实验结果。
关闭工程文件,关闭各窗口,实验结束。
五、思考题
用其他数学
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- exp4 算法