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

📄 features_atraction.asv

📁 软件无线电中信号调制方式的识别——用人工神经网络的方法
💻 ASV
字号:
%2ASK数字混频正交变换
signal_demode=(1:size(signal_2ask))';
signal_demode_I=cos(2*pi*Fc*signal_demode/Fs);
signal_demode_Q=sin(2*pi*Fc*signal_demode/Fs);
for j=1:size(std_value)
I_unfiltering=signal_2ask_noise(:,j).*signal_demode_I;
Q_unfiltering=signal_2ask_noise(:,j).*signal_demode_Q;
b=fir1(48,0.2);
I=filter(b,1,I_unfiltering);
Q=filter(b,1,Q_unfiltering);
%2ASK调制信号的瞬时特征提取
Amplititude_2ask=2*sqrt(I.^2+Q.^2);
Phase_2ask_un=zeros(size(Amplititude_2ask),1);
Frequency_2ask=zeros(size(Amplititude_2ask)-1,1);
C=zeros(size(Amplititude_2ask),1);
for i=1:size(Amplititude_2ask)
    Phase_2ask_un(i)=atan(Q(i)/I(i));
end
C(1)=0;
for i=2:size(Amplititude_2ask)-1
    if Phase_2ask_un(i+1)-Phase_2ask_un(i)>pi
        C(i)=C(i-1)-2*pi;
    elseif Phase_2ask_un(i+1)-Phase_2ask_un(i)<-pi
        C(i)=C(i-1)+2*pi;
    else C(i)=C(i-1);
    end   
  C(size(Amplititude_2ask,1)) =C(size(Amplititude_2ask,1)-1);
  Phase_2ask=Phase_2ask_un+C;
end

for i=2:size(Frequency_2ask)
     if Phase_2ask(i+1)-Phase_2ask(i)<=-pi/2
         Frequency_2ask(i)=Frequency_2ask(i-1);
     elseif Phase_2ask(i+1)-Phase_2ask(i)>=pi/2
         Frequency_2ask(i)=Frequency_2ask(i-1);
     else
         Frequency_2ask(i)= Phase_2ask(i+1)-Phase_2ask(i);
     end
end
Amplititude_2ask_matrix(:,j)=Amplititude_2ask;
Phase_2ask_matrix(:,j)=Phase_2ask;
Frequency_2ask_matrix(:,j)=Frequency_2ask;
end
figure(8);
subplot(3,1,1);
plot(Amplititude_2ask_matrix(:,6));
axis([1 1000 0 1.5]);
subplot(3,1,2);
plot(Phase_2ask_matrix(:,6));
axis([0 500 -1.5 1.5]);
subplot(3,1,3);
plot(Frequency_2ask_matrix(:,6));
axis([0 500 -1.5 1.5]);


%4ASK数字混频正交变换和瞬时特征提取
signal_demode=(1:size(signal_4ask))';
signal_demode_I=cos(2*pi*Fc*signal_demode/Fs);
signal_demode_Q=sin(2*pi*Fc*signal_demode/Fs);
for j=1:size(std_value)
I_unfiltering=signal_4ask_noise(:,j).*signal_demode_I;
Q_unfiltering=signal_4ask_noise(:,j).*signal_demode_Q;
b=fir1(48,0.2);
I=filter(b,1,I_unfiltering);
Q=filter(b,1,Q_unfiltering);
Amplititude_4ask=2*sqrt(I.^2+Q.^2);
Phase_4ask_un=zeros(size(Amplititude_4ask),1);
Frequency_4ask=zeros(size(Amplititude_4ask)-1,1);
C=zeros(size(Amplititude_4ask),1);
for i=1:size(Amplititude_4ask)
    Phase_4ask_un(i)=atan(Q(i)/I(i));
end
C(1)=0;
for i=2:size(Amplititude_4ask)-1
    if Phase_4ask_un(i+1)-Phase_4ask_un(i)>pi
        C(i)=C(i-1)-2*pi;
    elseif Phase_4ask_un(i+1)-Phase_4ask_un(i)<-pi
        C(i)=C(i-1)+2*pi;
    else C(i)=C(i-1);
    end   
  C(size(Amplititude_4ask,1)) =C(size(Amplititude_4ask,1)-1);
  Phase_4ask=Phase_4ask_un+C;
