伪随机相位编码脉冲雷达信号处理
伪随机相位编码脉冲雷达信号处理
- 发射信号建模(M 序列二相编码)
- 回波生成(距离-多普勒-信噪比可调)
- 脉冲压缩(匹配滤波)
- FFT 多普勒处理
- 单目标/双目标仿真场景
- 距离/速度分辨力与旁瓣抑制分析
一、核心信号模型
| 符号 | 含义 | 典型值(可自定义) |
|---|---|---|
f0 |
载频 | 10 GHz |
fc |
码速率 | 22 MHz(学号后两位示例) |
N |
码长 | 127(M 序列) |
Tp |
子脉冲宽度 | 1/fc ≈ 45.5 ns |
Tr |
PRI | 10 μs(占空比 10 %) |
SNR |
回波信噪比 | -35 dB ~ 10 dB |
v |
目标速度 | 0 ~ 1000 m/s |
d |
目标距离 | 0 ~ 10 km |
二、MATLAB 代码骨架
clc; clear; close all;
%% 1. 参数输入
f0 = 10e9; fc = 22e6; N = 127;
Tp = 1/fc; Tr = 10e-6;
SNR = 10; d = 3000; v = 150;
%% 2. M 序列生成
mSeq = mgen(7); % 7 级移位寄存器 → 127 位
code = 1 - 2*mSeq; % 双相编码:±1
%% 3. 发射信号
t = linspace(0,N*Tp,N*1000);
tx = code.' .* exp(1j*2*pi*f0*t);
%% 4. 回波信号
tau = 2*d/3e8; fd = 2*v*f0/3e8;
rxDelay = floor(tau/Tp);
rx = circshift(code,rxDelay).' .* exp(1j*2*pi*(f0+fd)*t);
rx = awgn(rx,SNR,'measured');
%% 5. 脉冲压缩(匹配滤波)
mf = conj(fliplr(code)); % 匹配滤波器系数
pc = conv(rx,mf,'same');
[pcMag,~] = envelope(abs(pc));
%% 6. FFT 多普勒处理
L = 32; % 相干脉冲数
rxMat = reshape(rx,N,[]);
dopplerFFT = fft(rxMat,[],2);
dopplerMag = abs(dopplerFFT);
%% 7. 可视化
figure;
subplot(3,1,1); plot(t*1e6,real(tx)); title('发射信号实部');
subplot(3,1,2); plot(t*1e6,abs(pc)); title('脉冲压缩输出'); grid;
subplot(3,1,3); imagesc(abs(dopplerMag)); colorbar;
xlabel('距离单元'); ylabel('多普勒单元'); title('距离-多普勒图');
三、关键处理步骤说明
-
脉冲压缩
- 压缩比 = 码长 N
- 距离分辨率
ΔR = c·Tp/2 = 6.82 m - 主瓣旁瓣比(PSL)≈ 1/N(M 序列理想)
-
FFT 多普勒处理
- 多普勒分辨率
Δfd = 1/(L·Tr) ≈ 3.125 kHz - 速度分辨率
Δv = λ·Δfd/2 ≈ 0.47 m/s
- 多普勒分辨率
-
双目标仿真
- 在代码中增加第二目标:
d2 = d+Δd,v2 = v+Δv,观察旁瓣遮蔽现象 - 抑制旁瓣:加汉宁窗
mf = mf .* hann(N)'
- 在代码中增加第二目标:
参考代码 伪随机相位编码脉冲雷达的信号处理 www.youwenfan.com/contentcnf/45919.html
通过调节码长、SNR、目标距离/速度即可直观观察分辨力、旁瓣抑制与多普勒敏感特性。
浙公网安备 33010602011771号