下沙论坛

标题: 样本熵 近似熵 代码 应用于matlab [打印本页]

作者: 刹那公子    时间: 2008-12-27 22:27
标题: 样本熵 近似熵 代码 应用于matlab
又是大家开始忙碌着毕业论文的时候了~~
, b9 p8 C% N( \7 _# W5 W这个是我当时毕业论文的核心内容~~
9 x& u! h  R2 Q* o! c  _% s需要做信号非线性的学弟学妹 可以参考下~~7 J: u" S% I3 H5 T7 ]1 E
: Q- `& X3 Z2 j( ?  p
$ \2 D* D/ F* H# e& o
+ @% C! U  L: J  q; W# c6 C

4 l% H2 b3 B7 q5 }$ R/ b! N% r4 v' Y( P& G! J0 E
$ ~' e( P# b& y6 w5 X; G6 h
) l0 X' z, |; o/ F
2 a# }# e4 ]5 I  J+ s) @5 N. S
function [shang]=jss(xdate)
! O- Z, y' b" K% R' {* l# ~  hm=2;2 c2 |! t' @  Q6 t/ T
n=length(xdate);' u  I9 t. T- O
r=0.2*std(xdate);
. J- y' I; \; u+ E; u; _; v% J! G8 ~cr=[];# Y9 ^4 e3 `; ?7 [, `- k' \
gn=1;( E+ h1 ^+ C! X* m1 Y" C
gnmax=m;
0 l( H% ~/ W- z, d6 S; f4 ~, Jwhile gn<=gnmax6 v$ a1 O2 s# _' y
x2m=zeros(n-m+1,m);%存放变换后的向量; X0 M! K! M) }# m* ^0 P5 U& @
d=zeros(n-m+1,n-m);% 存放距离结果的矩阵
& h. `( _' g! L2 Ncr1=zeros(1,n-m+1);%存放2 L( p0 k, ^7 A7 s
k=1;
' w# I1 a, u1 p. W8 q+ kfor i=1:n-m+1
# q9 J$ W! X' p; w/ @3 A* A; u3 j
for j=1:m

3 y% e' T+ s# z, A5 T, g/ p7 @; A% h) m- P, F  q
x2m(i,j)=xdate(i+j-1);

, l6 g* \) M' G/ q
% V2 }0 P9 W  \0 ?& Q; W- j( C* xend

2 n% ~( u( _4 y( Q. I9 Wend
) U6 U: m- {# c- I+ q) rx2m;* U( b/ {7 j+ F

& _. M, y) p8 }; e; @! X6 K  Q: w$ E$ e
for i=1:n-m+1) [8 ]- L; Y! ~9 s
- Z9 ~$ w8 t2 Z/ m: T4 W/ o9 n
for j=1:n-m+1
5 T+ j$ k3 i& I/ n8 W/ ]$ A3 W: e
$ }1 R4 m2 y$ Z
if i~=j
+ h# T! \7 U6 P: T1 b2 \
+ _5 W  v) [6 F1 g# I: [: E
d(i,k)=max(abs(x2m(i,-x2m(j,));%
计算各个元素和响应元素的距离
: s) |  g) [: F1 T; B; h
  A" ?9 o  B! o: Ik=k+1;
. w, o' [, E% ^6 F6 ]

7 z* K: L( x. q. z3 I; Q: A9 Tend
1 }( W6 A7 m0 s9 E' [  f' b: U) h$ O
end/ t) j, D% [* f& n; ]5 y* ]
- [% a" Z1 T' m5 E* h; r1 I( n
k=1;
! D7 N  d1 L% U8 a& T
end( F+ d  X5 _- F1 ^; A9 P- h9 M
d;
9 \! t$ S7 A3 _$ e

2 Q) b1 O: w- \$ p( w& K& bfor i=1:n-m+18 U% p; t6 E2 Y5 P; j3 U. g
) Q+ y% e% @, e) ~2 A/ N
[k,l]=size(find(d(i,<r));%
将比R小的个数传送给L
6 S$ E" `2 n8 H  s( ?" G7 p) Q# s' g& F9 Z) P+ b% Z
cr1(1,i)=l;

* L- b5 X% g7 P2 mend
; [/ \! q: A$ u. F6 g; a# E# m- A! w" i4 dcr1;
8 @6 O4 C4 S; H* @* T) z. d
, K0 o  q. w, g  g9 _8 z: Ccr1=(1/(n-m))*cr1;
0 n4 b" N: A! u% ~- vsum1=0;8 Z- l, ]% o/ G* q
for i=1:n-m+14 I2 h! {$ z- N
7 `3 R5 `0 t" `- ^
if cr1(i)~=0
" v) ]: O) c9 z4 T$ B9 }+ I1 O0 k

4 b+ Y8 n7 C1 n3 v7 i" o9 Ysum1=sum1+log(cr1(i));
+ e0 Y' O  b/ s% N* y0 z

/ H/ G4 K' q# o; Tend
9 p) m4 C6 A; ^8 j; a
end
! E$ Q' ]6 _( T& Wcr1=1/(n-m+1)*sum1;) M( ~( L# H7 F/ E! T
cr(1,gn)=cr1;8 A3 z! M1 B. f7 s) `
gn=gn+1;5 w1 `4 r. S4 C& x
m=m+1;
* b* X8 J# D* {0 Yend
, y! T! l& u6 I* j" ycr;3 I8 O2 t# \  ]1 F. E; z
shang=cr(1,1)-cr(1,2);