end
for i=1:size(Frequency_4ask)
     Frequency_4ask(i)= Phase_4ask(i+1)-Phase_4ask(i);
end
Amplititude_4ask_matrix(:,j)=Amplititude_4ask;
Phase_4ask_matrix(:,j)=Phase_4ask;
Frequency_4ask_matrix(:,j)=Frequency_4ask;
end

figure(9);
subplot(3,1,1);
plot(Amplititude_4ask_matrix(:,6));
axis([0 1000 0 1.5]);
subplot(3,1,2);
plot(Phase_4ask_matrix(:,6));
axis([0 1000 -1.5 1.5]);
subplot(3,1,3);
plot(Frequency_4ask_matrix(:,6));
axis([0 1000 -1.5 1.5]);



%2FSK数字混频正交变换和瞬时特征提取
signal_demode=(1:size(signal_2fsk))';
signal_demode_I=cos(2*pi*Fc*signal_demode/Fs);
signal_demode_Q=sin(2*pi*Fc*signal_demode/Fs);
for j=1:size(std_value)
I_unfiltering=signal_2fsk_noise(:,j).*signal_demode_I;
Q_unfiltering=signal_2fsk_noise(:,j).*signal_demode_Q;
b=fir1(48,0.2);
I=filter(b,1,I_unfiltering);
Q=filter(b,1,Q_unfiltering);
Amplititude_2fsk=2*sqrt(I.^2+Q.^2);
Phase_2fsk_un=zeros(size(Amplititude_2fsk),1);
Frequency_2fsk=zeros(size(Amplititude_2fsk)-1,1);
C=zeros(size(Amplititude_2fsk),1);
for i=1:size(Amplititude_2ask)
    Phase_2fsk_un(i)=atan(Q(i)/I(i));
end
C(1)=0;
for i=2:size(Amplititude_2fsk)-1
    if Phase_2fsk_un(i+1)-Phase_2fsk_un(i)>pi
        C(i)=C(i-1)-2*pi;
    elseif Phase_2fsk_un(i+1)-Phase_2fsk_un(i)<-pi
        C(i)=C(i-1)+2*pi;
    else C(i)=C(i-1);
    end   
  C(size(Amplititude_2fsk,1)) =C(size(Amplititude_2fsk,1)-1);
  Phase_2fsk=Phase_2fsk_un+C;
end

for i=2:size(Frequency_2fsk)
    if Phase_2fsk(i+1)-Phase_2fsk(i)<-pi/2
         Frequency_2fsk(i)=Frequency_2fsk(i-1);
     else
        Frequency_2fsk(i)= Phase_2fsk(i+1)-Phase_2fsk(i);    
    end
end

Amplititude_2fsk_matrix(:,j)=Amplititude_2fsk;
Phase_2fsk_matrix(:,j)=Phase_2fsk;
Frequency_2fsk_matrix(:,j)=Frequency_2fsk;
end
figure(10);
subplot(3,1,1);
plot(Amplititude_2fsk_matrix(:,6));
axis([0 1000 0 1.5]);
subplot(3,1,2);
plot(Phase_2fsk_matrix(:,6));
axis([0 1000 -3 3]);
subplot(3,1,3);
plot(Frequency_2fsk_matrix(:,6));
axis([0 1000 -0.2 0.4]);




%4FSK数字混频正交变换和瞬时特征提取
signal_demode=(1:size(signal_4fsk))';
signal_demode_I=cos(2*pi*Fc*signal_demode/Fs);
signal_demode_Q=sin(2*pi*Fc*signal_demode/Fs);
for j=1:size(std_value)
I_unfiltering=signal_4fsk_noise(:,j).*signal_demode_I;
Q_unfiltering=signal_4fsk_noise(:,j).*signal_demode_Q;
b=fir1(48,0.2);
I=filter(b,1,I_unfiltering);
Q=filter(b,1,Q_unfiltering);
Amplititude_4fsk=2*sqrt(I.^2+Q.^2);
Phase_4fsk_un=zeros(size(Amplititude_4fsk),1);
Frequency_4fsk=zeros(size(Amplititude_4fsk)-1,1);
C=zeros(size(Amplititude_4fsk),1);
for i=1:size(Amplititude_4fsk)
    Phase_4fsk_un(i)=atan(Q(i)/I(i));
