医学数字信号处理实验指导书.docx
- 文档编号:9562702
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:28
- 大小:678.08KB
医学数字信号处理实验指导书.docx
《医学数字信号处理实验指导书.docx》由会员分享,可在线阅读,更多相关《医学数字信号处理实验指导书.docx(28页珍藏版)》请在冰豆网上搜索。
医学数字信号处理实验指导书
《医学数字信号处理》
实验指导书
学生实验须知
一实验要求
1认真进行实验预习和准备,应教师要求于实验前完成实验准备报告;
2按照安排的时间、地点和分组签到和参加实验。
因故调换应提交调换申请并经教师批准;
3在指定实验台(位置)进行实验,不得随意调换,不得动用非实验设备;
4实验时,主动参与,认真细致,互助合作,注意安全。
有问题主动向教师请教。
5实验结束,整理好实验设备,报告指导教师检查实验结果,经认可后方可离开。
6损坏设备,应予以赔偿。
二实验报告基本要求
1在院统一印制的实验报告用纸上书写报告;
2书写整洁,符号、表格和曲线规范;
3实验记录数据真实客观,实验结果分析认真正确;
4按时呈交,实验报告作为教学档案由院留存。
三实验成绩评定
1每项实验的成绩综合学生出勤、实验过程(参与程度,实验结果,设备安全和人身安全)情况和实验报告质量(内容和规范性)给出。
不参加实验或参加实验不提交报告者,该项实验成绩为0分。
2实验成绩计入课程平时成绩表;
3不参加实验及不提交报告达三分之一者,将被取消该课程考核资格。
目录
实验一卷积(Convolve)算法实验....................4
实验二FFT分析实验..............................9
实验三有限冲击响应滤波器(FIR)算法实验............8
实验四无限冲击响应滤波器(IIR)算法实验.............12
预习要求:
对指导书中所附程序实验前要先预习、分析,达到基本理解,实验中再进一步认识、全部理解。
实验一卷积(Convolve)算法实验
一、实验目的
1.掌握卷积算法的原理;
2.掌握在CCS环境下,TMS320程序编写、编译和调试程序的方法。
二、实验设备
计算机、CCS2.0版软件、DSP仿真器、实验箱
三、实验原理及步骤
A.实验前准备
1)正确完成计算机、DSP仿真器和实验箱的连接后,系统上电;
2)设置模数转换单元的拨动开关,1、5置“ON”,其它置“OFF”;
B.实验
打开PC机界面下的CCS2.软件,用Project/Open打开C:
\ti\mypjts\DSP54X-1目录下的“ExpConv.pjt”工程文件;
双击“expConv.pjt”及“Source”可查看各源程序;并编译加载;在主程序中的两个K++处,设置断点;单击“Run”运行程序,程序运行到第一个断点处停止。
用View/Graph/Time/Frequency打开图形观察窗口;设置观察窗口变量及参数;采用双踪观察两路输入变量Input及Impulse的波形,波形长度为128,数组类型为32位浮点型;
再打开一个图形窗口,以观察卷积结果波形;该观察窗口的参数设置为:
变量为Output,长度为256,数据类型为32位浮点数;
调整观察窗口,观察两路输入波形和卷积结果波形;这两路输入波形是由程序产生,并对两个信号进行卷积;
单击“Run”,程序运行至第二个断点处停止,调整图形观察窗口,该部分实验用实验箱的信号源产生的信号作为卷积的两个输入信号,观察卷积结果;
单击“Animate”运行程序,或按F10运行程序;调整观察窗口,并观察卷积结果;改变输入信号的波形、频率、幅值,观察卷积卷结果。
四、实验报告要求
1.主要实验步骤。
2.描绘出输入、输出数组的曲线。
3.简述卷积理论。
五、Convolve子程序
时域表达式:
程序参数说明:
VoidConvolveok(Input,Impulse,Output,Length)
ExternvoidREADAD7822(void)
两序列卷积子程序:
Input:
原始输入数据序列,浮点型,长度128;
Impulse:
冲击响应序列,浮点型,长度128;
Output:
卷积输出结果序列,浮点型,长度256;
Length:
参与卷积运算的两输入序列长度;
子程序流程图:
externvoidInitC5402(void);
externvoidREADAD7822(void);
#include"stdlib.h"
#include"stdio.h"
#include"typedef.h"
#include"Convolve.h"
#include"math.h"
#defineLength128
#defineLength32*Length
voidmain()
{
inti,k=0;
doubleInput[Length];
doubleImpulse[Length];
doubleOutput[Length3];
intxm;
int*px=(int*)0x3000;
InitC5402();
//产生随机输入数据以及冲击响应
Input[0]=200;
Impulse[0]=100;
for(i=1;i { if(i { Input[i]=200; } else { Input[i]=0; } } for(i=1;i { if(i { Impulse[i]=100; } else { Impulse[i]=0; } } Convolveok(Input,Impulse,Output,Length); k++; for(;;) { READAD7822(); px=(int*)0x3000; for(i=0;i { xm=*px; Input[i]=xm; Impulse[i]=xm; px++; } Convolveok(Input,Impulse,Output,Length); k++; } } /******************************************************************* **EndofFile––ExpConv.c *******************************************************************/ #include"Convolve.h" voidConvolveok( double*Input,//原始输入数据 double*Impulse,//冲击响应 double*Output,//卷积输出结果 Word16length//卷积序列长度 ) { inti,k,p; doubler; p=0; for(k=0;k<=length-1;k++) { Output[k]=0; r=0; for(i=0;i<=p;i++) { r=Input[k-i]*Impulse[i]; Output[k]=Output[k]+r; } p=p+1; if(p>length-1)p=length-1; elsep=p; } p=length-2; for(k=length;k<=length+length-1;k++) { Output[k]=0; r=0; for(i=0;i<=p;i++) { r=Input[length-1-i]*Impulse[length-1-p+i]; Output[k]=Output[k]+r; } p=p-1; } return; } 实验二FFT分析实验 一、实验目的 1.加深对DFT算法原理和基本性质的理解; 2.熟悉FFT算法原理和FFT子程序的应用; 3.学习用FFT对连续信号和时域信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。 二、实验设备 计算机、CCS2.0版软件、实验箱、DSP仿真器 三、基本原理 1.DFT的定义: 将时域的采样变换成频域的周期性离散函数,频域的采样也可以变换成时域的周期性离散函数,这样的变换称为离散傅立叶变换,简称DFT。 2.FFT是DFT的一种快速算法,将DFT的N2步减少为(N/2)log2N步,极大地提高了运算的速度。 四、实验步骤 A.实验前准备 1)正确完成计算机、DSP仿真器和实验箱的连接后,系统上电; 2)设置模数转换单元的拨动开关,1、5、6置“ON”,其它置“OFF”; B.实验 打开PC机界面下的CCS2.软件,Project/Open打开C: \ti\mypjts\DSP54X-2目录下的“ExpFFT.pjt”工程文件;双击“ExpFFT.pjt”及“Source”可查看各源程序;并编译加载;在主程序”k++”处设置断点;单击“Run”运行程序,程序将运行到断点处停止; 用View/Graph/Time/Frequency打开一个图形观察窗口;设置该观察图形及参数;采用双踪观察启始地址分别为0x3000H和0x3080h,长度为128单元中数模变化,数值类型为16位有符号整型变量,这两段存储单元中分别存放的是经过AD782转换的混叠信号(信号源单元产生)和对该信号进行FFT变换的结果; 单击“Animate”运行程序,或按F10运行;调整观察窗口并观察输入信号波形及其FFT变换结果;调节信号源单元中两路信号的波形选择调节、频率调节、幅值调节,观察混叠信号以及其FFT变换结果如何变化; 单击“Halt”暂停程序运行,关闭窗口,本实验结束。 五、思考题 1.对于不同的N,幅频特性会相同吗? 为什么? 六、实验报告要求 1.简述FFT理论。 2.主要实验步骤。 3.描绘出输入、输出数组的曲线。 4.回答思考题。 程序参数说明 Externvoidinitial(void); ExternvoidREADAD7822(void); Voidkfft(pr,pi,n,k,fr,fi,l,il);基2快速傅立叶变换子程序,n为变换点数,应满足2的整数次幂,k为幂次(正整数); 数组x: 输入信号数组,A/D转换数据存放于地址为3000H~307FH存储器中,转为浮点型后,生成x数组,长度128; 数组mo: FFT变换数组,长度28,浮点型,整型后,写入3080h~30FFH存储器中。 实验三有限冲击响应滤波器(FIR)算法实验 一、实验目的 1.掌握用窗函数法设计FIR数字滤波器的原理和方法; 2.熟悉线性相位FIR数字滤波器特性; 3.了解各种窗函数对滤波特性的影响。 二、实验设备 计算机、CCS2.0版软件、实验箱、DSP仿真器 三、实验原理 1.有限冲击响应数字滤波器的基础理论; 2.模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、贝塞尔滤波器); 3.数字滤波器系数的确定方法。 四、实验步骤 A.实验前准备 1)正确完成计算机、DSP仿真器和实验箱的连接后,系统上电; 2)设置模数转换单元的拨动开关,1、5置“ON”,其它置“OFF”; 3)用示波器分别观测信号源单元的S1和S2输出的模拟信号,分别调节信号波形选择、信号频率、信号输出幅值等旋钮,直到满意为止; 建议: 采用两路正弦波信号的混叠信号作为输入信号; S1输出: 低频正弦波信号: 峰峰值11V,频率<4KHz; S2输出: 高频正弦波信号: 峰峰值5V,频率>40KHz; 4)设置模数转换单元的拨动开关,1、5、6置“ON”,其它置“OFF”,即采样频率选择181KHz,两路信号混叠输入,可在“A/DIN”点用示波器观察混叠信号。 B.实验 打开PC机界面下的CCS2.软件,用Project/Open打开C: \ti\mypjts\DSP54X-3目录下的“ExpFIR.pjt” 工程文件;双击“ExpFIR.pjt”及“Source”可查看各源程序;并编译加载;在主程序中,K++处,设置断点;单击“Run”运行程序,程序将运行至断点处停止。 用View/Graph/Time/Frequency打开一个图形观察窗口;设置观察图形窗口变量及参数为: 采用双踪观察在启动地址分别为0x3000H和0x3100H,长度为256的单元中数值的变化,数值类型为16位有符号整型变量,这两段存储单元中分别存放的是经A/D转换后的输入混叠信号(输入信号)和对该信号进行FIR滤波的结果。 单击“Animate”运行程序,或按F10运行程序;调整观察窗口并观察滤波结果,单击“Halt”暂停程序运行,激活“ExpFIR.c”的编辑窗口; 实验程序说明: 该程序为51阶FIR低通滤波器算法程序,采用矩形窗 函数实现,数组和xmid长度均为51,fs为采样频率,fstop为滤波器截止频率,可以修改以上参数来变滤波器性能。 重新“RebuildAll”后,重新加载,单击“Animate”,可得到不同的实验结果。 五、思考题 1.如果给定通带截止频率和阻带截止频率以及阻带最小衰减,如何用窗函数法设计线性相位低通滤波器? 写出设计步骤。 2.定性说明本实验中,3dB截止频率的理论值在什么位置? 是否等于理想低通的截止频率? 六、实验报告要求 1.简述FIR理论。 2.主要实验步骤。 3.描绘出输入、输出数组的曲线。 4.回答思考题。 七、FIR程序参数说明 系统函数 对应常系数线性差分方程: 程序参数说明: ExternvoidInitC5402(void) ExternvoidREADAD7822(void) voidfirdes(intm,doublenpass); 输入信号: 输入信号经A/D转换后,写入地址为3000H~30FFH存储器,16位整型; 输出信号: FIR低通滤波器输出,写入地址为3100H~31FFH存储,16位整型。 八、程序流程图 externvoidInitC5402(void); externvoidREADAD7822(void); /**************************************** **MainFunctionProgram ****************************************/ #include"stdio.h" #include"math.h" #definepi3.1415927 doublenpass,h[51],x,y,xmid[51]; intm=50; intn=256; voidfirdes(intm,doublenpass); main() { intxm,ym; int*px=(int*)0x3000; int*py=(int*)0x3100; doublefs,fstop,r,rm; inti,j,p,k; k=0; fs=181000; fstop=10000; npass=fstop/fs; for(i=0;i<=m;i++) { xmid[i]=0; } InitC5402();/*initializeC5402DSP*/ firdes(m,npass); for(;;) { READAD7822(); for(i=0;i<=n-1;i++) { px=(int*)(0x3000+i); xm=*px; x=xm; for(p=0;p<=m;p++) { xmid[m-p]=xmid[m-p-1]; } xmid[0]=x; r=0; rm=0; for(j=0;j<=m;j++) { r=xmid[j]*h[j]; rm=rm+r; } y=rm; py=(int*)(0x3100+i); ym=(int)y; *py=ym; } k++; } } voidfirdes(intm,doublenpass) { intt; for(t=0;t<=m;t++) { h[t]=sin((t-m/2.0)*npass*pi)/(pi*(t-m/2.0)); } if(t=m/2)h[t]=npass; } /*****EndofFile––ExpFIR.c**********************************************/ 实验四无限冲击响应滤波器(IIR)算法实验 一、实验目的 1.熟悉设计IIR数字滤波器的原理与方法; 2.掌握数字滤波器的计算机仿真方法; 3.通过观察对实际信号的滤波作用,获得对数字滤波的感性认识。 二、实验设备 计算机、CCS2.0版软件、实验箱、DSP仿真器 三、实验原理 1.无限冲击响数字滤波器的基础理论; 2.模拟滤波器原理(巴特沃斯滤波器、切比雪夫滤波器、贝塞尔滤波器); 3.双线性变换的设计原理。 四、实验步骤 A.实验前准备 1)正确完成计算机、DSP仿真器和实验箱的连接后,系统上电; 2)设置模数转换单元的拨动开关,1、5置“ON”,其它置“OFF”; 3)用示波器分别观测信号源单元的S1和S2输出的模拟信号,分别调节信号波形选择、信号频率、信号输出幅值等旋钮,直到满意为止; 建议: 采用两路正弦波信号的混叠信号为输入信号; S1输出低频正弦波信号: 峰峰值11V,频率<4KHz; S2输出高频正弦波信号: 峰峰值5V,频率>40KHz; 4)设置模数转换单元的拨动开关,1、5、6置“ON”,其它置“OFF”,即采样频率选择181KHz,两路信号混叠输入,可在引出点“A/DIN”处(模数转换单元)用示波器观察混叠信号。 B.实验 打开PC机界面下的CCS2.软件,用Project/Open打开C: \ti\mypjts\DSP54X-4目录下的“ExpIIR.pjt”工程文件;双击“ExpIIR.pjt”,双击“Source”可查看各源程序;并加载“Exp IIR.out”;在主程序中,K++处,设置断点;单击“Run”运行程序,程序将运行至断点处停止。 用View/Graph/Time/Frequency打开一个图形观察窗口;采用双踪示波器在启动地址分别为0X3000H和0X3100H,长度为256的单元中数值的变化,数值类型为16位有符号整型变量,这两段存储单元中分别存放的是经A/D转换后的混叠信号和对该信号进行低通IIR滤波后的输出信号; 参数设置: 双踪观察输入的叠加波形与滤波后的输出波形: 单击“Animate”运行程序,或按F10运行程序;调整观察窗口,并观察滤波结果;单击“Halt”暂停程序运行,激活“ExpIIR.c”的编辑窗口;该IIR低通滤波器性能参数为: 采样频率为181KHz,通带内最大允许衰减3dB,阻带内最小衰减大于 30dB,过渡带宽度约为36KHz;通带上限频率: 4KHz;阻带下限截止频率: 40KHz。 可以修改以上参数归一化参数“nlpass”和“nlstop”来改变滤波器性能。 修改“ExpIIR.c”程序中“nlpass”和“nlstop”参数可改变IIR低通滤波器的滤波性能。 重新“RebuildALL”后,加载,单击“Animate”,可得到不同的结果。 五、思考题 1.简试述用双线性变换法设计数字滤波器的过程? 2.实验中,计算每个二阶滤波器的输出序列时,如何确定计算点数? 3.对滤波前后的信号波形,说明数字滤波器的滤波过程与滤波作用。 六、实验报告要求 1.简述IIR理论。 2.主要实验步骤。 3.描绘出输入、输出数组的曲线。 4.对比FIR滤波器与IIR滤波器的异同; 5.回答思考题。 七、IIR程序参数说明 系统函数: 对应的常系数线性差分方程是: 实验流程图 程序参数说明: ExternvoidInitC5402(void) voidREADAD7822(void) 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转换后,写入地址3000H~30FFH单元,16位整型; 输出信号: 滤波后信号,写入地址3100H~31FFH单元,16位整型。 externvoidInitC5402(void); externvoidREADAD7822(void); /*********************************************************************** **MainFunctionProgram ***********************************************************************/ #include"stdio.h" #include"math.h" #definepi3.1415926 doublefs,nlpass,nlstop,nhpass,nhstop,a[3],b[3],x,y; voidbiir2lpdes(doublefs,doublenlpass,doublenlstop,doublea[],doubleb[]); voidbiir2lpdes(doublefs,doublenlpass,doublenlstop,doublea[],doubleb[]) { inti,u,v; doublewp,omp,gsa,t; wp=nlpass*2*pi; o
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 医学 数字信号 处理 实验 指导书