医学数字信号处理实验指导书.docx

上传人:b****8 文档编号:9562702 上传时间:2023-02-05 格式:DOCX 页数:28 大小:678.08KB
下载 相关 举报
医学数字信号处理实验指导书.docx_第1页
第1页 / 共28页
医学数字信号处理实验指导书.docx_第2页
第2页 / 共28页
医学数字信号处理实验指导书.docx_第3页
第3页 / 共28页
医学数字信号处理实验指导书.docx_第4页
第4页 / 共28页
医学数字信号处理实验指导书.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

医学数字信号处理实验指导书.docx

《医学数字信号处理实验指导书.docx》由会员分享,可在线阅读,更多相关《医学数字信号处理实验指导书.docx(28页珍藏版)》请在冰豆网上搜索。

医学数字信号处理实验指导书.docx

医学数字信号处理实验指导书

 

《医学数字信号处理》

实验指导书

学生实验须知

一实验要求

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1