线性调频信号 与 脉冲压缩技术的多种实现方法(附MATLAB实现)_信号在相位驻留点邻域附近是缓变的,而在其他时间点上是变的,相位迅变处由于相位周-程序员宅基地

技术标签: matlab  算法  自动驾驶  信号处理  数字信号处理  

线性调频与脉冲压缩

1 线性调频信号

1.1 线性调频信号(时域)

1.1.1 线性调频信号模型

线性调频信号(Chirp, LFM) 是指瞬时频率随时间线性变化的信号。
(1)时域表达式
s ( t ) = r e c t ( t T ) exp ⁡ ( j π K t 2 ) s\left( t \right) = rect\left( {\frac{t}{T}} \right)\exp \left( {j\pi K{t^2}} \right) s(t)=rect(Tt)exp(jπKt2)
其中,T 为时宽,K 为调频率,rect() 为矩形窗函数。
(2)相位
φ ( t ) = π K t 2 \varphi \left( t \right) = \pi K{t^2} φ(t)=πKt2
(3)瞬时频率
f ( t ) = 1 2 π d φ ( t ) d t = 1 2 π d ( π K t 2 ) d t = K t f\left( t \right) = \frac{1}{ {2\pi }}\frac{ {d\varphi \left( t \right)}}{ {dt}} = \frac{1}{ {2\pi }}\frac{ {d\left( {\pi K{t^2}} \right)}}{ {dt}} = Kt f(t)=2π1dtdφ(t)=2π1dtd(πKt2)=Kt
(4)信号带宽
B W = ∣ K ∣ T BW = \left| K \right|T BW=KT
(5)时间带宽积
T B P = ∣ K ∣ T 2 TBP = \left| K \right|{T^2} TBP=KT2

1.1.2 线性调频信号时域仿真

(1)信号参数
① 时宽 Tr = 1 us
② 带宽 Br = 100 MHz
③ 采样率 Fs = 4 * Br

(2)仿真结果

信号实部 信号虚部 信号频率 信号相位
在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

1.2 线性调频信号(频域)

1.2.1 驻定相位原理(POSP)

(1)基本原理
  信号在相位驻留点邻域附近是缓变的,而在其他时间点_上是迅变的,相位迅变处由于相位周期的正负部分相互抵消,故其对积分的贡献几乎为零,对积分起主要作用的部分集中在相位驻留点附近
  因此,驻定相位原理适用于相位包含二次及高次项,且包络缓变的信号频谱求解;’

  对于包络 w ( t ) w\left( t \right) w(t) 缓变,且相位 ϕ ( t ) {\phi \left( t \right)} ϕ(t) 包含高次项的信号
g ( t ) = w ( t ) ⋅ exp ⁡ { j ⋅ ϕ ( t ) } g\left( t \right) = w\left( t \right) \cdot \exp \left\{ {j \cdot \phi \left( t \right)} \right\} g(t)=w(t)exp{ jϕ(t)}
根据POSP求解其频谱为:
G ( f ) = ∫ − ∞ + ∞ w ( t ) ⋅ exp ⁡ { j ⋅ ϕ ( t ) } ⋅ exp ⁡ ( − j 2 π f t ) d t = ∫ − ∞ + ∞ w ( t ) ⋅ exp ⁡ { j ⋅ [ ϕ ( t ) − 2 π f t ] } d t = ∫ − ∞ + ∞ w ( t ) ⋅ exp ⁡ { j ⋅ θ ( t ) } d t ≈ P O S P w [ t ( f ) ] ⋅ exp ⁡ { j ⋅ θ [ t ( f ) ] } \begin{aligned} G\left( f \right) &= \int_{ - \infty }^{ + \infty } {w\left( t \right) \cdot \exp \left\{ {j \cdot \phi \left( t \right)} \right\}} \cdot \exp \left( { - j2\pi ft} \right)dt \\ &= \int_{ - \infty }^{ + \infty } {w\left( t \right) \cdot \exp \left\{ {j \cdot \left[ {\phi \left( t \right) - 2\pi ft} \right]} \right\}} dt \\ &= \int_{ - \infty }^{ + \infty } {w\left( t \right) \cdot \exp \left\{ {j \cdot \theta \left( t \right)} \right\}} dt \\ &\mathop \approx \limits^{POSP} w\left[ {t\left( f \right)} \right] \cdot \exp \left\{ {j \cdot \theta \left[ {t\left( f \right)} \right]} \right\} \end{aligned} G(f)=+w(t)exp{ jϕ(t)}exp(j2πft)dt=+w(t)exp{ j[ϕ(t)2πft]}dt=+w(t)exp{ jθ(t)}dtPOSPw[t(f)]exp{ jθ[t(f)]}

(2)POSP求解步骤
① 待求解信号
g ( t ) = w ( t ) ⋅ exp ⁡ { j ⋅ ϕ ( t ) } g\left( t \right) = w\left( t \right) \cdot \exp \left\{ {j \cdot \phi \left( t \right)} \right\} g(t)=w(t)exp{ jϕ(t)}
其中,包络 w ( t ) w\left( t \right) w(t) 缓变,且相位 ϕ ( t ) {\phi \left( t \right)} ϕ(t) 包含高次项。
② 相位函数
θ ( t ) = ϕ ( t ) − 2 π f t \theta \left( t \right) = \phi \left( t \right) - 2\pi ft θ(t)=ϕ(t)2πft
其中,t 为自变量,f 为参数。
③ 求解驻留点
令:
d d t θ ( t ) = d d t [ ϕ ( t ) − 2 π f t ] = 0 \frac{d}{ {dt}}\theta \left( t \right) = \frac{d}{ {dt}}\left[ {\phi \left( t \right) - 2\pi ft} \right] = 0 dtdθ(t)=dtd[ϕ(t)2πft]=0
求解方程得到驻留点 t ( f ) t\left( f \right) t(f)
④ 将驻留点代入频谱得解
G ( f ) ≈ P O S P 2 π ∣ ϕ ′ ′ [ t ( f ) ] ∣ ⋅ w [ t ( f ) ] ⋅ exp ⁡ { j [ θ ( t ( f ) ) + π 4 ] } ≈ w [ t ( f ) ] ⋅ exp ⁡ { j ⋅ θ [ t ( f ) ] } G\left( f \right)\mathop \approx \limits^{POSP} \sqrt {\frac{ {2\pi }}{ {\left| {\phi ''\left[ {t\left( f \right)} \right]} \right|}}} \cdot w\left[ {t\left( f \right)} \right] \cdot \exp \left\{ {j\left[ {\theta \left( {t\left( f \right)} \right) + \frac{\pi }{4}} \right]} \right\} \approx w\left[ {t\left( f \right)} \right]\cdot\exp \left\{ {j\cdot\theta \left[ {t\left( f \right)} \right]} \right\} G(f)POSPϕ[t(f)]2π w[t(f)]exp{ j[θ(t(f))+4π]}w[t(f)]exp{ jθ[t(f)]}

1.2.2 线性调频信号频谱

直接对线性调频信号求傅里叶变换:
S ( f ) = ∫ − ∞ + ∞ r e c t ( t T ) exp ⁡ ( j π K t 2 ) exp ⁡ ( − j 2 π f t ) d t S\left( f \right) = \int_{ - \infty }^{ + \infty } {rect\left( {\frac{t}{T}} \right)\exp \left( {j\pi K{t^2}} \right)\exp \left( { - j2\pi ft} \right)dt} S(f)=+rect(Tt)exp(jπKt2)exp(j2πft)dt
积分内存在指数上方的二次项积分,无法直接求解。故采用驻点相位定理求解如下:
令相位函数:
θ ( t ) = π K t 2 − 2 π f t \theta \left( t \right) = \pi K{t^2} - 2\pi ft θ(t)=πKt22πft
求导等于0:
d d t θ ( t ) = d d t ( π K t 2 − 2 π f t ) = 2 π K t − 2 π f = 0 \frac{d}{ {dt}}\theta \left( t \right) = \frac{d}{ {dt}}\left( {\pi K{t^2} - 2\pi ft} \right) = 2\pi Kt - 2\pi f = 0 dtdθ(t)=dtd(πKt22πft)=2πKt2πf=0
得驻定相位点为:
t ( f ) = f K t\left( f \right) = \frac{f}{K} t(f)=Kf
因此:
w [ t ( f ) ] = r e c t ( t ( f ) T ) = r e c t ( f K T ) w\left[ {t\left( f \right)} \right] = rect\left( {\frac{ {t\left( f \right)}}{T}} \right) = rect\left( {\frac{f}{ {KT}}} \right) w[t(f)]=rect(Tt(f))=rect(KTf)
θ [ t ( f ) ] = π K t 2 ( f ) − 2 π f t ( f ) = π K ( f K ) 2 − 2 π f ( f K ) = − π f 2 K \theta \left[ {t\left( f \right)} \right] = \pi K{t^2}\left( f \right) - 2\pi ft\left( f \right) = \pi K{\left( {\frac{f}{K}} \right)^2} - 2\pi f\left( {\frac{f}{K}} \right) = - \pi \frac{ { {f^2}}}{K} θ[t(f)]=πKt2(f)2πft(f)=πK(Kf)22πf(Kf)=πKf2
从而得到线性调频信号频谱为:
S ( f ) = w [ t ( f ) ] ⋅ exp ⁡ { j ⋅ θ [ t ( f ) ] } = r e c t ( f K T ) ⋅ exp ⁡ { − j π f 2 K } S\left( f \right) = w\left[ {t\left( f \right)} \right] \cdot \exp \left\{ {j \cdot \theta \left[ {t\left( f \right)} \right]} \right\} = rect\left( {\frac{f}{ {KT}}} \right) \cdot \exp \left\{ { - j\pi \frac{ { {f^2}}}{K}} \right\} S(f)=w[t(f)]exp{ jθ[t(f)]}=rect(KTf)exp{ jπKf2}

