《用MATLAB实现DFA算法及报告》由会员分享,可在线阅读,更多相关《用MATLAB实现DFA算法及报告(8页珍藏版)》请在金锄头文库上搜索。
1、Bnupt地理与生物信息学院2011 / 2012学年第二 学期实验报告课程名称:医学信号处理实验名称:DFA算法实现班级字号: *字生姓名:*指导教师.*一、实验题目:Matlab 软件处理生物医学数字信号二、实验要求:采用 DFA 算法实现三、实验内容:能使用 Matlab 软件编写、实现 DFA 算法并处理生物医学信号四、实验过程:(1)针对某个心电时间序列(总长度为N ),首先进行求和y(k) = Y k B(i) - B i_1ave其中,B(i)是第i个数据,而Bave是所分析的心电时间序列的平均 值。这种求和步骤可以映射原始时间序列到一个自相似的过程。(2)接着,量度求和后的时间
2、序列的垂直特征尺度。方法是: 求和后的时间序列被分成等长为n的许多个小片段。画出每一个长度 为n的小片段的最小二乘拟和直线(它用来代表该片段中的趋势)。 直线段的 y 坐标标记为 yn(k)。(3)其次,对求和后的时间序列进行去趋势,即在每一个片段 中把y(k)减去局域趋势y(k)。对一个给定的片段长度n,这种求和并 且去趋势后的时间序列的涨落的特征尺寸可以由下式计算:F(n) _-兰y(k) y (k)2Nnk _1(4)在所有时间尺度(片段大小)上重复上面的计算,可以得出 F(n) 和片段大小n的关系曲线。吨F(n)对logn的斜率决定尺度指数(自相 似参量)。Clear巴一八AHiexh
3、ead(-d,nsrdb16786.ixf)八 nhiooo;口丄4 8 16 32 64 128;nlengih(n)八 rHfix(rand( 1) * 10000)八boNnA(A71+N)2)*100+2100;ploaNb(TN)八 c=bmepn(b)八 forn-TNy(insum(c(lu.);endfor kn %kHl nHlo kH2 nH50dHNn(k)八forn-TdPHP01Aiial)*n(k)+ln(k)yal)*n(k)+ln(k)b八 yl(kzl)*n(k)+ln(k)npolyv 巴(pcjl)*n(k)+ln(k)r endfigureploaNy)
4、;hold on 八ploa_Nyl(kbN)k);sa(gcp-XGrid-on-);sa(gcp-XTickpn(sNrtitle(n=,num2str(n(k);f(k)=sqrt(sum(y(l:N)-yl(k,l:N)42)/N); endfigure,plot(logl0(n(l:k),logl0(f(l:k),o);hold on;a=polAit(logl0(n(l:k),loglO(f(l:k),l);plot(logl0(n(l:k),polyval(a,loglO(n(l:k);title(拟合直线斜率,num2str(a(l);原始数据曲线:n=4、 8、 16、 32、 64、 128拟合直线:n=128拟合直娱斜率0.B2533六、实验小结:DFA 方法可以检测出一个非平稳时间序列的内在的自相似性, 同时避免散杂地检测可明显看出的人为的外在趋势的自相似性。更适 合应用于某些慢性趋势非平稳时间序列。通过此次实验,熟悉了 DFA 算法的 Matlab 实现,并运用其处理生物医学信号。