end
C(1)=0;
for i=2:size(Amplititude_4fsk)-1
    if Phase_4fsk_un(i+1)-Phase_4fsk_un(i)>pi
        C(i)=C(i-1)-2*pi;
    elseif Phase_4fsk_un(i+1)-Phase_4fsk_un(i)<-pi
        C(i)=C(i-1)+2*pi;
    else C(i)=C(i-1);
    end   
  C(size(Amplititude_4fsk,1)) =C(size(Amplititude_4fsk,1)-1);
  Phase_4fsk=Phase_4fsk_un+C;
end

for i=2:size(Frequency_4fsk)
    
    if Phase_4fsk(i+1)-Phase_4fsk(i)<-pi/2
         Frequency_4fsk(i)=Frequency_4fsk(i-1);
    else
        Frequency_4fsk(i)= Phase_4fsk(i+1)-Phase_4fsk(i);    
    end
end
Amplititude_4fsk_matrix(:,j)=Amplititude_4fsk;
Phase_4fsk_matrix(:,j)=Phase_4fsk;
Frequency_4fsk_matrix(:,j)=Frequency_4fsk;
end

figure(11);
subplot(3,1,1);
plot(Amplititude_4fsk_matrix(:,6));
axis([0 1000 0 1.5]);
subplot(3,1,2);
plot(Phase_4fsk_matrix(:,6));
axis([0 1000 -1.5 1.5]);
subplot(3,1,3);
plot(Frequency_4fsk_matrix(:,6));
axis([0 1000 0 0.6]);

%2PSK数字混频正交变换和瞬时特征提取
signal_demode=(1:size(signal_2psk))';
signal_demode_I=cos(2*pi*Fc*signal_demode/Fs);
signal_demode_Q=sin(2*pi*Fc*signal_demode/Fs);
for j=1:size(std_value)
I_unfiltering=signal_2psk_noise(:,j).*signal_demode_I;
Q_unfiltering=signal_2psk_noise(:,j).*signal_demode_Q;
b=fir1(48,0.2);
I=filter(b,1,I_unfiltering);
Q=filter(b,1,Q_unfiltering);
Amplititude_2psk=2*sqrt(I.^2+Q.^2);
Phase_2psk=zeros(size(Amplititude_2psk),1);
Frequency_2psk=zeros(size(Amplititude_2psk)-1,1);
for i=1:size(Amplititude_2psk)
    Phase_2psk(i)=abs(atan(Q(i)/I(i)));
    if Q(i)>0 
        Phase_2psk(i)=Phase_2psk(i);
    else
        Phase_2psk(i)=-Phase_2psk(i);
    end
end
for i=2:size(Frequency_2psk)
     if Phase_2psk(i+1)-Phase_2psk(i)<=-pi/2
         Frequency_2psk(i)=Frequency_2psk(i-1);
     elseif Phase_2psk(i+1)-Phase_2psk(i)>=pi/2
         Frequency_2psk(i)=Frequency_2psk(i-1);
     else
         Frequency_2psk(i)= Phase_2psk(i+1)-Phase_2psk(i);
     end
end
Amplititude_2psk_matrix(:,j)=Amplititude_2psk;
Phase_2psk_matrix(:,j)=Phase_2psk;
Frequency_2psk_matrix(:,j)=Frequency_2psk;
end
figure(12);
subplot(3,1,1);
plot(Amplititude_2psk_matrix(:,6));
axis([0 1000 0 1.5]);
subplot(3,1,2);
plot(Phase_2psk_matrix(:,6));
axis([0 1000 -2 2]);
subplot(3,1,3);
plot(Frequency_2psk_matrix(:,6));
axis([0 1000 -1.5 1.5]);


