?? fun_fnn_noise_emc.m
字號:
function [FNN_out,m,sigma,w4,error]=Fun_FNN_noise_EMC(x,m,sigma,w4,afaw4,afam,afasig,learning,r,totel,t,snr)
%%%%%%%%%%%%%%====================================$$$$$$$$$$$$$$$$$$$$$$$$
kk1=1;
[i1_t1 j1_t1]=size(m);
[Z1 zz]=size(w4);
k=0;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for pp=1:1:learning
k=k+1
for kk1=1:1:totel
x = awgn(x,snr,'measured');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
y1(:,:,k)=x;
for i=1:1:i1_t1
for j=1:1:j1_t1
y2(i,j,k)=gaussmf(y1(1,i,k),[sigma(i,j,k) m(i,j,k)]); %membership
end
end
y3(:,:,k)=prod(y2(:,:,k),1);%rule
wu(:,:,k)=y3(:,:,k).*w4(kk1,:,k);
y4(kk1,:,k)=sum(wu(:,:,k))/sum(y3(:,:,k));
yy1(kk1)=y4(kk1,:,k);
FNN_out=yy1(kk1);
error(kk1,k)=(yy1(kk1)-r(kk1));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%leaning%%leaning%%leaning%%leaning%%leaning%%leaning%%%%%%%%%%%%
%%%%%%%%%%%%%%leaning%%%%%%%%%%%leaning%%%%%%%%%%%%leaning%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%leaning%%%%%%%%%%%leaning%%%%%%%%%%%%%%%%%%%%%%%%%
for i=1:1:i1_t1
for j=1:1:j1_t1
Jy4(:,:,k)=y4(kk1,:,k)-r(kk1);
Jw4(kk1,j,k)=Jy4(:,:,k)*y3(1,j,k)/sum(y3(:,:,k));
temp_y2(:,:,k)=y2(:,:,k);
temp_y2(i,:,k)=1;
temp2_y2(:,j,k)=prod(temp_y2(:,j,k),1);
Jsigma(i,j,k)=Jy4(:,:,k)*((w4(kk1,j,k)-y4(kk1,:,k))/sum(y3(:,:,k)))*temp2_y2(:,j,k)*(y2(i,j,k)*((y1(1,i,k)-m(i,j,k))^2)/sigma(i,j,k)^3) ;
Jm(i,j,k)=Jy4(:,:,k)*((w4(kk1,j,k)-y4(kk1,:,k))/sum(y3(:,:,k)))*temp2_y2(:,j,k)*(y2(i,j,k)*(y1(1,i,k)-m(i,j,k))/sigma(i,j,k)^2) ;
end
end
w4(kk1,:,k+1)=w4(kk1,:,k)-afaw4.*Jw4(kk1,:,k);
sigma(:,:,k+1)=sigma(:,:,k)-afasig.*Jsigma(:,:,k);
m(:,:,k+1)=m(:,:,k)-afam.*Jm(:,:,k);
end
end
figure(1)
plot(t,y4(:,1,learning),'g');hold on
plot(t,r(:),'r');hold on
legend('FNN','measure')
xlabel('time)');
ylabel('V');
%%%%%%******************************%%%%%%%%%%%%%%%%%%%%%%
figure(2)
for lo=1:1:learning
J(lo,:)=sum(error(:,lo))/(2*lo*totel);
end
lo=1:1:learning;
plot(lo,J(:),'g')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
a=r;
T = t(2)-t(1);
Fs = 1/T;
L = length(a);
NFFT = 2^nextpow2(L);
fft_tmp = fft(a,NFFT)/L;
fft_out = (2*abs(fft_tmp(1:NFFT/2)))';
Freq = Fs/2*linspace(0,1,NFFT/2);
logFreq = log(Freq);
logfft_out = 20*log(fft_out);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(3)
semilogx(Freq,20*log10(fft_out/1e-6),'r') ;hold on
%%%===========%%%%============%%%%============
a=y4(:,1,learning);
T = t(2)-t(1);
Fs = 1/T;
L = length(a);
NFFT = 2^nextpow2(L);
fft_tmp = fft(a,NFFT)/L;
fft_out = (2*abs(fft_tmp(1:NFFT/2)))';
Freq = Fs/2*linspace(0,1,NFFT/2);
logFreq = log(Freq);
logfft_out = 20*log(fft_out);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(3)
semilogx(Freq,20*log10(fft_out/1e-6),'g') ;hold on
legend('measure','FNN')
xlabel('Freqence(Hz)');
ylabel('V.(dBuV)');
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -