📄 waveletrma.txt
字号:
附录:
1、小波多分辨分析核心代码(DELPHI 7.0下调试通过)
//滤波器系数
function db4():real;
var
k,isgn:integer;
begin
// int k,isgn;
// GIVED BY DAUBECHIES */
// g=(-1)**n*h(1-n) */
h[0]:=0.2303778133088964;
h[1]:=0.7148465705529154;
h[2]:=0.6308807679398597;
h[3]:=-0.0279837694168599;
h[4]:=-0.1870348117190931;
h[5]:=0.0308413818355607;
h[6]:=0.0328830116668852;
h[7]:=-0.0105974017850890;
{ h[0]:=0.1629;
h[1]:=0.5055;
h[2]:=0.4461;
h[3]:=-0.0198;
h[4]:=-0.1323;
h[5]:=0.0218;
h[6]:=0.0233;
h[7]:=-0.0075;
}
isgn:=-1;
//for k=0;k<8;k++) {
// g[k]=isgn*h[7-k];
//isgn=-isgn; }
for k:=0 to 7 do
begin
g[k]:=isgn*h[7-k];
isgn:=-isgn;
end;
end;
function wd(Nu:integer;h,g,c,d:array of real):real;
// //decompostion
var
k,n,k2,l:integer;
ck,dk,c0n:real;
begin
for k:=0 to Nu do
begin
ck:=0.0;
dk:=0.0;
for l:=0 to 7 do
begin
n:=k+l;
ck:=ck+c0[n mod Nu]*h[l];
dk:=dk+c0[n mod Nu]*g[l];
end;
c[k]:=ck;
d[k]:=dk;
end;
for k:=0 to nu div 2 do
begin
c0[k]:=c[2*k];
// c0[Nu div 2+k+1]:=d[2*k];
c0[Nu div 2+k+1]:=0;
end;
end;
function wr(Nu:integer;h,g,c,d: array of real):real;
// wavelet reconstruction
var
k,n,l:integer;
ck,cn,dn:real;
begin
n:=0;
for k:=0 to nu div 2 do
begin
c[2*k]:=c0[k];
c[2*k+1]:=0;
d[2*k]:=c0[(Nu div 2)+k+1];
d[2*k+1]:=0;
end;
for k:=0 to Nu do
begin
ck:=0.0;
for l:=0 to 7 do
begin
n:=k-l;
cn:=c[(Nu+1+n) mod (Nu+1)];
dn:=d[(Nu+1+n) mod (Nu+1)];
ck:=ck+cn*h[l]+dn*g[l];
end;
c0[k]:=ck;
end;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -