参考书目:Digital Processing of Synthetic Aperture Radar Data Algorithms and Implementation
本部分内容作为本人本科毕业设计和研究生阶段的前置学习内容,方便以后查阅。
第一部分 合成孔径雷达基础
第一章 概论
SAR的不同工作模式
信噪比(Signal-to-Noise,SNR)
雷达方程导出SAR信号的信噪比
基本假设:单基地脉冲体制、远场点目标、发收共用天线(Gt=Gr=G)、匹配滤波接收,系统等效噪声温度为 Tsys,接收机噪声系数为 F,总损耗为 L。
1) 从雷达方程得到回波功率
其中,
P_t:峰值发射功率, \lambda:波长, R:斜距, L:含传播/系统等综合损耗
2) 噪声功率与匹配滤波
热噪声单边功率谱密度 N_0=k\,T_\mathrm{sys}\,F(k 为玻尔兹曼常数)。时宽为 \tau 的单个脉冲,经匹配滤波器后在抽样点的最优 SNR:
代入雷达方程得:
以“时间–带宽积(TBP)”表示,若信号带宽为 B:\mathrm{SNR}{1}=\frac{P_t\,G^2\,\lambda^2\,\sigma}{(4\pi)^3\,R^4\,k\,T\mathrm{sys}\,F\,L}\times(\tau B)
未压缩矩形脉冲B\!\approx\!1/\tau\Rightarrow \tau B\!\approx\!1;脉冲压缩(如 LFM)给出处理增益 \tau B>1。
3) 多脉冲积累(处理增益)
相干积累 N 脉冲:\displaystyle \mathrm{SNR}=\mathrm{SNR}_{1}\,N
非相干积累 N 脉冲:\displaystyle \mathrm{SNR}\approx \mathrm{SNR}_{1}\,\sqrt{N}(精确系数略小于 \sqrt{N})
综合(相干积累为例):{\mathrm{SNR}=\frac{P_t\,G^2\,\lambda^2\,\sigma}{(4\pi)^3\,R^4\,k\,T_\mathrm{sys}\,F\,L}\times(\tau B)\times N}
4) 分布目标(面目标)与成像体制的替换
分布目标常以后向散射系数 \sigma^0 和分辨单元面积 A_\mathrm{res} 替代点目标 \sigma:\sigma \Rightarrow \sigma_\mathrm{eq}=\sigma^0\,A_\mathrm{res}
于是{\mathrm{SNR}=\frac{P_t\,G^2\,\lambda^2\,(\sigma^0 A_\mathrm{res})}{(4\pi)^3\,R^4\,k\,T_\mathrm{sys}\,F\,L}\times(\tau B)\times \text{(积累增益)}}
在具体体制(如 SAR 条带/ScanSAR)中,A_\mathrm{res} 与可积累脉冲数的表达不同,但代入思路相同。
距离徒动(Range Cell Migration,RCM)
由于在合成孔径内传感器的移动,雷达与目标的距离随时间变化,这个变化所引起的回波数据的多普勒频移构成了合成孔径处理的基础。
距离徒动校正(Range Cell Migration Correction,RCMC)
要点:不过度增加处理复杂度的同时精确地校正RCM。
第二章 信号处理基础
2.2 线性卷积
2.2.1 连续时间卷积
在连续时域内,卷积可写为(y = s*h)(t)=\int_{-\infty}^{+\infty} s(u)\,h(t-u)\,du =\int_{-\infty}^{+\infty} s(t-u)\,h(u)\,du .
MATLAB手写“时域”线性卷积(不依赖 conv)
function y = lconv_time(x, h)
% LCONV_TIME 时域线性卷积(不调用内置 conv)
% y = lconv_time(x, h)
% 输出 y 的长度为 length(x)+length(h)-1
%
% 说明:默认输出列向量;若两输入均为行向量则输出行向量
x_is_row = isrow(x);
h_is_row = isrow(h);
x = x(:); % 列向量
h = h(:); % 列向量
Nx = length(x);
Nh = length(h);
Ny = Nx + Nh - 1;
y = zeros(Ny, 1);
% 双循环:y[n] = sum_{k} x[k] * h[n-k+1]
for n = 1:Ny
kmin = max(1, n - Nh + 1);
kmax = min(n, Nx);
% 等价于: for k = 1:Nx, 若 1<=n-k+1<=Nh 再累加
for k = kmin:kmax
y(n) = y(n) + x(k) * h(n - k + 1);
end
end
% 若两输入均为行向量,则转为行向量输出
if x_is_row && h_is_row
y = y.';
end
end
% ------------ 示例 -------------
% x = [1 2 3]; h = [1 1 1];
% y = lconv_time(x, h) % -> [1 3 6 5 3]
相关
相关的定义为{\;(s*h)(t)=\int_{-\infty}^{\infty} s(u)\,h(t-u)\,du\;}
与卷积不同:滤波器的时间轴无需进行反转;若滤波器是复的,则还需取共轭。
2.3 傅立叶变换
2.3.1 连续时间傅立叶变换
傅立叶变换的优势:函数g(t)可以表示为一组幅度和相位各不相同的正弦信号的和。
连续时间傅立叶变换:X(f)=\int_{-\infty}^{\infty} x(t)\,e^{-j2\pi f t}\,dt,\qquad x(t)=\int_{-\infty}^{\infty} X(f)\,e^{j2\pi f t}\,df .
%% ctft_demo.m
% 数值连续时间傅里叶变换(CTFT,角频率域)演示
% X(ω) = ∫ x(t) e^{-j ω t} dt, x(t) = (1/2π) ∫ X(ω) e^{j ω t} dω
clear; close all; clc;
%% 全局数值网格设置(可根据信号时间/频率特性调整)
Twin = 10; % 时间窗总时长(秒),[-Twin/2, Twin/2]
dt = 1e-3; % 采样间隔(秒)
t = (-Twin/2:dt:Twin/2).'; % 列向量
wmax = 200; % 频域范围(rad/s)
Nw = 4001; % 频域采样点数(奇数便于对称)
w = linspace(-wmax, wmax, Nw).'; % 列向量
%% 工具函数(见文末):ctft_numeric, ictft, plot_spec, rectfun
%% 示例 1:矩形脉冲 x(t) = rect(t/T0) (宽度 T0)
T0 = 1.0;
x1 = rectfun(t/T0); % rect(t/T0), 中心对齐
[X1w] = ctft_numeric(x1, t, w); % 数值 CTFT
X1w_ana = T0 * sinc((w*T0)/2); % 解析解(sinc(x)=sin(x)/x, x=ωT0/2)
figure('Name','Example 1: Rect pulse');
plot_spec(w, X1w, 'Rect pulse: numeric CTFT');
hold on; plot(w, abs(X1w_ana), 'LineWidth', 1.0, 'LineStyle', '--'); legend('|\bfX_{num}|','|\bfX_{ana}|');
% 重构检查
x1_rec = ictft(w, X1w, t);
err1 = norm(x1 - x1_rec, 2) / norm(x1, 2);
fprintf('Example 1 recon RMSE ratio: %.3e\n', err1);
% Parseval 检查:∫|x(t)|^2 dt ≈ (1/2π)∫|X(ω)|^2 dω
E_time = trapz(t, abs(x1).^2);
E_freq = (1/(2*pi)) * trapz(w, abs(X1w).^2);
fprintf('Example 1 Parseval: time=%.6f, freq=%.6f, rel.err=%.3e\n', E_time, E_freq, abs(E_time-E_freq)/E_time);
%% ---------------------- 本文件尾部的工具函数 ----------------------
function [Xw] = ctft_numeric(x, t, w)
% 数值 CTFT: X(ω) ≈ ∫ x(t) e^{-jωt} dt (trapz 实现)
% 输入: x(Nt×1), t(Nt×1), w(Nw×1); 输出: Xw(Nw×1)
x = x(:); t = t(:); w = w(:);
% 生成 Nt×Nw 的指数矩阵,并沿 t 维做数值积分
E = exp(-1j * (t * w.')); % Nt x Nw
integrand = x .* E; % 隐式广播:每列乘以 x
Xrow = trapz(t, integrand, 1); % 1×Nw
Xw = Xrow.'; % Nw×1
end
function x = ictft(w, Xw, t)
% 数值反变换: x(t) ≈ (1/2π) ∫ X(ω) e^{jωt} dω
% 输入: w(Nw×1), Xw(Nw×1), t(Nt×1); 输出: x(Nt×1)
t = t(:); w = w(:); Xw = Xw(:);
E = exp( 1j * (t * w.')); % Nt x Nw
integrand = (ones(numel(t),1) * Xw.') .* E; % Nt x Nw
x = (1/(2*pi)) * trapz(w, integrand, 2); % Nt×1
end
function plot_spec(w, Xw, ttl)
% 绘制幅度与相位(相位用 unwrap)
if size(w,2)>1, w = w(:); end
if size(Xw,2)>1, Xw = Xw(:); end
tiledlayout(2,1);
nexttile; plot(w, abs(Xw), 'LineWidth', 1.2); grid on;
xlabel('\omega (rad/s)'); ylabel('|X(\omega)|'); title(ttl);
nexttile; plot(w, unwrap(angle(Xw)), 'LineWidth', 1.0); grid on;
xlabel('\omega (rad/s)'); ylabel('\angle X(\omega) (rad)');
end
function y = rectfun(x)
% rect(x):|x|<=1/2 为 1,其他为 0;边界取 1
y = double(abs(x) <= 0.5);
endExample 1 recon RMSE ratio: 5.618e-02
Example 1 Parseval: time=1.001000, freq=0.997840, rel.err=3.157e-03

%% 示例 2:单边指数 x(t)=u(t) e^{-a t}, a>0
a = 2;
x2 = (t>=0).*exp(-a*t);
[X2w] = ctft_numeric(x2, t, w);
X2w_ana = 1./(a + 1j*w);
figure('Name','Example 2: One-sided exponential');
plot_spec(w, X2w, 'u(t)e^{-at}: numeric CTFT');
hold on; plot(w, abs(X2w_ana), 'LineWidth', 1.0, 'LineStyle', '--'); legend('|\bfX_{num}|','|\bfX_{ana}|');
x2_rec = ictft(w, X2w, t);
err2 = norm(x2 - x2_rec, 2) / norm(x2, 2);
fprintf('Example 2 recon RMSE ratio: %.3e\n', err2);
E_time = trapz(t, abs(x2).^2);
E_freq = (1/(2*pi)) * trapz(w, abs(X2w).^2);
fprintf('Example 2 Parseval: time=%.6f, freq=%.6f, rel.err=%.3e\n', E_time, E_freq, abs(E_time-E_freq)/E_time);Example 2 recon RMSE ratio: 7.964e-02
Example 2 Parseval: time=0.250500, freq=0.248911, rel.err=6.345e-03

%% 示例 3:Gaussian x(t)=exp(-a t^2), a>0
ag = 1.5;
x3 = exp(-ag*t.^2);
[X3w] = ctft_numeric(x3, t, w);
X3w_ana = sqrt(pi/ag) * exp(-(w.^2)/(4*ag));
figure('Name','Example 3: Gaussian');
plot_spec(w, X3w, 'exp(-a t^2): numeric CTFT');
hold on; plot(w, abs(X3w_ana), 'LineWidth', 1.0, 'LineStyle', '--'); legend('|\bfX_{num}|','|\bfX_{ana}|');
x3_rec = ictft(w, X3w, t);
err3 = norm(x3 - x3_rec, 2) / norm(x3, 2);
fprintf('Example 3 recon RMSE ratio: %.3e\n', err3);
E_time = trapz(t, abs(x3).^2);
E_freq = (1/(2*pi)) * trapz(w, abs(X3w).^2);
fprintf('Example 3 Parseval: time=%.6f, freq=%.6f, rel.err=%.3e\n', E_time, E_freq, abs(E_time-E_freq)/E_time);Example 3 recon RMSE ratio: 3.037e-16
Example 3 Parseval: time=1.023327, freq=1.023327, rel.err=2.170e-16

%% 进阶:近似“余弦→谱线”(有限窗导致谱泄漏)
f0 = 5; % Hz(为了演示,便于观察)
w0 = 2*pi*f0; % rad/s
x4 = cos(w0*t) .* rectfun(t/4);% 给定4秒窗,近似观测
[X4w] = ctft_numeric(x4, t, w);
figure('Name','Example 4: Windowed cosine');
plot_spec(w, X4w, 'cos(ω0 t) with 4s window');
% 理论理想是 π[δ(ω-ω0)+δ(ω+ω0)];有限窗→近似sinc 主瓣+旁瓣
2.3.2 离散傅立叶变换
2.3.3 傅立叶变换的性质
推导部分参考教材:
[6] A. Papoulis. The Fourier Integral and Its Applications. McGraw-Hill College Division, New York, 1962.
[7] E. O. Brigham. The Fast Fourier Transform: An Introduction to Its Theory and Application. Prentice Hall, Upper Saddle River, NJ, 1974.
[8] R. N. Bracewell. The Fourier Transform and Its Applications. WCB/McGraw-Hill, New York, 3rd edition, 1999.
(1)复共轭
含义: 实信号的谱具厄米对称F(-\omega)=F^*(\omega)。常用于验证回波与脉压结果的谱对称性与相位一致性。
推导:\mathcal{F}\{f^\}(\omega)=\int f^(t)e^{-j\omega t}dt =\left[\int f(t)e^{+j\omega t}dt\right]^* =\left[F(-\omega)\right]^=F^(-\omega).
(2)线性
含义:配滤波、孔径合成等可分步线性处理叠加。
推导: 由积分的线性性直接成立。
(3)尺度变换特性
含义: 频域轴伸缩/重采样(如 Stolt 映射的本质)与时域尺度变化互为倒数关系。
1D:\mathcal{F}\{f(a t)\}(\omega)=\frac{1}{|a|}\,F\!\left(\frac{\omega}{a}\right)
2D 一般线性变换:若g(\boldsymbol{x})=f(\mathbf{A}\boldsymbol{x})(\mathbf{A} 可为缩放、剪切、旋转…),则G(\boldsymbol{\omega})=\frac{1}{|\det\mathbf{A}|}\,F\!\left(\mathbf{A}^{-T}\boldsymbol{\omega}\right)
推导:令u=at\Rightarrow dt=du/a:\int f(at) e^{-j\omega t}dt =\frac{1}{|a|}\int f(u) e^{-j(\omega/a) u}\,du
(4)位移/调制
时间位移:\mathcal{F}\{f(t-t_0)\}=e^{-j\omega t_0}F(\omega).
调制:\mathcal{F}\{f(t)e^{j\omega_0 t}\}=F(\omega-\omega_0).
含义: 距离/方位向平移\Rightarrow频域线性相位;速度引起多普勒中心漂移\Rightarrow频谱搬移。
(5)均值
(6)对称性
(7)Parseval定理
1D:\int_{-\infty}^{\infty} |f(t)|^2 dt=\frac{1}{2\pi}\int_{-\infty}^{\infty} |F(\omega)|^2 d\omega .
含义: 能量/信噪比在时频域保持一致;用于定标与滤波器能量约束。
(8)卷积/乘法
含义: 匹配滤波(脉压/方位压缩)常在频域用“点乘”实现;时域乘窗 \Rightarrow 频域与 sinc 类核卷积(谱泄漏/旁瓣)。
(9)补零
核心: 对长度 N 的序列x[n] 在末尾补零到 L>N 并做 L 点 DFT:X_L[k]=\sum_{n=0}^{L-1}x_{\text{zp}}[n]e^{-j2\pi kn/L} =\sum_{n=0}^{N-1}x[n]e^{-j2\pi kn/L}=X\!\left(e^{j\omega}\right)\big|_{\omega=2\pi k/L}.
这等价于在频域更密集采样 DTFT(插值光滑),并不增加新信息。
含义: 细化距离/方位向像素间隔(视觉上更平滑、便于峰值定位),但不提升真正分辨率;配合峰值插值用于亚像素估计、RVP 补偿等。
(10)二维扭曲和旋转
含义: Keystone 变换、距离-多普勒耦合校正、本振漂移校正等常本质上是 2D 线性变换(剪切/缩放/旋转)在某个域(时-频或频-频)内的实现。
2.3.4 傅立叶变换示例
%% demo_rect_sinc_FT.m
% 演示:rect(t/T) <-> T*sinc(f*T);sinc(t/T) <-> T*rect(f*T)
% 采用 Fourier 变换定义:X(f) = ∫ x(t) e^{-j2π f t} dt ,频率单位 Hz
% 说明:
% 1) 数值CTFT用:X_fft ≈ Δt * FFT{x(t)} 并做fftshift,频率栅格 f = (-N/2:N/2-1)/(N*Δt)
% 2) MATLAB中使用"归一化 sinc"定义:sinc(u) = sin(pi*u)/(pi*u)
clear; close all; clc;
%% 公用参数(时间窗、采样与频率轴)
Trect = 1; % 矩形脉宽(秒)——可自行修改
L = 16*Trect; % 总观察时长(越长,频域越细 & 截断效应越小)
N = 2^15; % 采样点数(越大,频率分辨率越高)
dt = L/N; % 采样间隔
t = (-N/2:N/2-1).' * dt; % 对称时间轴,列向量
[f,~] = make_freq_axis(N, dt); % 频率轴(Hz)
% 自定义函数句柄(避免工具箱依赖)
sincn = @(u) sin(pi*u)./(pi*u); % 归一化sinc,u=0处稍后单独处理
rectp = @(x,Tw) double(abs(x) < Tw/2) + 0.5*double(abs(x) == Tw/2); % 矩形脉冲
%% --------------------- 示例 1:矩形 -> sinc ---------------------
x1 = rectp(t, Trect); % x1(t) = rect(t/Trect)
X1_num = ctft_fft(x1, dt); % 数值CTFT近似
X1_ana = Trect * safe_sinc(f*Trect, sincn); % 解析:T * sinc(f*T)
figure('Name','Rect <-> Sinc','Color','w');
tiledlayout(2,2,"Padding","compact","TileSpacing","compact");
% 时域
nexttile; plot(t, x1, 'LineWidth', 1); grid on;
xlabel('t (s)'); ylabel('x_1(t)'); title('Rect:x_1(t)=rect(t/T)');
xlim([-1.5*Trect, 1.5*Trect]);
% 频域幅度
nexttile; plot(f, abs(X1_num), 'LineWidth', 1); hold on;
plot(f, abs(X1_ana), '--', 'LineWidth', 1);
grid on; xlabel('f (Hz)'); ylabel('|X_1(f)|');
title('FT 幅度:数值 vs 解析'); legend('Numerical (FFT)','Analytic','Location','best');
xlim([-10/Trect, 10/Trect]);
% 频域相位(只在幅度较大处显示更有意义)
mask = abs(X1_ana) > 1e-2*max(abs(X1_ana));
nexttile; plot(f(mask), angle(X1_num(mask)), '.', 'MarkerSize', 6); grid on;
xlabel('f (Hz)'); ylabel('∠X_1(f) (rad)'); title('FT 相位(数值)');
% 误差
nexttile; plot(f, abs(X1_num - X1_ana), 'LineWidth', 1); grid on;
xlabel('f (Hz)'); ylabel('|X_{num}-X_{ana}|'); title('数值-解析 误差');
xlim([-10/Trect, 10/Trect]);
%% --------------------- 示例 2:sinc -> 矩形 ---------------------
Tsinc = 0.25*Trect; % sinc 的时间尺度,可改
x2 = safe_sinc(t/Tsinc, sincn); % x2(t) = sinc(t/Tsinc)
X2_num = ctft_fft(x2, dt); % 数值CTFT近似
% 解析:T * rect(f*T) ;rect(f*T) 的宽度为 1/T
X2_ana = Tsinc * rectp(f, 1/Tsinc);
figure('Name','Sinc <-> Rect','Color','w');
tiledlayout(2,2,"Padding","compact","TileSpacing","compact");
% 时域
nexttile; plot(t, x2, 'LineWidth', 1); grid on;
xlabel('t (s)'); ylabel('x_2(t)'); title('Sinc:x_2(t)=sinc(t/T_s)');
xlim([-6*Tsinc, 6*Tsinc]);
% 频域幅度
nexttile; plot(f, abs(X2_num), 'LineWidth', 1); hold on;
plot(f, abs(X2_ana), '--', 'LineWidth', 1);
grid on; xlabel('f (Hz)'); ylabel('|X_2(f)|');
title('FT 幅度:数值 vs 解析'); legend('Numerical (FFT)','Analytic','Location','best');
xlim([-3/Tsinc, 3/Tsinc]);
% 频域相位(矩形为实非负,解析相位≈0;数值会因截断略波动)
mask2 = abs(X2_ana) > 1e-3*max(abs(X2_ana));
nexttile; plot(f(mask2), angle(X2_num(mask2)), '.', 'MarkerSize', 6); grid on;
xlabel('f (Hz)'); ylabel('∠X_2(f) (rad)'); title('FT 相位(数值)');
% 误差
nexttile; plot(f, abs(X2_num - X2_ana), 'LineWidth', 1); grid on;
xlabel('f (Hz)'); ylabel('|X_{num}-X_{ana}|'); title('数值-解析 误差');
xlim([-3/Tsinc, 3/Tsinc]);
%% ---------- 备注 ----------
% - 增大 L 与 N 可减小截断/采样误差(特别是 sinc 的无限支撑会被时间窗截断)。
% - 若只做DFT演示,可去掉 Δt 标度,此处的 Δt 标度是为了逼近连续型积分定义。
% - 本脚本不依赖专用工具箱;如有 Signal Processing Toolbox,也可用 rectpuls/sinc 直接替代。
%% ===================== 辅助函数 =====================
function [f, df] = make_freq_axis(N, dt)
df = 1/(N*dt);
f = ((-N/2):(N/2-1)).' * df;
end
function X = ctft_fft(x, dt)
% 近似 CTFT:X(f) ≈ Δt * FFTshift( FFT( IFFTshift{x(t)} ) )
X = fftshift( fft( ifftshift(x) ) ) * dt;
end
function y = safe_sinc(u, sincn)
% 处理 u=0 处的 0/0
y = sincn(u);
y(u==0) = 1;
end
2.4 卷积的离散傅立叶变换计算
弃置点 源自循环卷积卷绕错误的点
补零 为了避免错误输出,将两个序列长度都延拓补零至N=n_1+n_2-1,其中n_1 和n_2 为序列初始长度。
为了提高效率,DFT长度N通常选为2的幂。
2.5 信号采样
采样要求与信号类型有关。
2.5.2 信号类型
实信号与复信号
复解调过程(正交解调)将实信号转换为含有相同信息的复信号。
信号带宽
如果信号的最高频率为f_2,最低(正)频率为f_1,则信号带宽为f_2-f_1。
基本频率范围
指能完整保存信号信息的最低频率集合。
基带和非基带信号
对于实信号,基带信号是指最低正频相对于宽带很小的信号。
对于复信号,基带信号是指在一定的采样率下,连续信号的主要能量完全集中在基本范围内的信号。
2.5.3 奈奎斯特采样率和混叠
实信号采样
奈奎斯特采样率 对于有限带宽的连续基带信号,为使采样能正确描述信号信息,采样率必须高于最高信号频率的两倍,该最小采样率。
非基带实信号
奈奎斯特采样定理 采样率必须高于非基带实信号带宽的两倍。
复信号采样
混叠方程
2.6 平滑窗
2.7 插值
2.7.1 sinc插值
例子一:理想(无限长核)sinc 插值
%% 1) 造一个带限离散信号(两条正弦,最高归一化频率 0.35 cycles/sample < 0.5)
n = -20:20; % 离散时间索引
T = 1; % 采样周期(先用 1,方便演示)
x = cos(2*pi*0.10*n) + 0.5*sin(2*pi*0.35*n); % 原离散样本 x[n]
%% 2) 准备要重构的“连续时间”细网格(这里做 16 倍细化)
L = 16; % 细化倍数
t = linspace(n(1), n(end), (numel(n)-1)*L + 1);% 连续时间网格,单位同 n*T
%% 3) 理想 sinc 插值(矢量化实现)
% 公式:x_rec(t) = sum_k x[k] * sinc( (t - k*T)/T )
[tt, nn] = ndgrid(t, n); % 生成所有 (t, n) 配对
S = sinc((tt - nn*T)/T); % 权重矩阵(无限长 sinc)
x_rec = S * x(:); % 对每个 t 做加权求和
%% 4) 可视化
figure; clf
subplot(2,1,1);
stem(n*T, x, 'filled'); hold on; grid on
plot(t, x_rec, 'LineWidth', 1.5);
xlabel('t'); ylabel('幅度');
legend('原始 x[n]','sinc 重构 x(t)');
title('理想 sinc 插值(无限长核)');
%% 5) 和常见插值比较(可选)
subplot(2,1,2);
plot(t, x_rec, 'LineWidth', 1.5); hold on; grid on
x_lin = interp1(n*T, x, t, 'linear'); % 线性插值
x_spl = interp1(n*T, x, t, 'spline'); % 三次样条
plot(t, x_lin, '--');
plot(t, x_spl, ':', 'LineWidth', 1.2);
legend('sinc','linear','spline');
xlabel('t'); ylabel('幅度');
title('不同插值方式对比');要点说明:
这是“数学上的理想重构”,要求已知全体样本(核无限长)。实际中我们只有有限段,因此边缘附近会有误差和振铃(Gibbs-like),图上可见两端略差。
S*x(:) 是把每个 t 的权重与所有样本做一次内积,因此是 O(N\cdot N_\text{out}) 的计算量,N_out 是细网格点数。
例子二:工程常用的“窗化 + 截断”sinc(有限核)
%% 参数
R = 8; % 每侧截断长度(共 2R+1 个 taps)
useWindow = true; % 是否使用窗函数(Hamming)
% 继续沿用上例中的 n, T, x, t
% 预分配
x_rec_win = zeros(size(t));
% 预先生成窗(对 |k|<=R 的离散 offset)
k = -R:R;
if useWindow
win = hamming(2*R+1).'; % 行向量
else
win = ones(1, 2*R+1);
end
% 对每个 t 只与附近 2R+1 个样本相乘求和(简单直观的写法)
for ii = 1:numel(t)
tc = t(ii)/T; % 以样本间隔为单位的连续时间
n0 = floor(tc); % 最近的样本整数索引
idx = n0 + k; % 邻域样本索引
% 限制索引在有效范围内
valid = (idx >= n(1)) & (idx <= n(end));
idxv = idx(valid);
% 计算对应的 sinc 权重并加窗
w = sinc( (t(ii) - idxv*T)/T ); % 核
% 对应的窗系数(按 k 的 valid 子集选择)
wwin = win(valid);
% 汇总求和
xv = x( idxv - n(1) + 1 ); % 取样本值(索引换算)
x_rec_win(ii) = sum( xv .* w .* wwin );
end
%% 绘图对比
figure; clf; grid on; hold on
plot(t, x_rec, 'LineWidth', 1.5); % 无限长(理论参考)
plot(t, x_rec_win, '--', 'LineWidth', 1.5); % 窗化截断
stem(n*T, x, 'filled');
legend('理想 sinc','窗化截断 sinc','原样本','Location','best');
xlabel('t'); ylabel('幅度');
title(sprintf('窗化截断 sinc(R=%d, %s 窗)', R, ternary(useWindow,'Hamming','Rect')));
工程实践建议:
R 取 6–16 通常就很不错;R 越大,越接近理想,但计算量上升。
常见窗:Hamming(折中)、Blackman(旁瓣更低)、Kaiser(可调参数 β)。把 win = kaiser(2*R+1, beta).' 即可试不同 β。
插值越接近区间中部效果越好,最边缘仍会比理想解差一些(因为缺失“无限远”的样本)。
2.8 点目标分析
峰值旁瓣比(PSLR)最大旁瓣与主瓣的高度比
第三章 线性调频信号的脉冲压缩
3.1 概述
脉冲压缩 一种频谱扩展方法,用于最小化峰值功率、最大化信噪比,以及获得高分辨率目标(如获得高灵敏度的目标检测能力或良好的图像质量)。
3.2 线性调频信号
瞬时频率是时间的线性函数,这种信号用于发射,以得到均匀的信号带宽,其在接受信号中则来自传感器运动。3.2.1 时域表达
当f_{\text{cen}} 为0时,信号的复数形式为s(t)=rect(\frac{t}{T})\exp{{j{\pi}Kt^2}}

3.2.2 线性调频脉冲的频谱
3.3 脉冲压缩
3.3.1 脉冲压缩原理
如果发射脉冲的持续时间为T,则每一目标在回波数据中占据相同的时间间隔T,故压缩前的可分辨能力为\rho'=T