clear all
%initiate of data
P=3 %numberof sample
m=1%number of input node
n=10%number of hidden node
N=1%number of ouptut node
%
%a(n) b(n) scale and shifting parameter matrix
%x(P,m) input matrix of P sample
%net(P,n) ouput of hidden node
%y(P,N) output of network
%d(P,N) ideal output of network
% phi(P,n) ouput of hidden node wavelet funciton
%W(N,n)weight value between ouput and hidden
%WW(n,m) weight value between hidden and input node
x=[4;5;6]
d=[1.3;3.6;6.7]
W=rand(N,n)
WW=rand(n,m)
a=ones(1,n)
for j=1:n
b(j)=j*P/n;
end
%%%%%%%%%%%%%%%%%%
%EW(N,n) gradient of W
%EWW(n,m) gradient of WW
%Ea(n) gradient of a
%Eb(n) gradient of b
%%%%%%%%%%%%%%]
epoch=1;
epo=100;
error=0.05;
err=0.01;
delta =1;
lin=0.5;
while (error>=err & epoch<=epo)
u=0;%u is the middle variant
%caculation of net input
for p=1:P
for j=1:n
u=0;
for k=1:m
u=u+WW(j,k)*x(p,k);
end
net(p,j)=u;
end
end
%calculation of morlet 0r mexican wavelet output
for p=1:P
for j=1:n
u=net(p,j);
u=(u-b(j))/a(j);
phi(p,j)=cos(1.75*u)*exp(-u*u/2); %morlet wavelet
%phi(p,j)=(1-u^2)*exp(-u*u/2); %mexican hat wavelet
end
end
%calculation of output of network
for p=1:P
for i=1:N
u=0;
for j=1:n
u=u+W(i,j)*phi(p,j);
end
y(p,i)=delta*abs(u);
end
end
%calculation of error of output
u=0;
for p=1:P
for i=1:N
u=u+abs(d(p,i)*log(y(p,i))+(1-d(p,i)*log(1-y(p,i))));
%u=u+(d(p,i)-y(p,i))^2;
end
end
%u=u/2
error=u;
%calculate of gradient of network
for i=1:N
for j=1:n
u=0;
for p=1:P
u=u+(d(p,i)-y(p,i))*phi(p,j);
end
EW(i,j)=u;
%EW(i,j)=-u;%the resule would be wrong
end
end
for j=1:n
for k=1:m
u=0
for p=1:P
for i=1:N
u=u+(d(p,i)-y(p,i))*W(i,j)*phi(p,j)*x(p,k)/a(j) ;
end
end
EWW(j,k)=u;
%EWW(j,k)=u the result would be wrong
end
end
for j=1:n
u=0
for p=1:P
for i=1:N
u=u+(d(p,i)-y(p,i))*W(i,j)*phi(p,j)/a(j) ;
end
end
Eb(j)=u;
end
for j=1:n
u=0
for p=1:P
for i=1:N
u=u+(d(p,i)-y(p,i))*W(i,j)*phi(p,j)*((net(p,j)-b(j))/b(j))/a(j) ;
end
end
Ea(j)=u;
end
%adjust of weight value
WW=WW-lin*EWW;
W=W-lin*EW;
a=a-lin*Ea;
b=b-lin*Eb;
%number of epoch increase by 1
epoch=epoch+1;
end
相关文章
- 嵌入式小波零树(EZW)算法的过程详解和Matlab代码(3)解码过程
- Matlab短时傅里叶变换和小波变换的时频分析
- 【滤波专题-第6篇】小波阈值去噪方法看这一篇就明白了~(附MATLAB实现)
- 使用 RBF神经网络,结合参考模型,通过神经网络输出被控模型的控制器,实现其对参考模型的跟踪,Matlab 程序
- 基于 RBF 径向基神经网络的自适应控制,原理,实现,Matlab 程序
- 【图像压缩】基于蚁群算法优化小波变换实现图像压缩附matlab代码
- 小波图像重构 Matlab 程序 - V3.0版
- 关于对信号分类后进行小波去噪的尝试(Matlab)
- 小波图像分解与重构程序存在的问题与解决办法
- 自己动手编写小波信号分解与重构的Matlab程序