5.脉内调制识别
识别思路:
首先分别进行FFT变化,如果有离散谱线出现,那么该信号时常规脉冲信号
如果2次方谱出现离散谱线,则该信号时BPSK;如果四次方谱出现离散谱线,则该信号是
QPSK信号
6•估计频率
7•估计噪声功率、PA
常规际冲信号噪声功窣为1・094559W
BPSK馆号噪肓功奉为1・094559W
QP5K信号噪声功荤为L094559*
LFM借号曜R功率^]L.187327W
A»l
实验程序:
N=2000;%%%timelength
B=0.3;
SNR=20;%%%dBpulse_width=1OOO;
delay=500;%%%timedelayfc=1OO;%%%carryfrequency
r=10;%g过采样率
%常规脉冲
v1=4;%设置门限
t=0:
pulse_width-1;
noise=sqrt(0.5)*(randn(1,N)+j*randn(1,N));%噪声功率1W
%输出常规
y=sqrt(10A(SNR/10))*exp(j*2*pi*fc*t);%信号功率50w
normal=[zeros(1,delay),y,zeros(1,N-pulse_width-delay)]+noise;
脉冲信号
TOA1=min(find(normal>=v1));%到达时间
TOE1=max(find(normal>=v1));%脉冲结束时间
fprintf('常规脉冲信号到达时间TOA为%d\n',T0A1);
pw1=TOE1-TOA1;%脉宽
fprintf('常规脉冲信号的脉宽PW为%d\n',pw1);
z=zeros(1,pw1);
p=var(z)-var(noise);
figure
(1)
plot(real(normal));%提取包络,即信号幅度
title('常规脉冲信号包络');
gridon;
%BPSK
figure
(2)
v2=3;%设置门限
s=randsrc(1,pulse_width/r,[1,-1]);
rec=rectpulse(s,r);bpsk=[zeros(1,delay),rec.*y,zeros(1,N-pulse_width-delay)]+noise;
TOA2=min(find(bpsk>=v2));%到达时间
TOE2=max(find(bpsk>=v2));%脉冲结束时间
fprintf('BPSK到达时间TOA为%d\n',TOA2);
pw2=TOE2-TOA2;%脉宽
fprintf('BPSK脉宽PW为%d\n',pw2);
plot(real(bpsk));
title('BPSK信号包络');
gridon;
%QPSK
figure(3)
v3=3;%门限设置
ss=randsrc(1,pulse_width/r,[1,-1,j,-j]);
recc=rectpulse(s,r);qpsk=[zeros(1,delay),recc.*y,zeros(1,N-pulse_width-delay)]+noise;
TOA3=min(find(qpsk>=v3));%到达时间
TOE3=max(find(qpsk>=v3));%脉冲结束时间
fprintf('QPSK到达时间TOA为%d\n',TOA3);pw3=TOE2-TOA3;%脉宽
fprintf('QPSK脉宽PW为%d\n',pw3);
plot(real(qpsk));
title('QPSK信号包络');
gridon;
%LFM
figure(4)
v4=3;
yy=sqrt(10A(SNR/10))*exp(j*(2*pi*fc*t+pi*B/pulse_width*t.A2));lfm=[zeros(1,delay),yy,zeros(1,N-pulse_width-delay)]+noise;
TOA4=min(find(lfm>=v4));%到达时间
TOE4=max(find(lfm>=v4));%脉冲结束时间
fprintf('LFM到达时间TOA为%d\n',TOA4);pw4=TOE4-TOA4;%脉宽
fprintf('BPSK脉宽PW为%d\n',pw2);plot(real(lfm));
title('LFM信号包络');
gridon;
%识别
figure(5)
subplot(411)
plot(fftshift(abs(fft(normal))));
gridon;
subplot(412)
plot(fftshift(abs(fft(bpsk.A2))));
gridon;
subplot(413)
plot(fftshift(abs(fft(qpsk.A4))));
gridon;
subplot(414)
plot(fftshift(abs(fft(lfm))));
gridon;
%噪声功率估计noise_qpsk=sqrt(var([normal(1:
TOA1),normal(TOE1:
2000)]));
fprintf('常规脉冲信号噪声功率为%fW\n',noise_qpsk);noise_bpsk=sqrt(var([bpsk(1:
TOA2),normal(TOE2:
2000)]));
fprintf('BPSK信号噪声功率为%fW\n',noise_bpsk);
noise_qpsk=sqrt(var([qpsk(1:
TOA3),qpsk(TOE3:
2000)]));
fprintf('QPSK信号噪声功率为%fW\n',noise_qpsk);noise_lfm=sqrt(var([lfm(1:
TOA4),lfm(TOE4:
2000)]));fprintf('LFM信号噪声功率为%fW\n',noise_lfm);