系列文章目录
文章目录
前言
为实现各种辐射源信号的分选识别以及定位,首先需要对辐射源信号特性有一个充分了解,根据各类辐射源特点从众多信号冲分离出来,甚至去除辐射源调制信息的影响,实现信号长时间相干定位处理,提高定位精度。本文主要记录目前了解到的雷达脉冲信号时域、频域、时频域以及模糊函数特性,作为后续辐射源分选识别以及定位研究的笔记,当然,若对相关行业的人有所启发,也欢迎能在评论区提出建议,或自身研究心得。
一、调频类脉冲雷达
1.1、常规脉冲雷达
矩形脉冲包络,没有相位调制信息。下图分别展示了这类脉冲波形的时域、频谱、时频图以及模糊函数特性。
时域实部和虚部 时域模值和相位
频谱图 时频图
模糊函数 模糊函数(俯视图)
模糊函数(0频) 模糊函数(0时延)
clear;close all;clc;
%%
% 矩形脉冲波形(非调制)
%------------------------------波形分析------------------------------------
%% 波形参数
waveform = phased.RectangularWaveform;
waveform.SampleRate = 5e6; % 采样率
waveform.DurationSpecification = 'Pulse width'; % 脉冲持续时间设置方式,'Pulse width' or 'Duty cycle'
waveform.PulseWidth = 20e-6; % 脉宽
waveform.PRF = 5000; % PRF间隔
xt = step(waveform);
%% 信号实部/虚部
figure;
plot(real(xt));
hold on;
plot(imag(xt));
title('信号实部/虚部');
legend('实部','虚部');
%% 信号模值/相位
figure;
plot(abs(xt));
hold on;
plot(angle(xt));
title('信号模值/相位');
legend('模值','相位');
%% 信号频谱
f=linspace(-waveform.SampleRate/2,waveform.SampleRate/2,length(xt));
figure;
plot(f,abs(fftshift(fft(xt))));
xlabel('采样率(Hz)');
title('信号频谱');
%% 信号时频图
window = blackman(128);
noverlap = 32;
nfft = 512;
[s,f,t] = spectrogram(xt,window,noverlap,nfft,waveform.SampleRate,'centered');
figure;
imagesc(t,f,abs(s));
xlabel('时间(s)');
ylabel('频率(Hz)');
title('信号时频图');
%% 模糊函数
[afmag,delay,doppler] = ambgfun(xt,waveform.SampleRate,waveform.PRF);
[ambrect1,delayrect] = ambgfun(xt,waveform.SampleRate,...,
waveform.PRF,'Cut','Doppler','CutValue',0);
[ambrect2,dopplerrect] = ambgfun(xt,waveform.SampleRate,...,
waveform.PRF,'Cut','Delay','CutValue',0);
figure;
mesh(delay,doppler,abs(afmag));
xlabel('时间(s)');
ylabel('频率(Hz)');
title('信号模糊函数');
figure;
plot(delayrect*10^6,ambrect1);
xlabel('时延 (\mu sec)');
title('0Hz多普勒频点处的自相关函数');
figure;
plot(dopplerrect/10^6,ambrect2);
xlabel('多普勒频率 (MHz)');
title('0s时延处的自相关函数');
1.2、线性调频脉冲雷达
矩形脉冲包络,相位存在线性调频调制。下图分别展示了这类脉冲波形的时域、频谱、时频图以及模糊函数特性。
时域实部和虚部 时域模值和相位
频谱图 时频图
模糊函数 模糊函数(俯视图)
模糊函数(0频) 模糊函数(0时延)
%------------------------------波形分析------------------------------------
%% 波形参数
waveform = phased.LinearFMWaveform;
waveform.SampleRate = 5e6; % 采样率
waveform.DurationSpecification = 'Pulse width'; % 脉冲持续时间设置方式,'Pulse width' or 'Duty cycle'
waveform.PulseWidth = 20e-6; % 脉宽
waveform.PRF = 5000; % PRF间隔
waveform.SweepBandwidth = 1e6; % 频扫带宽
waveform.SweepDirection = 'Up'; % 'Up' or 'Down'
waveform.SweepInterval = 'Symmetric'; % 'Positive' or 'Symmetric'
% waveform.Envelope = 'Gaussian'; % 'Rectangular' or 'Gaussian'.
xt = step(waveform);
%% 信号实部/虚部
figure;
plot(real(xt));
hold on;
plot(imag(xt));
title('信号实部/虚部');
legend('实部','虚部');
%% 信号模值/相位
figure;
plot(abs(xt));
hold on;
plot(angle(xt));
title('信号模值/相位');
legend('模值','相位');
%% 信号频谱
f=linspace(-waveform.SampleRate/2,waveform.SampleRate/2,length(xt));
figure;
plot(f,abs(fftshift(fft(xt))));
xlabel('采样率(Hz)');
title('信号频谱');
%% 信号时频图
window = blackman(16);
noverlap = 10;
nfft = 512;
[s,f,t] = spectrogram(xt,window,noverlap,nfft,waveform.SampleRate,'centered');
figure;
imagesc(t,f,abs(s));
xlabel('时间(s)');
ylabel('频率(Hz)');
title('信号时频图');
%% 模糊函数
[afmag,delay,doppler] = ambgfun(xt,waveform.SampleRate,waveform.PRF);
[ambLFM1,delayLFM] = ambgfun(xt,waveform.SampleRate,...,
waveform.PRF,'Cut','Doppler','CutValue',0);
[ambLFM2,dopplerLFM] = ambgfun(xt,waveform.SampleRate,...,
waveform.PRF,'Cut','Delay','CutValue',0);
figure;
mesh(delay,doppler,abs(afmag));
xlabel('时间(s)');
ylabel('频率(Hz)');
title('信号模糊函数');
figure;
plot(delayLFM*10^6,ambLFM1);
xlabel('时延 (\mu sec)');
title('0Hz多普勒频点处的自相关函数');
figure;
plot(dopplerLFM/10^6,ambLFM2);
xlabel('多普勒频率 (MHz)');
title('0s时延处的自相关函数');
1.3、步进频雷达
矩形脉冲包络,脉间频率逐渐递增。下图分别展示了这类脉冲波形的时域、频谱、时频图以及模糊函数特性。
时域实部和虚部 时域模值和相位
频谱图 时频图
模糊函数 模糊函数(俯视图)
模糊函数(0频) 模糊函数(0时延)
%------------------------------波形分析------------------------------------
%% 波形参数
waveform = phased.SteppedFMWaveform;
waveform.SampleRate = 5e6; % 采样率
waveform.DurationSpecification = 'Pulse width'; % 脉冲持续时间设置方式,'Pulse width' or 'Duty cycle'
waveform.PulseWidth = 20e-6; % 脉宽
waveform.PRF = 5000; % PRF间隔
waveform.FrequencyStep = 500e3; % 步进间隔
waveform.NumSteps = 3; % 步进数量
waveform.OutputFormat = 'Pulses'; % 输出信号的格式为'Pulses' or 'Samples'
waveform.NumPulses = 3;
xt = step(waveform);
%% 信号实部/虚部
figure;
plot(real(xt));
hold on;
plot(imag(xt));
title('信号实部/虚部');
legend('实部','虚部');
%% 信号模值/相位
figure;
plot(abs(xt));
hold on;
plot(angle(xt));
title('信号模值/相位');
legend('模值','相位');
%% 信号频谱
f=linspace(-waveform.SampleRate/2,waveform.SampleRate/2,length(xt));
figure;
plot(f,abs(fftshift(fft(xt))));
xlabel('采样率(Hz)');
title('信号频谱');
%% 信号时频图
window = blackman(16);
noverlap = 10;
nfft = 512;
[s,f,t] = spectrogram(xt,window,noverlap,nfft,waveform.SampleRate,'centered');
figure;
imagesc(t,f,abs(s));
xlabel('时间(s)');
ylabel('频率(Hz)');
title('信号时频图');
%% 模糊函数
[afmag,delay,doppler] = ambgfun(xt,waveform.SampleRate,waveform.PRF);
[ambsfm1,delaysfm] = ambgfun(xt,waveform.SampleRate,...,
waveform.PRF,'Cut','Doppler','CutValue',0);
[ambsfm2,dopplersfm] = ambgfun(xt,waveform.SampleRate,...,
waveform.PRF,'Cut','Delay','CutValue',0);
figure;
mesh(delay,doppler,abs(afmag));
xlabel('时间(s)');
ylabel('频率(Hz)');
title('信号模糊函数');
figure;
plot(delaysfm*10^6,ambsfm1);
xlabel('时延 (\mu sec)');
title('0Hz多普勒频点处的自相关函数');
figure;
plot(dopplersfm/10^6,ambsfm2);
xlabel('多普勒频率 (MHz)');
title('0s时延处的自相关函数');
二、相位编码雷达
2.1、Barker编码
矩形脉冲包络,相位存在Barker编码,已知的barker码包括:2位(++或+-),3位(++-),4位(+++-或++-+),5位(+++-+),7位(+++--+-),11位(+++---+--+-),13位(+++++--++-+-+)。下图分别展示了13位Barker相位编码脉冲波形的时域、频谱、时频图以及模糊函数特性。
时域实部和虚部 时域模值和相位
频谱图 时频图
模糊函数 模糊函数(俯视图)
模糊函数(0频) 模糊函数(0时延)
%------------------------------波形分析------------------------------------
%% 波形参数
waveform = phased.PhaseCodedWaveform;
waveform.SampleRate = 5e6; % 采样率
waveform.Code = 'Barker'; % 编码方式
waveform.ChipWidth = 10/waveform.SampleRate; % 码片时间宽度
waveform.NumChips = 13; % 2, 3, 4, 5, 7, 11, or 13
waveform.PRF = 5000; % PRF间隔
xt = step(waveform);
%% 信号实部/虚部
figure;
plot(real(xt));
hold on;
plot(imag(xt));
title('信号实部/虚部');
legend('实部','虚部');
%% 信号模值/相位
figure;
plot(abs(xt));
hold on;
plot(angle(xt));
title('信号模值/相位');
legend('模值','相位');
%% 信号频谱
f=linspace(-waveform.SampleRate/2,waveform.SampleRate/2,length(xt));
figure;
plot(f,abs(fftshift(fft(xt))));
xlabel('采样率(Hz)');
title('信号频谱');
%% 信号时频图
window = blackman(16);
noverlap = 10;
nfft = 512;
[s,f,t] = spectrogram(xt,window,noverlap,nfft,waveform.SampleRate,'centered');
figure;
imagesc(t,f,abs(s));
xlabel('时间(s)');
ylabel('频率(Hz)');
title('信号时频图');
%% 模糊函数
[afmag,delay,doppler] = ambgfun(xt,waveform.SampleRate,waveform.PRF);
[ambbk1,delaybk] = ambgfun(xt,waveform.SampleRate,...,
waveform.PRF,'Cut','Doppler','CutValue',0);
[ambbkt2,dopplerbk] = ambgfun(xt,waveform.SampleRate,...,
waveform.PRF,'Cut','Delay','CutValue',0);
figure;
mesh(delay,doppler,abs(afmag));
xlabel('时间(s)');
ylabel('频率(Hz)');
title('信号模糊函数');
figure;
plot(delaybk*10^6,ambbk1);
xlabel('时延 (\mu sec)');
title('0Hz多普勒频点处的自相关函数');
figure;
plot(dopplerbk/10^6,ambbkt2);
xlabel('多普勒频率 (MHz)');
title('0s时延处的自相关函数');
2.2、Frank编码
矩形脉冲包络,相位存在Frank编码,是LFM脉冲压缩波形的阶跃近似,需要是整数的平方。下图分别展示了36位Frank相位编码脉冲波形的时域、频谱、时频图以及模糊函数特性。
时域实部和虚部 时域模值和相位
频谱图 时频图
模糊函数 模糊函数(俯视图)
模糊函数(0频) 模糊函数(0时延)
%------------------------------波形分析------------------------------------
%% 波形参数
waveform = phased.PhaseCodedWaveform;
waveform.SampleRate = 5e6; % 采样率
waveform.Code = 'Frank'; % 编码方式
waveform.ChipWidth = 10/waveform.SampleRate; % 码片时间宽度
waveform.NumChips = 36; % 整数的平方
waveform.PRF = 5000; % PRF间隔
xt = step(waveform);
%% 信号实部/虚部
figure;
plot(real(xt));
hold on;
plot(imag(xt));
title('信号实部/虚部');
legend('实部','虚部');
%% 信号模值/相位
figure;
plot(abs(xt));
hold on;
plot(angle(xt));
title('信号模值/相位');
legend('模值','相位');
figure;
plot(phase(xt));
%% 信号频谱
f=linspace(-waveform.SampleRate/2,waveform.SampleRate/2,length(xt));
figure;
plot(f,abs(fftshift(fft(xt))));
xlabel('采样率(Hz)');
title('信号频谱');
%% 信号时频图
window = blackman(16);
noverlap = 10;
nfft = 512;
[s,f,t] = spectrogram(xt,window,noverlap,nfft,waveform.SampleRate,'centered');
figure;
imagesc(t,f,abs(s));
xlabel('时间(s)');
ylabel('频率(Hz)');
title('信号时频图');
%% 模糊函数
[afmag,delay,doppler] = ambgfun(xt,waveform.SampleRate,waveform.PRF);
[ambfk1,delayfk] = ambgfun(xt,waveform.SampleRate,...,
waveform.PRF,'Cut','Doppler','CutValue',0);
[ambfk2,dopplerfk] = ambgfun(xt,waveform.SampleRate,...,
waveform.PRF,'Cut','Delay','CutValue',0);
figure;
mesh(delay,doppler,abs(afmag));
xlabel('时间(s)');
ylabel('频率(Hz)');
title('信号模糊函数');
figure;
plot(delayfk*10^6,ambfk1);
xlabel('时延 (\mu sec)');
title('0Hz多普勒频点处的自相关函数');
figure;
plot(dopplerfk/10^6,ambfk2);
xlabel('多普勒频率 (MHz)');
title('0s时延处的自相关函数');
2.3、P1编码
P1、P2、P3和P4多相位编码 。这些编码是LFM脉冲压缩波形的阶跃近似 ,其距离副瓣低,且具有与LFM编码一样的多普勒容忍性,需要是整数的平方。下图分别展示了36位P1相位编码脉冲波形的时域、频谱、时频图以及模糊函数特性。
时域实部和虚部 时域模值和相位
频谱图 时频图
模糊函数 模糊函数(俯视图)
模糊函数(0频) 模糊函数(0时延)
waveform = phased.PhaseCodedWaveform;
waveform.SampleRate = 5e6; % 采样率
waveform.Code = 'P1'; % 编码方式
waveform.ChipWidth = 10/waveform.SampleRate; % 码片时间宽度
waveform.NumChips = 36; % 整数的平方
waveform.PRF = 5000; % PRF间隔
xt = step(waveform);
%% 信号实部/虚部
figure;
plot(real(xt));
hold on;
plot(imag(xt));
title('信号实部/虚部');
legend('实部','虚部');
%% 信号模值/相位
figure;
plot(abs(xt));
hold on;
plot(angle(xt));
title('信号模值/相位');
legend('模值','相位');
figure;
plot(phase(xt));
%% 信号频谱
f=linspace(-waveform.SampleRate/2,waveform.SampleRate/2,length(xt));
figure;
plot(f,abs(fftshift(fft(xt))));
xlabel('采样率(Hz)');
title('信号频谱');
%% 信号时频图
window = blackman(16);
noverlap = 10;
nfft = 512;
[s,f,t] = spectrogram(xt,window,noverlap,nfft,waveform.SampleRate,'centered');
figure;
imagesc(t,f,abs(s));
xlabel('时间(s)');
ylabel('频率(Hz)');
title('信号时频图');
%% 模糊函数
[afmag,delay,doppler] = ambgfun(xt,waveform.SampleRate,waveform.PRF);
[ambP11,delayP1] = ambgfun(xt,waveform.SampleRate,...,
waveform.PRF,'Cut','Doppler','CutValue',0);
[ambP12,dopplerP1] = ambgfun(xt,waveform.SampleRate,...,
waveform.PRF,'Cut','Delay','CutValue',0);
figure;
mesh(delay,doppler,abs(afmag));
xlabel('时间(s)');
ylabel('频率(Hz)');
title('信号模糊函数');
figure;
plot(delayP1*10^6,ambP11);
xlabel('时延 (\mu sec)');
title('0Hz多普勒频点处的自相关函数');
figure;
plot(dopplerP1/10^6,ambP12);
xlabel('多普勒频率 (MHz)');
title('0s时延处的自相关函数');
2.4、P2编码
需要是偶数的平方,下图分别展示了36位P2相位编码脉冲波形的时域、频谱、时频图以及模糊函数特性。
时域实部和虚部 时域模值和相位
频谱图 时频图
模糊函数 模糊函数(俯视图)
模糊函数(0频) 模糊函数(0时延)
%------------------------------波形分析------------------------------------
%% 波形参数
waveform = phased.PhaseCodedWaveform;
waveform.SampleRate = 5e6; % 采样率
waveform.Code = 'P2'; % 编码方式
waveform.ChipWidth = 10/waveform.SampleRate; % 码片时间宽度
waveform.NumChips = 36; % 偶数的平方
waveform.PRF = 5000; % PRF间隔
xt = step(waveform);
%% 信号实部/虚部
figure;
plot(real(xt));
hold on;
plot(imag(xt));
title('信号实部/虚部');
legend('实部','虚部');
%% 信号模值/相位
figure;
plot(abs(xt));
hold on;
plot(angle(xt));
title('信号模值/相位');
legend('模值','相位');
figure;
plot(phase(xt));
%% 信号频谱
f=linspace(-waveform.SampleRate/2,waveform.SampleRate/2,length(xt));
figure;
plot(f,abs(fftshift(fft(xt))));
xlabel('采样率(Hz)');
title('信号频谱');
%% 信号时频图
window = blackman(16);
noverlap = 10;
nfft = 512;
[s,f,t] = spectrogram(xt,window,noverlap,nfft,waveform.SampleRate,'centered');
figure;
imagesc(t,f,abs(s));
xlabel('时间(s)');
ylabel('频率(Hz)');
title('信号时频图');
%% 模糊函数
[afmag,delay,doppler] = ambgfun(xt,waveform.SampleRate,waveform.PRF);
[ambP21,delayP2] = ambgfun(xt,waveform.SampleRate,...,
waveform.PRF,'Cut','Doppler','CutValue',0);
[ambP22,dopplerP2] = ambgfun(xt,waveform.SampleRate,...,
waveform.PRF,'Cut','Delay','CutValue',0);
figure;
mesh(delay,doppler,abs(afmag));
xlabel('时间(s)');
ylabel('频率(Hz)');
title('信号模糊函数');
figure;
plot(delayP2*10^6,ambP21);
xlabel('时延 (\mu sec)');
title('0Hz多普勒频点处的自相关函数');
figure;
plot(dopplerP2/10^6,ambP22);
xlabel('多普勒频率 (MHz)');
title('0s时延处的自相关函数');
2.5、P3编码
需要是整数的平方,下图分别展示了36位P3相位编码脉冲波形的时域、频谱、时频图以及模糊函数特性。
时域实部和虚部 时域相位
频谱图 时频图
模糊函数 模糊函数(俯视图)
模糊函数(0频) 模糊函数(0时延)
%------------------------------波形分析------------------------------------
%% 波形参数
waveform = phased.PhaseCodedWaveform;
waveform.SampleRate = 5e6; % 采样率
waveform.Code = 'P3'; % 编码方式
waveform.ChipWidth = 10/waveform.SampleRate; % 码片时间宽度
waveform.NumChips = 36; % 正整数
waveform.PRF = 5000; % PRF间隔
xt = step(waveform);
%% 信号实部/虚部
figure;
plot(real(xt));
hold on;
plot(imag(xt));
title('信号实部/虚部');
legend('实部','虚部');
%% 信号模值/相位
figure;
plot(abs(xt));
hold on;
plot(angle(xt));
title('信号模值/相位');
legend('模值','相位');
figure;
plot(phase(xt));
%% 信号频谱
f=linspace(-waveform.SampleRate/2,waveform.SampleRate/2,length(xt));
figure;
plot(f,abs(fftshift(fft(xt))));
xlabel('采样率(Hz)');
title('信号频谱');
%% 信号时频图
window = blackman(16);
noverlap = 10;
nfft = 512;
[s,f,t] = spectrogram(xt,window,noverlap,nfft,waveform.SampleRate,'centered');
figure;
imagesc(t,f,abs(s));
xlabel('时间(s)');
ylabel('频率(Hz)');
title('信号时频图');
%% 模糊函数
[afmag,delay,doppler] = ambgfun(xt,waveform.SampleRate,waveform.PRF);
[ambP31,delayP3] = ambgfun(xt,waveform.SampleRate,...,
waveform.PRF,'Cut','Doppler','CutValue',0);
[ambP32,dopplerP3] = ambgfun(xt,waveform.SampleRate,...,
waveform.PRF,'Cut','Delay','CutValue',0);
figure;
mesh(delay,doppler,abs(afmag));
xlabel('时间(s)');
ylabel('频率(Hz)');
title('信号模糊函数');
figure;
plot(delayP3*10^6,ambP31);
xlabel('时延 (\mu sec)');
title('0Hz多普勒频点处的自相关函数');
figure;
plot(dopplerP3/10^6,ambP32);
xlabel('多普勒频率 (MHz)');
title('0s时延处的自相关函数');
2.6、P4编码
需要是整数的平方,下图分别展示了36位P4相位编码脉冲波形的时域、频谱、时频图以及模糊函数特性。
时域实部和虚部 时域相位
频谱图 时频图
模糊函数 模糊函数(俯视图)
模糊函数(0频) 模糊函数(0时延)
%------------------------------波形分析------------------------------------
%% 波形参数
waveform = phased.PhaseCodedWaveform;
waveform.SampleRate = 5e6; % 采样率
waveform.Code = 'P4'; % 编码方式
waveform.ChipWidth = 10/waveform.SampleRate; % 码片时间宽度
waveform.NumChips = 36; % 正整数
waveform.PRF = 5000; % PRF间隔
xt = step(waveform);
%% 信号实部/虚部
figure;
plot(real(xt));
hold on;
plot(imag(xt));
title('信号实部/虚部');
legend('实部','虚部');
%% 信号模值/相位
figure;
plot(abs(xt));
hold on;
plot(angle(xt));
title('信号模值/相位');
legend('模值','相位');
figure;
plot(phase(xt));
%% 信号频谱
f=linspace(-waveform.SampleRate/2,waveform.SampleRate/2,length(xt));
figure;
plot(f,abs(fftshift(fft(xt))));
xlabel('采样率(Hz)');
title('信号频谱');
%% 信号时频图
window = blackman(16);
noverlap = 10;
nfft = 512;
[s,f,t] = spectrogram(xt,window,noverlap,nfft,waveform.SampleRate,'centered');
figure;
imagesc(t,f,abs(s));
xlabel('时间(s)');
ylabel('频率(Hz)');
title('信号时频图');
%% 模糊函数
[afmag,delay,doppler] = ambgfun(xt,waveform.SampleRate,waveform.PRF);
[ambP41,delayP4] = ambgfun(xt,waveform.SampleRate,...,
waveform.PRF,'Cut','Doppler','CutValue',0);
[ambP42,dopplerP4] = ambgfun(xt,waveform.SampleRate,...,
waveform.PRF,'Cut','Delay','CutValue',0);
figure;
mesh(delay,doppler,abs(afmag));
xlabel('时间(s)');
ylabel('频率(Hz)');
title('信号模糊函数');
figure;
plot(delayP4*10^6,ambP41);
xlabel('时延 (\mu sec)');
title('0Hz多普勒频点处的自相关函数');
figure;
plot(dopplerP4/10^6,ambP42);
xlabel('多普勒频率 (MHz)');
title('0s时延处的自相关函数');
总结
本文简单介绍常见脉冲雷达信号的时域、频域、时频域以及模糊函数特性,其中相位编码雷达信号主要有phased工具箱产生,可能和定义中的P1,P2,P3,P4码有所区别,有问题欢迎评论区留言。转载请附链接【杨(_> <_)】的博客_CSDN博客-信号处理,SAR,代码实现领域博主