%4PSK数字混频正交变换和瞬时特征提取
signal_demode=(1:size(signal_4psk))';
signal_demode_I=cos(2*pi*Fc*signal_demode/Fs);
signal_demode_Q=sin(2*pi*Fc*signal_demode/Fs);
for j=1:size(std_value)
I_unfiltering=signal_4psk_noise(:,j).*signal_demode_I;
Q_unfiltering=signal_4psk_noise(:,j).*signal_demode_Q;
b=fir1(48,0.2);
I=filter(b,1,I_unfiltering);
Q=filter(b,1,Q_unfiltering);
Amplititude_4psk=2*sqrt(I.^2+Q.^2);
Phase_4psk=zeros(size(Amplititude_4psk),1);
Frequency_4psk=zeros(size(Amplititude_4psk)-1,1);
for i=1:size(Amplititude_4psk)
    Phase_4psk(i)=atan(Q(i)/I(i));
    if (Q(i)>=0)&(I(i)>=0)
        Phase_4psk(i)=Phase_4psk(i);
    elseif (Q(i)>=0)&(I(i)<=0)
        Phase_4psk(i)=Phase_4psk(i)+pi;
    elseif (Q(i)<=0)&(I(i)>=0)
        Phase_4psk(i)=Phase_4psk(i);
    elseif (Q(i)<=0)&(I(i)<=0)
        Phase_4psk(i)=Phase_4psk(i)-pi;
    end
end
for i=2:size(Frequency_4psk)
    if Phase_4psk(i+1)-Phase_4psk(i)<=-pi/2
         Frequency_4psk(i)=Frequency_4psk(i-1);
     elseif Phase_4psk(i+1)-Phase_4psk(i)>=pi/2
         Frequency_4psk(i)=Frequency_4psk(i-1);
     else
         Frequency_4psk(i)= Phase_4psk(i+1)-Phase_4psk(i);
     end
end

Amplititude_4psk_matrix(:,j)=Amplititude_4psk;
Phase_4psk_matrix(:,j)=Phase_4psk;
Frequency_4psk_matrix(:,j)=Frequency_4psk;
end
figure(13);
subplot(3,1,1);
plot(Amplititude_4psk_matrix(:,6));
axis([0 1000 0 1.5]);
subplot(3,1,2);
plot(Phase_4psk_matrix(:,6));
axis([0 1000 -4 4]);
subplot(3,1,3);
plot(Frequency_4psk_matrix(:,6));
axis([0 1000 -1.5 1.5]);



%16QAM数字混频正交变换和瞬时特征提取
signal_demode=(1:size(signal_qam))';
signal_demode_I=cos(2*pi*Fc*signal_demode/Fs);
signal_demode_Q=sin(2*pi*Fc*signal_demode/Fs);
for j=1:size(std_value)
I_unfiltering=signal_qam_noise(:,j).*signal_demode_I;
Q_unfiltering=signal_qam_noise(:,j).*signal_demode_Q;
b=fir1(48,0.2);
I=filter(b,1,I_unfiltering);
Q=filter(b,1,Q_unfiltering);
Amplititude_qam=2*sqrt(I.^2+Q.^2);
Phase_qam=zeros(size(Amplititude_qam),1);
Frequency_qam=zeros(size(Amplititude_qam)-1,1);
for i=1:size(Amplititude_qam)
    Phase_qam(i)=atan(Q(i)/I(i));
     if (Q(i)>=0)&(I(i)>=0)
        Phase_qam(i)=Phase_qam(i);
    elseif (Q(i)>=0)&(I(i)<=0)
        Phase_qam(i)=Phase_qam(i)+pi;
    elseif (Q(i)<=0)&(I(i)>=0)
        Phase_qam(i)=Phase_qam(i);
    elseif (Q(i)<=0)&(I(i)<=0)
        Phase_qam(i)=Phase_qam(i)-pi;
    end
end
for i=2:size(Frequency_qam) 
    if Phase_qam(i+1)-Phase_qam(i)<=-pi/2
         Frequency_qam(i)=Frequency_qam(i-1);
     elseif Phase_qam(i+1)-Phase_qam(i)>=pi/2
         Frequency_qam(i)=Frequency_qam(i-1);
     else
     Frequency_qam(i)= Phase_qam(i+1)-Phase_qam(i);
 end
end
Amplititude_qam_matrix(:,j)=Amplititude_qam;
Phase_qam_matrix(:,j)=Phase_qam;
Frequency_qam_matrix(:,j)=Frequency_qam;
end
figure(14);
subplot(3,1,1);
plot(Amplititude_qam_matrix(:,6));
axis([0 1000 0 1.5]);
subplot(3,1,2);
plot(Phase_qam_matrix(:,6));
axis([0 1000 -4 4]);
subplot(3,1,3);
plot(Frequency_qam_matrix(:,6));
axis([0 1000 -1.5 1.5]);





⌨️ 快捷键说明

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