📄 features_atraction.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 + -