且TBP越大,POSP越准确(因为TBP越大,实际频谱越接近矩形窗)。

1.2.3 线性调频信号频谱仿真
幅度谱 相位谱
在这里插入图片描述 在这里插入图片描述

2 脉冲压缩

2.1 匹配滤波器

  匹配滤波器是线性系统最大信噪比滤波器。信号和噪声叠加在一起,匹配滤波使信号成分在某一瞬时出现峰值,而噪声成分受到抑制,即使输出的信噪比最大。

2.1.1 匹配滤波器推导

设 t=tm 时刻输出信噪比最大,信噪比表示为:
ρ = s o 2 ( t m ) n o 2 ( t m ) \rho = \frac{ {s_o^2\left( { {t_m}} \right)}}{ {n_o^2\left( { {t_m}} \right)}} ρ=no2(tm)so2(tm)
利用频域表达式可得输出信号为:
s o ( t ) = F − 1 { S ( j ω ) H ( j ω ) } = 1 2 π ∫ − ∞ + ∞ S ( j ω ) H ( j ω ) exp ⁡ ( j ω t ) d ω {s_o}\left( t \right) = {\mathscr{F}^{ - 1}}\left\{ {S\left( {j\omega } \right)H\left( {j\omega } \right)} \right\} = \frac{1}{ {2\pi }}\int_{ - \infty }^{ + \infty } {S\left( {j\omega } \right)H\left( {j\omega } \right)\exp \left( {j\omega t} \right)d\omega } so(t)=F1{ S(jω)H(jω)}=2π1+S(jω)H(jω)exp(jωt)dω
白噪声平均功率为:
n o 2 ( t ) ‾ = 1 2 π ∫ − ∞ + ∞ N ⋅ ∣ H ( j ω ) ∣ 2 d ω \overline {n_o^2\left( t \right)} = \frac{1}{ {2\pi }}\int_{ - \infty }^{ + \infty } {N \cdot { {\left| {H\left( {j\omega } \right)} \right|}^2}d\omega } no2(t)=2π1+NH(jω)2dω
则信噪比可表示为:
ρ = s o 2 ( t m ) n o 2 ( t m ) ‾ = ∣ ∫ − ∞ + ∞ S ( j ω ) H ( j ω ) exp ⁡ ( j ω t m ) d ω ∣ 2 2 π N ⋅ ∫ − ∞ + ∞ ∣ H ( j ω ) ∣ 2 d ω \rho = \frac{ {s_o^2\left( { {t_m}} \right)}}{ {\overline {n_o^2\left( { {t_m}} \right)} }} = \frac{ { { {\left| {\int_{ - \infty }^{ + \infty } {S\left( {j\omega } \right)H\left( {j\omega } \right)\exp \left( {j\omega {t_m}} \right)d\omega } } \right|}^2}}}{ {2\pi N \cdot \int_{ - \infty }^{ + \infty } { { {\left| {H\left( {j\omega } \right)} \right|}^2}d\omega } }} ρ=no2(tm)so2(tm)=2πN+H(jω)2dω+S(jω)H(jω)exp(jωtm)dω2
根据柯西不等式:
∣ ∫ − ∞ + ∞ H ( j ω ) S ( j ω ) exp ⁡ ( j ω t m ) d ω ∣ 2 ⩽ ∫ − ∞ + ∞ ∣ H ( j ω ) ∣ 2 d ω ⋅ ∫ − ∞ + ∞ ∣ S ( j ω ) exp ⁡ ( j ω t m ) ∣ 2 d ω {\left| {\int_{ - \infty }^{ + \infty } {H\left( {j\omega } \right)S\left( {j\omega } \right)\exp \left( {j\omega {t_m}} \right)d\omega } } \right|^2} \leqslant \int_{ - \infty }^{ + \infty } { { {\left| {H\left( {j\omega } \right)} \right|}^2}d\omega } \cdot \int_{ - \infty }^{ + \infty } { { {\left| {S\left( {j\omega } \right)\exp \left( {j\omega {t_m}} \right)} \right|}^2}d\omega } +H(jω)S(jω)exp(jωtm)dω2+H(jω)2dω+S(jω)exp(jωtm)2dω
当且仅当
H ( j ω ) = k [ S ( j ω ) exp ⁡ ( j ω t m ) ] ∗ H\left( {j\omega } \right) = k{\left[ {S\left( {j\omega } \right)\exp \left( {j\omega {t_m}} \right)} \right]^ * } H(jω)=k[S(jω)exp(jωtm)]
时,等号成立,即信噪比取得最大值。

最终,得到匹配滤波器为
H ( j ω ) = k ⋅ S ( − j ω ) ⋅ exp ⁡ ( − j ω t m ) H\left( {j\omega } \right) = k \cdot S\left( { - j\omega } \right) \cdot \exp \left( { - j\omega {t_m}} \right) H(jω)=kS(jω)exp(jωtm)
两端同取傅里叶逆变换,并根据傅里叶变换的频移性质可得:
h ( t ) = k ⋅ s ( t m − t ) ‾ h\left( t \right) = k \cdot \overline {s\left( { {t_m} - t} \right)} h(t)=ks(tmt)
一般地,取 k = 1 , t m = 0 k=1,t_m=0 k=1,tm=0
h ( t ) = s ( − t ) ‾ h\left( t \right) = \overline {s\left( { - t} \right)} h(t)=s(t)

2.1.2 匹配滤波器理解

匹配滤波器系统输出为:
s o ( t ) = s ( t ) ∗ h ( t ) = ∫ − ∞ + ∞ s ( τ ) h ( t − τ ) d τ {s_o}\left( t \right) = s\left( t \right) * h\left( t \right) = \int_{ - \infty }^{ + \infty } {s\left( \tau \right)h\left( {t - \tau } \right)d\tau } so(t)=s(t)h(t)=+s(τ)h(tτ)dτ
由于 h ( t ) = s ( − t ) ‾ h\left( t \right) = \overline {s\left( { - t} \right)} h(t)=s(t),因此输出也可写作
s o ( t ) = ∫ − ∞ + ∞ s ( τ ) s ( τ − t ) ‾ d τ {s_o}\left( t \right) = \int_{ - \infty }^{ + \infty } {s\left( \tau \right)\overline {s\left( {\tau - t} \right)} d\tau } so(t)=+s(τ)s(τt)dτ

可见,匹配滤波的过程可看作接收信号sr系统冲激响应ht卷积

so = conv( sr , ht) = conv( sr , conj(fliplr( si )) );

也可看作发射信号si接收信号sr相关

so = xcorr( sr , si );

2.2 线性调频信号脉冲压缩的匹配滤波实现

对于线性调频信号,时域为:
s ( t ) = r e c t ( t T ) exp ⁡ ( j π K t 2 ) s\left( t \right) = rect\left( {\frac{t}{T}} \right)\exp \left( {j\pi K{t^2}} \right) s(t)=rect(Tt)exp(jπKt2)
频谱为:
S ( f ) = r e c t ( f K T ) ⋅ exp ⁡ { − j π f 2 K } S\left( f \right) = rect\left( {\frac{f}{ {KT}}} \right)\cdot\exp \left\{ { - j\pi \frac{ { {f^2}}}{K}} \right\} S(f)=rect(KTf)exp{ jπKf2}

2.2.1 时域匹配滤波

根据 h ( t ) = s ( − t ) ‾ h\left( t \right) = \overline {s\left( { - t} \right)} h(t)=s(t) 可构造时域匹配滤波器为发射信号时间反褶再取共轭。再与发射信号进行线性卷积即可实现脉冲压缩:
s o ( t ) = s ( t ) ∗ s ( − t ) ‾ {s_o}\left( t \right) = s\left( t \right) * \overline {s\left( { - t} \right)} so(t)=s(t)s(t)

2.2.2 频域匹配滤波
2.2.2.1 方法一

(1)原理

发射信号时间反褶后取共轭补零后计算FFT;再与信号补零后的FFT在频域相乘,最后IFFT。
s o ( t ) = I F F T { F F T [ s ( − t ) ‾ , N ] ⋅ F F T [ s ( t ) , N ] } {s_o}\left( t \right) = \mathscr{ IFFT}\left\{ {\mathscr{FFT}\left[ {\overline {s\left( { - t} \right)} ,N} \right] \cdot \mathscr{FFT}\left[ {s\left( t \right),N} \right]} \right\} so(t)=IFFT{ FFT[s(t),N]FFT[s(t),N]}

(2)说明

  • 为什么需要补零?
    因为匹配滤波需要计算线性卷积,但 (DFT) FFT 计算的是循环卷积,所以需要对信号进行补零直到长度超过线性卷积的长度。对于点数分别为N1与N2的两信号,它们线性卷积的长度为 N1+N2-1;若循环卷积长度为N,则有如下关系:
    ① N < N1 + N2 - 1 时,循环卷积是线性卷积长度为 N 的混叠
    ② N = N1 + N2 - 1 时,循环卷积 = 线性卷积
    ③ N > N1 + N2 - 1 时,循环卷积 = 线性卷积末尾补 N-(N1+N2-1) 个 0 (弃置区

  • 弃置区位置
    由于发射是反褶后再补零,故最终得到IFFT结果后,弃置区位于信号前端

(3)仿真

2.2.2.2 方法二

(1)原理

发射脉冲补零后进行FFT再取共轭(无需反褶),与信号补零FFT在频域相乘,最后IFFT。
s o ( t ) = I F F T { F F T [ s ( t ) , N ] ‾ ⋅ F F T [ s ( t ) , N ] } {s_o}\left( t \right) = \mathscr{IFFT}\left\{ {\overline {\mathscr{FFT}\left[ {s\left( t \right),N} \right]} \cdot \mathscr{FFT}\left[ {s\left( t \right),N} \right]} \right\} so(t)=IFFT{ FFT[s(t),N]FFT[s(t),N]}

(2)说明

  • 方法二与方法一的关系:
    根据傅里叶变换的性质,时域共轭+反褶 频域共轭(方法一);因此,也可先变换到频域再取共轭(方法二)。但由于它们补零时存在是否反褶的差别,故最终结果的弃置区也存在反褶。

  • 弃置区位置
    由于发射是直接在末尾补零,故最终得到IFFT结果后,弃置区位于信号末端

(3)仿真

2.2.2.3 方法三

(1)原理

直接在频域生成匹配滤波器
H ( f ) = r e c t { f ∣ K ∣ T } exp ⁡ { j π f 2 K } H\left( f \right) = rect\left\{ {\frac{f}{ {\left| K \right|T}}} \right\}\exp \left\{ {j\pi \frac{ { {f^2}}}{K}} \right\} H(f)=rect{ KTf}exp{ jπKf2}
与信号FFT在频域相乘,最后IFFT。
s o ( t ) = I F F T { F F T [ s ( t ) ] ⋅ H ( f ) } {s_o}\left( t \right) = \mathscr{IFFT}\left\{ {\mathscr{FFT}\left[ {s\left( t \right)} \right] \cdot H\left( f \right)} \right\} so(t)=IFFT{ FFT[s(t)]H(f)}

(2)仿真

2.3 加窗处理

2.3.1 性能指标

(1)冲激响应宽度(IRW),冲激响应的 3dB 宽度。
(2)峰值旁瓣比(PSLR),最大旁瓣与峰值的高度比。
(3)积分旁瓣比(ISLR),旁瓣能量与主瓣能量的比值。

2.3.2 各类窗效果对比
2.3.3 脉冲压缩加窗
窗名 频谱加窗 脉压结果
矩形窗 在这里插入图片描述 在这里插入图片描述
三角窗 在这里插入图片描述 在这里插入图片描述
汉宁窗 在这里插入图片描述 在这里插入图片描述
汉明窗 在这里插入图片描述 在这里插入图片描述
布莱克曼窗 在这里插入图片描述 在这里插入图片描述

3 脉冲压缩测距仿真

3.1 实现流程

  • 参数设置
    信号时宽 T = 6 us 信号带宽 B = 400 MHz 目标距离 R = [ 995, 1000, 1001, 1005 ] m 后向散射 σ = [ 1, 1.5 , 2.25, 3.375]
  • 系统参数导出
    采样率 Fs = 5 * B 调频率 K = B / T 采样点数 N = round( T * Fs )
  • 目标参数导出
    目标个数 M = length( R ) 中心距离 R0 = mean( R ) 最大探测距离范围 Rwid = T * c / 2 最远探测距离 Rmax = floor( R0 + Rwid / 2 ) 最近探测距离 Rmax = floor( R0 - Rwid / 2 )
  • 回波参数
    发射时间序列 t = linspace( 2 * Rmin / c , 2 * Rmax / c , N ) 回波时间序列 td = t - 2 * R / c
  • 回波信号
    s r ( t ) = σ ⋅ r e c t ( t d T ) ⋅ exp ⁡ ( j π K ⋅ t d 2 ) {s_r}\left( t \right) = \sigma \cdot rect\left( {\frac{ { {t_d}}}{T}} \right) \cdot \exp \left( {j\pi K \cdot t_d^2} \right) sr(t)=σrect(Ttd)exp(jπKtd2)
  • 脉冲压缩
    方式2
    s o ( t ) = I F F T { F F T [ s t ( t ) , N f f t ] ‾ ⋅ F F T [ s r ( t ) , N f f t ] } {s_o}\left( t \right) = \mathscr{IFFT}\left\{ {\overline {\mathscr{FFT}\left[ {s_t\left( t \right),N_{fft}} \right]} \cdot \mathscr{FFT}\left[ {s_r\left( t \right),N_{fft}} \right]} \right\} so(t)=IFFT{ FFT[st(t),Nfft]FFT[sr(t),Nfft]}
  • 弃置区处理
    脉压信号起始点 N0 = ( Nfft - N ) / 2 脉压信号截取 so = so( N0 , N0 + N -1 )
  • 绘图

3.2 仿真结果

回波信号 脉压测距结果 脉压测距结果(局部放大)/dB
在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

附录:MATLAB程序

全部完整程序

部分测试程序

  • 线性调频与脉冲压缩
%% 线性调频与脉冲压缩
clear,clc,close all
set(0,'defaultfigurecolor','w')
%% Chirp信号参数设置
Tr = 1e-6;%时宽
Br = 200e6;%带宽
Fs = 4*Br;%采样率
%% Chirp信号参数导出
Kr = Br/Tr;%调频率
N =  round( Tr / (1/Fs) );%采样点数
t = linspace( -Tr/2 , Tr/2 , N);%在[-Tp/2,Tp/2]选取采样点
%% Chirp信号生成
st = ( abs(t) < Tr/2 ) .* exp( 1j * pi * Kr * t.^2 ); 
f_chirp= Kr * t; %信号频率
phase_chirp = pi * Kr * t.^2;%信号相位
%% 频谱
freq = linspace(-Fs/2,Fs/2,N);%频域采样
Sf = fftshift( fft(st) );
%% 时域匹配滤波
ht = conj( fliplr(st) ); %时域匹配滤波为发射信号时间反褶再取共轭
s1 = conv(st,ht); %线性调频信号经过匹配滤波器后的输出(时域卷积)
N1 = N+N-1 ;%线性卷积后信号长度变为 N1+N2-1
t1 = linspace( -Tr/2 , Tr/2 , N1);
%% 频域匹配滤波1 (复制发射脉冲进行时间反褶并取共轭,计算补零DFT)
N2 = 2*N; %循环卷积长度 (N2应当>=N+N-1,其中弃置区位于长度大于N+N-1的部分)
t2 = linspace( -Tr/2 , Tr/2 , N2);
Hf2 = fft(ht,N2); %频域匹配滤波器
Sf2 = fft(st,N2);%频域信号
S2 = Sf2 .* Hf2;%频域乘积
s2 = ifft(S2);
%% 绘图
% 时域
figure,plot( t*1e6, real(st) ),xlabel('t /us'),ylabel('幅度'),title('Chirp信号实部');
figure,plot( t*1e6, imag(st) ),xlabel('t /us'),ylabel('幅度'),title('Chirp信号虚部');
figure,plot( t*1e6, f_chirp/1e6 ),xlabel('t /us'),ylabel('频率 /MHz'),title('Chirp信号频率');
figure,plot( t*1e6, phase_chirp ),xlabel('t /us'),ylabel('相位 /rad'),title('Chirp信号相位');
% 频域
figure,plot( freq/1e6,abs(Sf) ),xlabel('f /MHz'),ylabel('幅度谱'),title('Chirp信号 幅度谱');
figure,plot( freq/1e6,-pi*freq.^2/Kr ),xlabel('f /MHz'),ylabel('相位谱'),title('Chirp信号 相位谱');
% 时域匹配滤波
figure,plot( t1*1e6 , abs(s1) ),xlabel('t /us'),ylabel('幅度谱'),title('时间反褶取共轭,时域卷积');
% 频域匹配滤波1
  • 脉冲压缩测距
%线性调频脉冲压缩测距
clear,clc,close all
%% 参数设置
T = 6e-6;%信号持续时间(脉冲宽度6us)
B = 400e6;%信号调频带宽(40MHz)
Fs = 5*B;%采样率
R = [995,1000,1001,1005];%目标距离
RCS = [1 1.5 2.25 3.375];%目标有效面积
%% 导出参数
%系统参数
C = 3e8; 
K = B/T;%调频率
Ts = 1/Fs; %时域采样间隔
N = round(T/Ts);%时域采样点数
%目标参数
M = length(R);%目标的个数
R0 = mean(R);%参考中心距离(用于保证目标在一个回波探测距离内)
Rwid = T * C/2;%能观察到的最大距离范围(最远距离-最近距离) 
Rmax = floor( R0 + Rwid/2 );%观测目标距雷达的最远位置  
Rmin = floor( R0 - Rwid/2 );%观测目标距雷达的最近位置
%回波参数
t = linspace(2*Rmin/C,2*Rmax/C,N);
td = ones(M,1)*t - 2 * R'/C * ones(1,N);
%% 回波信号
Srt = RCS * ( exp(1j*pi*K*td.^2) .* (abs(td)<T/2) );
%% 脉冲压缩 
%复制发射信号
t0 = linspace(-T/2,T/2,N); 
St = exp(1j*pi*K*t0.^2);%发射的LFM信号
%匹配滤波
Nfft = 2^nextpow2(N+N-1); 
Srw = fft(Srt,Nfft);%对回波信号求FFT
Sw = conj( fft(St,Nfft) ); %方法二
Sot = fftshift(ifft(Srw.* Sw));
N0 = (Nfft-N)/2;
Z = abs( Sot( N0 : (N0+N-1)) );
% 归一化并取dB
Z = Z/max(Z);
ZdB = 10*log10(Z);
%% 绘图
figure,plot(t*1e6,real(Srt))
axis tight,xlabel('时间 / us');ylabel('幅度'),title('原始雷达回波');
figure,plot(t*C/2,Z)
xlabel('距离 / m'),ylabel('幅度'),title('脉冲压缩测距')
figure,plot(t*C/2,ZdB)
xlabel('距离 / m'),ylabel('幅度 / dB'),title('脉冲压缩测距(局部放大)')
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/AIMZZY/article/details/106467080

智能推荐

用WinHex软件解析FAT32文件系统_1.利用winhex软件,打开fat32文件系统,通过dbr里提供的信息,手工计算fat1的大小和-程序员宅基地

文章浏览阅读1.4w次,点赞6次,收藏61次。用WinHex软件解析FAT32文件系统准备工作:将一个U盘格式化为FAT32格式,在U盘内创建几个文件,最好是TXT文档,其中至少有一个是长文件(命名较长)。补充知识:短文件名表示长文件名表示当一个文件名为长文件名时,会由几个长文件名表示法和一个缩略名的短文间名表示,并且其文件大小以及首簇号等信息存放在短文件内开始解析(1)U盘信息:保留扇区:2226;文件目录首簇号:2;FAT表大小 :1527_1.利用winhex软件,打开fat32文件系统,通过dbr里提供的信息,手工计算fat1的大小和

【程序源代码】Csharp爬取音乐源码-程序员宅基地

文章浏览阅读663次。“关键字:爬虫”正文:爬取介绍基于.NET的音乐搜索与播放软件(编程语言:C#,爬取4个平台:酷我/网易云/酷狗/QQ)基本思路1、模拟搜索:通过关键字,获取歌曲列表2、获取歌曲..._c# 爬虫音乐

4.Open3D教程——网格数据操作_c++ open3d mesh显示网格线段-程序员宅基地

文章浏览阅读1k次。网格数据1. 网格Open3D有一个称为TriangleMesh的3D三角网格数据结构。下面的代码演示如何从ply文件中读取三角形网格并打印其顶点和三角形。import open3d as o3dimport numpy as npimport matplotlib.pyplot as pltimport open3d_tutorial as o3dtutprint("Testing mesh in Open3D...")mesh = o3dtut.get_knot_mesh()prin_c++ open3d mesh显示网格线段

python里input用法_python 用户交互输入input的4种用法详解-程序员宅基地

文章浏览阅读1.8k次。用户输入1、使用input来等待用户输入。如username = input('username:')password = input('password:')print(username,password)2、格式化输出第一种方法:字符串拼接 + (不建议使用,太耗内存)name = input("name:")age = input("age:")skill = input("skill:")..._input在python中的用法

JDK 16 对 ZGC 的增强_specjbb庐 2015 [1]-程序员宅基地

文章浏览阅读1.6w次,点赞4次,收藏9次。JDK 16 已经发布。与往常一样,新版本 JDK 会带来一系列新功能、功能增强以及 bug 修复。在这个版本中 ZGC 有 46 个功能增强以及 25 个 bug 修复。这里我会介绍一些..._specjbb庐 2015 [1]

React Hooks学习--useRequest网络请求Hooks-程序员宅基地

文章浏览阅读7.6k次,点赞3次,收藏15次。当前用于网络请求的Hooks是很多的,但是为什么选择使用useRequest呢?目前的许多Hooks都需要根据不同的场景来选择,比如分页usePagination,加载更多useLoadMoreuseAsync能力不足,不能支持并行请求useRequest不仅包含来Umi Hooks所有和网络请求相关的Hooks,还借鉴了swr的特性swr的主要能力在于:我们在发送网络请求时,会优先返回缓存内的数据,然后在背后发起网络请求,最终用新的请求结果来触发组件渲染。一.useRequest的基本使用_userequest

随便推点

el-input自定义icon图标_el-input自定义图标-程序员宅基地

文章浏览阅读7.2k次,点赞6次,收藏11次。<el-input class="inputt" placeholder="请输入账号" v-model="form.name"> <i slot="prefix" style="display: flex;align-items: center;"> <img ..._el-input自定义图标

以太网解释协议_rtf_llinfo-程序员宅基地

文章浏览阅读3.2k次。mbhard 2006-12-27 11:32 _rtf_llinfo

使用conda时出错,显示LoadError: Load Error: in /home/li/.condarc on line 5, column 0. Invalid YAML_loaderror: load error: in /root/.condarc on line 2-程序员宅基地

文章浏览阅读1.2w次,点赞7次,收藏19次。这个问题是这样的.首先运行:conda install conda list两个命令,啥都不显示.输入这两个命令,完全没有任何问题conda -hconda -V运行这个命令:conda inspect conda则报错:解决这个问题的方法是:直接删除.condarc文件sudo rm -r .condarc就可以解决此问题了...._loaderror: load error: in /root/.condarc on line 22, column 0. invalid yaml

数字后端基本概念介绍<NDR>-程序员宅基地

文章浏览阅读2.7k次,点赞6次,收藏27次。今天我们要介绍的数字后端基本概念是NDR。全称是Non default routing rule, 非默认绕线规则。一般用于设置clock时钟走线的规则。众所周知,时钟..._为什么leaf net的ndr 是一倍宽度

原创分析| 入门或者转行音视频,应该要怎么做?_音视频行业技术从业年龄分析-程序员宅基地

文章浏览阅读1k次。这一两年因为该死的疫情,让短视频、超高清视频和实时音视频反而成为需求风口。我的看法当然是觉得音视频这个行业还可以,而且从我自己的观察来看,做音视频的现在普遍年龄都在 30+ 了,我 94 年的在组里有可能还是年龄最小的那一批人了。_音视频行业技术从业年龄分析

hadoop集群之HDFS和YARN启动和停止命令_yarn daemons-程序员宅基地

文章浏览阅读6.7k次。假如我们只有3台linux虚拟机,主机名分别为hadoop01、hadoop02和hadoop03,在这3台机器上,hadoop集群的部署情况如下:hadoop01:1个namenode,1个datanode,1个journalnode,1个zkfc,1个resourcemanager,1个nodemanager;hadoop02:1个namenode,1个datanode,1个jour..._yarn daemons