matlab在生物学中的应用,MATLAB在生物医学信号处理中的应用

福建电脑

2010年第2期

MATLAB在生物医学信号处理中的应用

高智贤,张业宏

(新乡医学院河南新乡453003)

【摘要】:介绍了MATLAB在生物医学信号处理中的简单应用。文中以实际程序介绍了基本序列运算、频谱分析以及现代的参数建模等几方面的设计。可以看到,采用MATLAB可以大大简化运算,并能得到足够的精度,有着广泛的应用前景。

【关键词】:MATLAB生物医学信号处理参数建模

0、绪论

生物医学工程作为理、工、医科的交叉学科,在生命科学的发展中有着巨大的潜力。生物医学信号处理课程作为生物医学工程专业重要的专业基础课程,是综合性、理论性和实验性都很强的新技术学科,在数字化和信息化高速发展的今天其地位越来越重要,它的主要任务是根据生物医学的信号特点,应用信息科学的基本理论和方法,研究如何从被干扰和噪声淹没的观察记录中提取各种生物医学信号中所携带的信息,并对它们进行分析、解释和分类。在对生理信号进行分析的过程中,都是借用计算机来进行实现的。MA TLAB在生物医学信号分析中的应用,将会使生理信号处理技术简单化、实用化,原本神秘复杂的数学运算和变化可用一简单的命令输入,很快得到信号的处理结果。学科发展过程中产生如FTRAN语言、C语言等计算语言,相对这些语言语法要求较高,MATLAB支持演草纸式计算环境,MA TLAB要比使用Basic、Delphi、Fortran和C语言等提高效率许多倍。

1、生物医学信号处理基础

生物医学信号的研究对象是复杂的生理信号,处理的目的是通过滤波技术去识别和分离生理信号中的有用成份和无用成份,对其进行定量描述,从而揭示产生生物医学信号的本质,对生理信号进行预测以得到未来可能产生的信号。根据所得到的结果去判断人体生理情况,对医生的判断其重要的辅助作用。生物医学信号处理的主要内容包括频谱分析与数字滤波、信号的识别及信号估计等。常用的运算有:差分方程计算、矩阵计算、离散傅里叶变换计算、功率谱密度计算、卷积和计算、相关计算、对数和指数运算、复频率变化及没梳和数值变换等。很多的信号处理问题,都可以用上述运算加上其他的基本运算,通过适当的组合来实现。

2、Matlab在生物医学信号处理中的应用

2.1基本序列运算的实现

生物医学信号处理是以数字信号处理为基础的离散信号及离散系统的研究,因此,其预算过程基本上都是卷积或者相关预算。在MATLAB中可以很容易实现这种运算。定义两个信号x1= 0:15;x2=[1,1,1,1,1,1,1,1];然后定义卷积长度,k=length(x1)+length (x2)-1;对x1和x2进行傅里叶变化,y1=fft(x1,k);y2=fft(x2,k);,最后根据傅里叶变化的性质求逆傅里叶变换得到卷积结果y=ifft (y1.*y2)。

2.2在频谱分析中的应用

图1原始信号图2功率谱图图1为一段未知脑电EEG序列,利用MATLAB对其进行功率分析。得到图2256点的谱分析结果。分析程序如下:N=256;n=0:1:N-1;y=abs(fft(a21)).^2/N;stem(n,y,’fill’);原始信号经过傅里叶变换的道奇功率谱。

2.3利用参数建模对信号进行估计

在生物医学信号处理中,信号估计是很重要的一部分能容。现代常用的估计方法是利用AR模型法对信号进行估计。下边我们就来看一段AR模型估计的实例。

主程序:p=input(‘输入AR模型的阶数p:’);

a=zeros(1,p);

for i=1:p,

str=sprintf(‘请输入AR模型的参数a(%d)’,i);

a(i)=input(str);

end

deltaW=input(‘请输入白噪声方差:’);

L=input(‘请输入信号s(n)样本个数L:’);

w=randn(1,L);

s=zeros(1,L);

for i=1:L,

temp=0;

for m=1:p,

if i-m>0,

temp=temp+a(m)*s(i-m);

end

s(i)=w(i)-temp;

end

end

Rss=zeros(p+1,p+1);

for m=1:p+1,

for n=1:p+1,

Fi=0;

for i=1:L-abs(m-n),

Fi=Fi+s(i)*s(i+abs(m-n));

end

Fi=Fi/(L-abs(m-n));

Rss(m,n)=Fi;

end

end

A=zeros(p+1,1);

e=zeros(p+1,1);

e(1)=deltaW;

A=Rss^(-1)*e;

for i=1:p,

sprintf(‘a(%d)=%fn’,i,A(i+1))

end

deltaW_estimate=0;

for i=1:p,

deltaW_estimate=deltaW_estimate+a(i)*Rss(1,i+1);

end

deltaW_estimate=deltaW_estimate+Rss(1,1);

sprintf(‘deltaW_estimate=%f’,deltaW_estimate)

运行AR模型参数估计程序,选择p=1,1a=-0.6,L=100,

观察得到,与理论值进行比较可以发现大致相同,但是有误差。

3、结束语

在现在计算机技术与日常工作联系越来越密切的今天,可以把这项技术做成嵌入系统与其它相关信号处(下转第90页

9811ee644ab5e2b9939d59ace0c6615b.png

)109

相关资源:橘子快速启动软件(橘子启动器)v3.0绿色免费版-其它代码类资源…

来源:橘喲

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月16日
下一篇 2021年2月16日

相关推荐