m基於matlab的雷達訊號分選技術研究,包括時域瞬時自相關法,頻域復倒頻分析法,調製域過零檢測法,時頻小波變換法
1.演算法描述
隨著現代資訊對抗領域的發展,對雷達偵察系統的效能要求也越來越高,雷達訊號分選技術在偵察系統中的應用也顯得尤為重要。雷達訊號分選主要是對接收到的脈衝序列進行去交錯處理,並將提取的雷達訊號特徵資訊進行調製方式識別及威脅等級評估,為作戰策略和作戰計劃提供重要情報。在訊號分選技術的發展程序中,新體制雷達也不斷湧現,導致雷達訊號的種類繁多、調製方式複雜,雷達訊號分選難度不斷升級。雷達訊號分選技術研究,包括時域瞬時自相關法,頻域復倒頻分析法,調製域過零檢測法,時頻小波變換法。
隨著科技的不斷髮展,電子戰在現代戰爭中的地位日漸升高,已然成為繼“海、陸、空、天”之後的第五維戰場。雷達在電子戰中具有舉足輕重的作用,廣泛應用在飛機、導彈、戰艦以及防空系統中。其功能主要體現在對敵方雷達的偵察、干擾和摧毀,同時也要保護我方雷達免遭襲擊[1]。雷達訊號分選不論在對敵雷達偵察還是在反輻射導彈中,都具有關鍵性的作用。雷達訊號分選的效能直接影響到偵察情報的準確性和反輻射導彈的打擊成功率。所以,雷達訊號分選技術一直是雷達對抗的關鍵技術,也是眾多學者的研究熱點。
頻域分析法是利用訊號的頻率域進行分析的方法,倒譜分析法是頻域分析法中的一種。
調製域分析法是對測量得到的訊號載波幅度、訊號載波頻率和訊號相位等資訊進行運算分析,進而得到能夠反映訊號調製資訊的特徵引數的分析方法。調製域分析法可以對各種複雜脈內調製訊號進行有效分析,並且對脈內無意調製資訊也有一定的分析能力。
時頻分析法是近來的一種很熱門的研究方法,它是處理非平穩訊號的有力工具。時頻分析法的基本思想是:設計時間和頻率的聯合函式,通過聯合函式反映訊號在不同時間和不同頻率處的能量強度。
2.模擬效果預覽
matlab2022a模擬結果如下:
3.MATLAB核心程式 `clc;
clear;
close all;
warning off;
%%
T = 5e-6;
B = 30e6;
SNR = 50;%加入噪聲
%LFM訊號的是一段正弦波形,
[St,t] = func_LPM(T,B);
% St = awgn(St,SNR,'measured');
tao = 200;
St_ = conj([St(end-tao+1:end),St(1:end-tao)]);
%瞬時自相關演算法
for i = 1:length(St)
c(i) = St(i)*St_(i);
end
figure;
subplot(221)
plot(t*1e6,real(St));
xlabel('時間 t/s');ylabel('訊號幅度');
title('LPM的實部');
grid on;axis tight;
ylim([-1.2,1.2]);
subplot(222)
plot(t*1e6,imag(St));
xlabel('時間 t/s');ylabel('訊號幅度');
title('LPM的虛部');
grid on;axis tight;
ylim([-1.2,1.2]);
subplot(2,2,[3,4])
plot(real(c))
title('LPM的自相關分析——一段正弦波形');
xlabel('時間 t/s');ylabel('訊號幅度');
%%
%PSK訊號呈現為一條方波,
[St_psk,t]= func_psk(T,B);
% St_psk = awgn(St_psk,SNR,'measured');
St_psk_ = conj([St_psk(end-tao+1:end),St_psk(1:end-tao)]);
for i = 1:length(St_psk)
c_psk(i) = St_psk(i)*St_psk_(i);
end
figure;
subplot(221)
plot(t*1e6,real(St_psk));
xlabel('時間 t/s');ylabel('訊號幅度');
title('PSK訊號的實部');
grid on;axis tight;
xlim([-0.5,0.5]);
subplot(222)
plot(t*1e6,imag(St_psk));
xlabel('時間 t/s');ylabel('訊號幅度');
title('PSK訊號的虛部');
grid on;axis tight;
xlim([-0.5,0.5]);
subplot(2,2,[3,4])
plot(real(c_psk))
xlabel('時間 t/s');ylabel('訊號幅度');
title('PSK的自相關分析——一條方波');
ylim([-1.2,1.2]);
%%
%FSK訊號則為交變訊號和直流訊號的組合
[St_fsk,t]= func_fsk(T,B);
% St_fsk = awgn(St_fsk,SNR,'measured');
St_fsk_ = conj([St_fsk(end-tao+1:end),St_fsk(1:end-tao)]);
for i = 1:length(St_fsk)
c_fsk(i) = St_fsk(i)*St_fsk_(i);
end`