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

📄 features_atraction.m

📁 通信系统中用于设别调制方式的5个特征参数的提取
💻 M
字号:
function [Amplititude,Phase,Frequency]=features_atraction(signal_noise,modulation_mode)
Fc=100;%载波频率
Fd=10;%数字传输频率
Fs=1000;%采样频率
K=1;%The legth of message signal
signal_demode=(1:size(signal_noise))';
signal_demode_I=cos(2*pi*Fc*signal_demode/Fs);
signal_demode_Q=sin(2*pi*Fc*signal_demode/Fs);

I_unfiltering=signal_noise.*signal_demode_I;
Q_unfiltering=signal_noise.*signal_demode_Q;
b=fir1(48,0.2);
I=filter(b,1,I_unfiltering);
Q=filter(b,1,Q_unfiltering);

Amplititude=2*sqrt(I.^2+Q.^2);
Phase_un=zeros(size(Amplititude),1);
Frequency=zeros(size(Amplititude)-1,1);
C=zeros(size(Amplititude),1);
for i=1:size(Amplititude)
    Phase_un(i)=atan(Q(i)/I(i));
end
C(1)=0;
if (modulation_mode==1)|(modulation_mode==2)|(modulation_mode==3)|(modulation_mode==4)
   for i=2:size(Amplititude)-1
      if Phase_un(i+1)-Phase_un(i)>pi
        C(i)=C(i-1)-2*pi;
      elseif Phase_un(i+1)-Phase_un(i)<-pi
        C(i)=C(i-1)+2*pi;
       else C(i)=C(i-1);
       end   
    C(size(Amplititude,1)) =C(size(Amplititude,1)-1);
    Phase=Phase_un+C;
  end
elseif (modulation_mode==6)
    for i=1:size(Amplititude)
    Phase(i)=atan(Q(i)/I(i));
    if (Q(i)>=0)&(I(i)>=0)
        Phase(i)=Phase(i);
    elseif (Q(i)>=0)&(I(i)<=0)
        Phase(i)=Phase(i)+pi;
    elseif (Q(i)<=0)&(I(i)>=0)
        Phase(i)=Phase(i);
    elseif (Q(i)<=0)&(I(i)<=0)
        Phase(i)=Phase(i)-pi;
    end
end
elseif (modulation_mode==5)
    for i=1:size(Amplititude)
    Phase(i)=abs(atan(Q(i)/I(i)));
    if Q(i)>0 
        Phase(i)=Phase(i);
    else
        Phase(i)=-Phase(i);
    end
end
elseif (modulation_mode==7)
    for i=1:size(Amplititude)
    Phase(i)=atan(Q(i)/I(i));
     if (Q(i)>=0)&(I(i)>=0)
        Phase(i)=Phase(i);
    elseif (Q(i)>=0)&(I(i)<=0)
        Phase(i)=Phase(i)+pi;
    elseif (Q(i)<=0)&(I(i)>=0)
        Phase(i)=Phase(i);
    elseif (Q(i)<=0)&(I(i)<=0)
        Phase(i)=Phase(i)-pi;
    end
   end
end


for i=2:size(Frequency)
     if Phase(i+1)-Phase(i)<=-pi/2
         Frequency(i)=Frequency(i-1);
     elseif Phase(i+1)-Phase(i)>=pi/2
         Frequency(i)=Frequency(i-1);
     else
         Frequency(i)= Phase(i+1)-Phase(i);
     end
end


⌨️ 快捷键说明

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