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

📄 nonlinear(exp)_flssvm.m

📁 基于模糊的最小支持响亮机,用来分类效果比一些常用的要好很多.
💻 M
字号:
close all;
clear all;
N=5;
M=8;
j=sqrt(-1);
len=100;

theta=[-45*pi/180,-30*pi/180,0*pi/180,10*pi/180,40*pi/180];
s0=2*(rand(1,len)>0.5)-1;
s1=2*(rand(1,len)>0.5)-1;
s2=2*(rand(1,len)>0.5)-1;
s3=2*(rand(1,len)>0.5)-1;
s4=2*(rand(1,len)>0.5)-1;

for i=1:len
   x_bpsk1(i)=sqrt(10.^(-5/10))*s0(i);
    x_bpsk2(i)=sqrt(10.^(8/10))*s1(i);
     x_bpsk3(i)=sqrt(10.^(5/10))*s2(i);
      x_bpsk4(i)=sqrt(10.^(5/10))*s3(i); 
       x_bpsk5(i)=sqrt(10.^(-8/10))*s4(i);
end
s=[x_bpsk1;x_bpsk2;x_bpsk3;x_bpsk4;x_bpsk5];
for i=1:M
    for k=1:N
        A1(i,k)=exp(-j*pi*(i-1)*sin(theta(k)));%array responce
    end
end

rp.mean_v  = 0; % mean of complex-valued AWGN
rp.var_v   = 1; % variance of complex-valued AWGN
vr = sqrt(rp.var_v/2) * randn(M,len) + rp.mean_v;
vi = sqrt(rp.var_v/2) * randn(M,len) + rp.mean_v;
v  = vr + j*vi;
X_nn=A1*s;
X=X_nn+v;
L=100;
%FLS_SVM
r=5000;
y=s2;
B=zeros(L+1,1);
A=zeros(L+1,L+1);
C=zeros(L+1,1);
E=eye(L,L);
lb=0.28;
d=1.2;%0<=d<=2.^1/2,?
mun=0;
MAXmun=0;
u_up=0.9;
u_low=0.1;
u=zeros(L,L);
DIS=zeros(L,L);%输入样本间的距离矩阵
dist=0;
for i=1:L
    for l=1:L
      dist=2*(1-exp(-((X(:,i)-X(:,l))'*(X(:,i)-X(:,l)))/(lb.^2)));
      DIS(i,l)=sqrt(dist);
    end
end


for i=1:L
       for l=1:L
           for P=1:L
               if DIS(l,P)<=d
                  MAXmun=MAXmun+1;
           end
       end
       for n=1:L
           if DIS(i,n)<=d
               mun=mun+1;
           end
       end
    u_i=mun/ MAXmun;
       if u_up<=u_i<=1
          u(i,i)=1;
          else if  u_low<=u_i<=u_up
                   u(i,i)=u_i;
              else u(i,i)=u_low;
              end
       end
end
for i=1:L
    for l=1:L
    D(i,l)=exp(-((X(:,i)-X(:,l))'*(X(:,i)-X(:,l)))/(lb.^2));
    end
end
D=D+1/r*u*E;

w=zeros(M,1);
for i=2:(len+1)
    B(i)=y(i-1);
    A(i,1)=1;
    A(1,i)=1;
    A(2:(len+1),i)=D(:,(i-1));
end
C=inv(A)*B;
% for i=1:len
%     w=w+C(i+1)*X(:,i);
% end
%the out data 
f=zeros(1,len);
out=0;
for i=1:len
    for l=1:L
    out=out+exp(-((X(:,l)-X(:,i))'*(X(:,l)-X(:,i)))/(lb.^2));
    end
    f(i)=sign(real(out+C(1)));
end

sita1=[-90:2:90];
sita=sita1*pi/180;
G_sita=zeros(1,length(sita));
a_sita_i=zeros(M,length(sita));
for i=1:length(sita)
     Gsita=0;
     a_sita_i(:,i)=[1;exp(-j*pi*sin(sita(i)));exp(-j*2*pi*sin(sita(i)));exp(-j*3*pi*sin(sita(i)));exp(-j*4*pi*sin(sita(i)));exp(-j*5*pi*sin(sita(i)));exp(-j*6*pi*sin(sita(i)));exp(-j*7*pi*sin(sita(i)))];
       for l=1:L
         K=exp(-((a_sita_i(:,i)-X(:,l))'*(a_sita_i(:,i)-X(:,l)))/(lb.^2));
         Gsita= Gsita+a(l)*K;
      end
     G_sita(i)=Gsita;
    
end

figure;
plot(sita1,10*log10(abs(G_sita)));
grid on ;

⌨️ 快捷键说明

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