下沙论坛
标题:
样本熵 近似熵 代码 应用于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# ~ h
m=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 ~, J
while gn<=gnmax
6 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 N
cr1=zeros(1,n-m+1);%
存放
2 L( p0 k, ^7 A7 s
k=1;
' w# I1 a, u1 p. W8 q+ k
for 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* x
end
2 n% ~( u( _4 y( Q. I9 W
end
) U6 U: m- {# c- I+ q) r
x2m;
* 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: I
k=k+1;
. w, o' [, E% ^6 F6 ]
7 z* K: L( x. q. z3 I; Q: A9 T
end
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& b
for i=1:n-m+1
8 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( ?" G
7 p) Q# s' g& F9 Z) P+ b% Z
cr1(1,i)=l;
* L- b5 X% g7 P2 m
end
; [/ \! q: A$ u. F6 g; a# E# m- A! w" i4 d
cr1;
8 @6 O4 C4 S; H* @* T) z. d
, K0 o q. w, g g9 _8 z: C
cr1=(1/(n-m))*cr1;
0 n4 b" N: A! u% ~- v
sum1=0;
8 Z- l, ]% o/ G* q
for i=1:n-m+1
4 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 Y
sum1=sum1+log(cr1(i));
+ e0 Y' O b/ s% N* y0 z
/ H/ G4 K' q# o; T
end
9 p) m4 C6 A; ^8 j; a
end
! E$ Q' ]6 _( T& W
cr1=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 Y
end
, y! T! l& u6 I* j" y
cr;
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 T
m=2;
, G1 q$ M5 W& N! S |4 g
n=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% {: w
x2m=zeros(n-m+1,m);%
存放变换后的向量
9 V& }" ~- A( x4 ^; N6 l& E" i. O( L
d=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! ^# s
for i=1:n-m+1
9 O! a, e5 {- \) O
! Q9 u- y& F; u- F7 x e! M
for j=1:m
! u0 W# z( G9 u& _. i; H& h% u
0 k+ L( k8 U1 o; m
x2m(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 s
x2m;
! ^& s$ f) J+ U( [8 T* C+ }, v
5 A7 H% d4 ^! _7 E1 f$ k# E) _' ^
( ]+ } A. `( ^2 h: W2 w7 c
for 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: a
if 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$ t
k=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" L
end
$ w0 e& J6 M5 K
% U0 ]7 C2 i1 y8 h7 b* G! u
k=1;
M& z# B: \, S# K/ j; K
end
6 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
end
1 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+ G
cr1=(1/(n-m))*cr1;
( {% G) ~( }* T, m- Q
sum1=0;
' @+ D( X$ e5 `5 P
for i=1:n-m+1
! n1 p( s) L! x6 x
7 }! C- C' U5 p8 \7 h _3 v4 K
sum1=sum1+cr1(i);
. M% Z: ]0 s4 T
E6 u; H; ?1 J Z& o( X. f
end
& j* a0 K6 W% Z) q7 `; e
end
7 p6 s, J3 e; u ]0 h
cr1=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 e
m=m+1;
% T+ o' Z# [7 [) z
end
; o) o. d8 b+ o5 l4 Q
cr;
: Z% t0 S4 A, |: q
shang=-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