6 [# d8 _- q& Y8 t' ^! P

- e6 H( v; F2 l: M7 i9 ]0 P' A: W8 c% w8 E" @1 g
% I: Z- b, D/ t9 {; h. z" x
8 K5 [/ f/ D. d0 R; f# ]
function [shang]=ybs(xdate)
, q1 f5 k4 |/ Y1 L; c0 B8 t  Tm=2;
, G1 q$ M5 W& N! S  |4 gn=length(xdate);! [8 }7 z' f0 M! w4 m. n
r=0.2*std(xdate);3 [$ l( `0 W& ^3 |' p; Z- X: H
cr=[];, s. t6 A0 Y) J& o
gn=1;: ?* W/ W* \! f% e) e4 i" W- `
gnmax=m;$ ^2 o: O( i$ ~5 F8 b
while gn<=gnmax
: G0 m3 G6 m* Z8 }- h/ Y) R$ X% {: wx2m=zeros(n-m+1,m);%存放变换后的向量
9 V& }" ~- A( x4 ^; N6 l& E" i. O( Ld=zeros(n-m+1,n-m);% 存放距离结果的矩阵( A2 b1 {3 ?6 l
cr1=zeros(1,n-m+1);%存放; ^5 R) ^4 e% N  \' b; K. F
k=1;
' m. \; H! ^# sfor i=1:n-m+1
9 O! a, e5 {- \) O
! Q9 u- y& F; u- F7 x  e! Mfor j=1:m
! u0 W# z( G9 u& _. i; H& h% u

0 k+ L( k8 U1 o; mx2m(i,j)=xdate(i+j-1);

! a. u/ j% \2 ^; ^8 x3 p- y! {! m( E. A) M/ t& ^
end
1 p% n* P, r! O; n: R6 }  a
end
+ N. [6 r  t4 |3 j; P7 sx2m;! ^& s$ f) J+ U( [8 T* C+ }, v
5 A7 H% d4 ^! _7 E1 f$ k# E) _' ^

( ]+ }  A. `( ^2 h: W2 w7 cfor i=1:n-m+1
' \% s# Z+ p( D: _% M1 Q  k  E' X' f) I1 v, u/ ^
for j=1:n-m+1

# [0 |( Y. v+ I: G% h) e1 s
) U% I2 @2 L8 {  b* e1 F: aif i~=j

2 G9 m( E& m! G) m  o  W$ I) Q# W+ z$ Y! }5 c$ O0 ]
d(i,k)=max(abs(x2m(i,-x2m(j,));%
计算各个元素和响应元素的距离
6 Y3 ^# c, g6 l# _) r) ]: w
# K; R8 B8 z5 o$ tk=k+1;
/ G1 h* {; {4 z# v7 G  t4 h
6 s3 m( ]6 v4 T2 f' V
end

6 N( a2 W$ k2 m# h! V" Lend$ w0 e& J6 M5 K

% U0 ]7 C2 i1 y8 h7 b* G! uk=1;
  M& z# B: \, S# K/ j; K
end6 Z2 C# d! J$ H# _
d;
6 \& j+ ~8 c$ d
2 {9 f5 u, D. L6 A$ i
for i=1:n-m+1* w' m( A; b) f
+ E- t& G7 a* {! q1 D
[k,l]=size(find(d(i,<r));%
将比R小的个数传送给L! l/ q, K/ V. @9 ]4 m. e. l
" ]0 `- m; D/ w' B$ O6 P
cr1(1,i)=l;
7 V+ o4 }) ^  w1 m4 D) }3 d( M& y
end1 E6 c7 a- x+ h" f* k$ a- b# J
cr1;
7 I& n" a4 g8 u7 n# b
! \$ k$ Q- W, c  M! B+ Gcr1=(1/(n-m))*cr1;
( {% G) ~( }* T, m- Qsum1=0;
' @+ D( X$ e5 `5 Pfor i=1:n-m+1
! n1 p( s) L! x6 x
7 }! C- C' U5 p8 \7 h  _3 v4 Ksum1=sum1+cr1(i);

. M% Z: ]0 s4 T
  E6 u; H; ?1 J  Z& o( X. fend
& j* a0 K6 W% Z) q7 `; e
end
7 p6 s, J3 e; u  ]0 hcr1=1/(n-m+1)*sum1;
, F& j8 l  T' ^: x5 R- P2 z* s& S) \cr(1,gn)=cr1;2 ^0 D- M$ J9 E  m) P* [
gn=gn+1;
# K  O) _2 X7 F* U0 em=m+1;
% T+ o' Z# [7 [) zend; o) o. d8 b+ o5 l4 Q
cr;
: Z% t0 S4 A, |: qshang=-log(cr(1,1)/cr(1,2));. t5 ^  y, ]( ?. b1 w
8 X8 w- ^. V" b* s" V9 H& r. U" o
[ 本帖最后由 刹那公子 于 2008-12-27 22:30 编辑 ]
作者: 刹那公子    时间: 2008-12-27 22:31
其中圆脸为
+ ]( i7 v: S/ i0 m$ J" Y: ) 中间没有空格




欢迎光临 下沙论坛 (http://bbs.xiasha.cn/) Powered by Discuz! X3.3