认知雷达在电子干扰下的接收信号的matlab代码。
时间: 2023-05-24 22:03:15 浏览: 91
A: 对于认知雷达在电子干扰下的接收信号的Matlab代码,我们提供以下代码作为参考:
清除历史数据
```matlab
clear all;
close all;
clc;
```
设定雷达参数
```matlab
% 设置雷达参数
f0 = 5.8e9; % 雷达发射频率5.8Ghz
tau = 1e-5; % 计算周期1e-5s
fs = 1/tau; % 信号采样频率10万次/s
c = 3e8; % 光速3*10^8m/s
lambda = c/f0; % 波长51.73mm
Rmax = 150; % 信号最大距离150m
Tmax = 2*Rmax/c;% 最大时延2*Tmax/c=2*Rmax/3e8
t = linspace(0,Tmax,Tmax*fs)'-Tmax/2;% 时间序列
```
生成发射信号
```matlab
% 生成发射信号
B = 100e6; % 带宽100MHz
Tc = 5e-6; % 单脉冲带宽5us
Tp = 200e-6;
Tr = Tp - Tc;
fc = 200e3; % 载频200kHz
s0 = conj( sqrt(1-((t-Tp/2)/Tr).^2) .* exp(1i*pi*Tc*(t-Tp/2).^2/Tp^2) .* cos(2*pi*fc.*(t-Tp/2)) );
s0(round(length(s0)/2-Tp/tau/2):round(length(s0)/2+Tp/tau/2)) = 0;%滤波消除开机时的噪声
```
模拟目标回波信号
```matlab
% 模拟目标回波信号
N = 4; % 目标数
fD = [500,350,150,-100]*1e3; % 相对速度,分别对应4个目标,正负号表示运动方向
Rt = [60,100,120,140]; % 距离
tauD=Rt*2/c; % 时延
A = [1,1,0.7,0.5]; % 目标强度
% 生成目标回波信号
st = zeros(length(s0),N);
for n = 1:N
sdn = exp(1j*2*pi*(f0+fD(n))*t) .* A(n) .* sqrt(1-((t-tauD(n))/Tp).^2);
st(:,n) = sdn .* conj(s0);
end
```
添加高斯白噪声
```matlab
%添加高斯噪声
snr = 20;
Pn = abs(st(:,1)'*st(:,1))/(10^(snr/10)); %噪声功率
noise = sqrt(Pn) .* randn(length(s0),N);
y = st + noise;
```
进行卷积
```matlab
% 卷积
nfft = 4096;
shift = 1024;
noverlap = nfft - shift;
for n = 1:N
[Pxx(:,n),f] = pwelch(y(:,n),hanning(nfft),noverlap,nfft,fs);
end
```
画出功率谱密度函数
```matlab
% 画功率谱密度函数
figure;
plot(f,10*log10(Pxx(:,1)),'r',f,10*log10(Pxx(:,2)),'g',f,10*log10(Pxx(:,3)),'b',f,10*log10(Pxx(:,4)),'m','linewidth',2);grid on;
legend('目标1','目标2','目标3','目标4');
xlabel('频率(Hz)','fontsize',14);
ylabel('功率谱密度(dbW/Hz)','fontsize',14);
title(['信噪比为',num2str(snr),'dB'],'fontsize',14);
```