⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hzh_nn_ro.m

📁 利用神经网络预测时间序列
💻 M
字号:
%%%%用于对王凤利的数据进行分类,数据在wangfl_data中,
%其中
% aa 为    earlyrub       aa1为双通道的前半部分,aa2为双通道的后半部分
% bb 为    loose          bb1\bb2 
% cc 为    misalignment   cc1\cc2
% dd 为    rub            dd1\dd2 用双通道的后半部分好象效果好一点。
 
% prepare to use the data of bb\cc\dd\ for test the neural network of time series. 
%===================================================================
% 长度为256,两个通道分别试验一下;长度为512,两个通道分别试验一下
%==================================================================
close all
clc

load roto_data_my

[aa,xmin,xmax]=scale(org_budzh,0,1);
[bb,xmin,xmax]=scale(org_budzhsd,0,1);

[cc,xmin,xmax]=scale(org_buph,0,1);


%for i=1:8  %%求取 rub dd为双通道的后半部分 每一段为256点,共8段
 %    dd1_rub(i,:)=dd1(256*(i-1)+1:256*i)';
 %    dd2_rub(i,:)=dd2(256*(i-1)+1:256*i)';
 % end
 
% figure;
% for i=1:8
%     subplot(8,1,i)
%     plot(dd2_rub(i,:))
% end    
 
% for i=1:8  %%求取 loose   bb为双通道的后半部分 每一段为512点,共8段
%     bb1_loose(i,:)=bb1(256*(i-1)+1:256*i)';
%     bb2_loose(i,:)=bb2(256*(i-1)+1:256*i)';
% end
 
% figure;
% for i=1:8
%     subplot(8,1,i)
%     plot(bb2_loose(i,:))
% end  
 
% for i=1:8  %%求取 misalignment  cc为双通道的后半部分 每一段为512点,共8段
%     cc1_misali(i,:)=cc1(256*(i-1)+1:256*i)';
%     cc2_misali(i,:)=cc2(256*(i-1)+1:256*i)';
% end
 
% figure;
% for i=1:8
%     subplot(8,1,i)
%     plot(cc2_misali(i,:))
%end  
%==========================用dd1_rub作模式样本 
nlag=12;
biaozhun=cc(1:512);  % 标准模式

%for i=1:8
%ceshi=cc(1024*(i-1)+1:1024*i);   % 测试模式
%tmp=[biaozhun',ceshi'];
%[x0,train,test]=tsgenf_hzh(tmp,2048,1024,1,nlag);
 [x0,train,test]=tsgenf_hzh(biaozhun,512,256,1,nlag);
%------------******-----------------
%  W1    : Input-to-hidden layer weights. The matrix dimension is
%          dim(W1) = [(# of hidden units) * (inputs + 1)] (the 1 is due to the bias)
%  W2    : hidden-to-output layer weights.
%           dim(W2) = [(outputs)  *  (# of hidden units + 1)]
rand('seed',0);
  W1         = rand(6,nlag+1)-0.5;  % Weights to hidden layer 权值加减-0。5 +0。5有助于预测的准确性
  W2         = rand(1,7)+0.5;  % Weights to output
  NetDef = ['HHHHHH'       
            'L-----'];     
        
    maxiter = 1000;
    stop_crit = 1e-6;
    lambda=1;
    D=1;%加规格化项有助于快速收敛,在其值为 0.031 时均方误差结果理想,  DD=DI.
    trparms=[maxiter stop_crit lambda D];
           
    [W1,W2,PI_vector,iter,lambda]=marq(NetDef,W1,W2,train(:,1:nlag)',train(:,nlag+1)',trparms);
        
    % -----------  Validate Network  -----------
  for i=1:8
   ceshi=cc(256*(i-1)+1:256*i);   % 测试模式
   tmp=[biaozhun(1:256)',ceshi'];
   [x0,train,test]=tsgenf_hzh(tmp,512,256,1,nlag);
    
    [Y_sim,E] = nneval(NetDef,W1,W2,test(:,1:nlag)',test(:,nlag+1)',1);
    % -----------  Plot Cost function  -----------
    figure
    plot(test(:,nlag+1)')
    figure
    semilogy(PI_vector)
    title('Criterion evaluated after each iteration')
    xlabel('Iteration (epoch)')
    ylabel('Criterion')
    grid

    MSE(i)=sum(E.*E)/length(test)
    
    SNR(i)=20*log10(sum(ceshi.*ceshi)/sum(E.*E))
    
end 
     MEAN=mean(SNR)
     STD=std(SNR)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -