线性调频信号的解线调(dechirp,去斜)处理matlab仿真

这篇具有很好参考价值的文章主要介绍了线性调频信号的解线调(dechirp,去斜)处理matlab仿真。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

线性调频信号的回波模型

对于线性调频脉冲压缩雷达,其发射信号为:
s ( t ) = r e c t ( t T ) e x p ( j π μ t 2 ) \begin{equation} s(t)=rect(\frac{t}{T})exp(j\pi \mu t^2) \end{equation} s(t)=rect(Tt)exp(μt2)
其中
r e c t ( t T ) = { 1 , 0 ≤ t ≤ T 0 , o t h e r w i s e . \begin{equation} rect(\frac{t}{T})= \left\{ \begin{array}{ll} 1, & 0\leq t \leq T\\ 0, & otherwise. \end{array} \right. \end{equation} rect(Tt)={1,0,0tTotherwise.
其中 t t t为快时间变量, T T T为脉冲宽度, μ \mu μ为调频斜率, B = T μ B=T\mu B=Tμ为雷达信号的带宽,搭载到载频上的发射信号为:
s ( t ) = r e c t ( t T ) e x p ( j π μ t 2 ) e x p ( j 2 π f c t ) \begin{equation} s(t)=rect(\frac{t}{T})exp(j\pi \mu t^2)exp(j2\pi f_c t) \end{equation} s(t)=rect(Tt)exp(μt2)exp(j2πfct)
假设单目标的情况,目标位于 R t a r R_{tar} Rtar处,接收到的回波信号表达式为
s r ( t ) = r e c t ( t − t 0 T ) e x p ( j π μ ( t − t 0 ) 2 ) e x p ( j 2 π f c ( t − t 0 ) ) \begin{equation} s_r(t)=rect(\frac{t-t_0}{T})exp(j\pi \mu (t-t_0)^2)exp(j2\pi f_c (t-t_0)) \end{equation} sr(t)=rect(Ttt0)exp(μ(tt0)2)exp(j2πfc(tt0))
其中 t 0 = 2 R t a r / c t_0=2R_{tar}/c t0=2Rtar/c

参考信号

参考信号同样是一个线性调频信号,调频斜率、载频与雷达发射的信号一样,但是脉宽大于雷达发射线性调频信号的 T T T,这个脉宽其实就是一个信号处理窗,我们接收到一个脉冲重复周期的雷达回波之后,对选定的一段信号进行处理,这一段信号的长度就是窗,因为我们不知道雷达回波中的脉冲位置,所以选取的窗应该至少等于脉冲宽度才能将其“覆盖”住。参考信号可以表示为:
s r e f ( t ) = r e c t ( t − t r e f T r e f ) e x p ( j π μ ( t − t r e f ) 2 ) e x p ( j 2 π f c ( t − t r e f ) ) \begin{equation} s_{ref}(t)=rect(\frac{t-t_{ref}}{T_{ref}})exp(j\pi \mu (t-t_{ref})^2)exp(j2\pi f_c (t-t_{ref})) \end{equation} sref(t)=rect(Trefttref)exp(μ(ttref)2)exp(j2πfc(ttref))
其中, t r e f = 2 R r e f / c t_{ref}=2R_{ref}/c tref=2Rref/c c c c为光速, R r e f R_{ref} Rref是参考距离, T r e f T_{ref} Tref是接收窗,一般而言 T r e f > T T_{ref}>T Tref>T
线性调频信号的解线调(dechirp,去斜)处理matlab仿真,雷达信号处理,matlab,信号处理

图1 雷达回波和参考信号示意图

去斜处理

解线调就是将雷达回波和参考信号的共轭进行混频
s d e ( t ) = s r ( t ) ⋅ s r e f ∗ ( t ) = r e c t ( t − t 0 T ) e x p ( j 2 π ( − μ ( t 0 − t r e f ) ) t ) e x p ( − f c ( t 0 − t r e f ) ) e x p ( 1 / 2 μ ( t 0 2 − t r e f 2 ) ) ) \begin{equation} s_{de}(t)=s_r(t)\cdot s_{ref}^{*}(t)=rect(\frac{t-t_0}{T})exp(j2\pi (-\mu (t_0-t_{ref}))t)exp(-f_c(t_0-t_{ref}))exp(1/2\mu(t_0^2-t_{ref}^2))) \end{equation} sde(t)=sr(t)sref(t)=rect(Ttt0)exp(j2π(μ(t0tref))t)exp(fc(t0tref))exp(1/2μ(t02tref2)))
上面式子中一共有3个指数项,且只有第一个指数项是时间 t t t的函数,后面两个记为 e x p ( j ϕ ) exp(j\phi) exp(jϕ),则可以化简为:
s d e ( t ) = s r ( t ) ⋅ s r e f ∗ ( t ) = r e c t ( t − t 0 T ) e x p ( j 2 π ( − μ ( t 0 − t r e f ) ) t ) e x p ( j ϕ ) \begin{equation} s_{de}(t)=s_r(t)\cdot s_{ref}^{*}(t)=rect(\frac{t-t_0}{T})exp(j2\pi (-\mu (t_0-t_{ref}))t)exp(j\phi) \end{equation} sde(t)=sr(t)sref(t)=rect(Ttt0)exp(j2π(μ(t0tref))t)exp(jϕ)
可以看到解线调后的信号是一个单频信号,其频率为 f = − μ ( t 0 − t r e f ) f=-\mu (t_0-t_{ref}) f=μ(t0tref),它是调频斜率 − μ -\mu μ和相对时间 ( t 0 − t r e f ) (t_0-t_{ref}) (t0tref)的函数, ( t 0 − t r e f ) (t_0-t_{ref}) (t0tref)也就是雷达回波的脉冲相对于参考信号时间窗的延时。 t r e f t_{ref} tref是已知的,那么由解线调信号的频率便可以得到目标的延时。

去斜处理傅里叶变换得到脉压结果

我么对解线调信号进行傅里叶变换
S d e ( f ) = F { s d e ( t ) } = ∫ s d e ( t ) e x p ( − j 2 π f t ) d t = T r e f e x p ( j φ ( f ) ) s i n c ( T r e f ( f − f t a r ) ) \begin{equation} S_{de}(f)=\mathcal{F}\{s_{de}(t) \}=\int s_{de}(t)exp(-j2\pi ft)dt=T_{ref}exp(j\varphi (f))sinc(T_{ref}(f-f_{tar})) \end{equation} Sde(f)=F{sde(t)}=sde(t)exp(j2πft)dt=Trefexp(jφ(f))sinc(Tref(fftar))
其中 f t a r f_{tar} ftar R t a r R_{tar} Rtar具有以下关系:
R t a r = R r e f + ( c ⋅ f t a r ) / ( 2 μ ) \begin{equation} R_{tar}=R_{ref}+(c\cdot f_{tar})/(2\mu) \end{equation} Rtar=Rref+(cftar)/(2μ)

整个流程如下图所示,解线调之后由频域图可以得到和匹配滤波相同的结果,它们都是sinc函数。
线性调频信号的解线调(dechirp,去斜)处理matlab仿真,雷达信号处理,matlab,信号处理

图2 解线调流程图及时频图

解线调仿真

下面仿真的例子:
线性调频信号的带宽为2MHz,采样频率为8MHz,雷达发射线性调频信号脉宽50us,解线调脉宽100us。

%%Dechirp仿真,解线性调频
% 雷达信号采用线性调频信号,
% 主要内容:线性调频信号的生成、雷达回波的模拟、解线调参考信号生成、解线调操作、结果绘制
% Author: baidan @beijing 2023.1.11
%=========================================================================%
%                        雷达参数设置                                     %
%=========================================================================%
clear all;close all;clc;
C = 3.0e8;              %光速(m/s)
BandWidth = 2.0e6;      %雷达发射信号带宽,带宽=B=1/tau,tau是脉冲宽度
TimeWidth = 50.0e-6;    %雷达发射信号的脉冲时宽
k = BandWidth/TimeWidth;%调频斜率
PRT = 100e-6;           %雷达发射脉冲重复周期(s),100us对应1/2*100*300=15000米最大无模糊距离
Fs = BandWidth*4;       %采样频率 采样点数为PRT*FS=480
NoisePower = 1;         %噪声功率
SNR = 0;                %信噪比,以dB为单位
SigPower = 10^(SNR/10); %目标功率,无量纲
TargetDistance = 2500;  %目标距离,单位:
TargetDelay = 2*TargetDistance/C;           %延时时间,由目标的距离换算成时间,即线性调频信号的时间
mDelayNumber = fix(Fs*2*TargetDistance/C);  %把目标距离换算成采样点(距离门)
plot_enable_H = 1;      %绘图控制符
plot_enable_L = 0;      %绘图控制符
%=========================================================================%
%                            调用函数产生线性调频信号                     %
%=========================================================================%
[LFMPulse,targetEchoPRT,matchedFilterCoeff,pulseNumber,PRTNumber] = GenerateLFMSignal(BandWidth,TimeWidth,PRT,Fs,SigPower,TargetDistance,plot_enable_L);%调用函数
fprintf('Target appear in the %.1f us, distence is %.1f m, at %dth sampling point\n',TargetDelay*1e6,TargetDistance,mDelayNumber);
%=========================================================================%
% %                        产生功率为1高斯白噪声并添加噪声                  %
% %=========================================================================%
noise = GaussianNoise(PRT,Fs);
%mixedSignal = targetEchoPRT + noise; %添加噪声
mixedSignal = targetEchoPRT; %不添加噪声
%=========================================================================%
%                                   产生参考信号                          %
%=========================================================================%
[referSig,sigSamNumber] = ReferenceSignal(k,PRT,Fs,plot_enable_H); %四个参数分别是调频斜率,脉宽,采样率,绘图控制符
sref = referSig; %进行共轭
sde = targetEchoPRT.*(sref); %雷达回波和参考信号相乘
Sde = fftshift(fft(sde))*2/1600; % 对dechirp之后的信号进行fft
f=Fs*(0:PRTNumber-1)/PRTNumber-Fs/2;% -fs/2到 fs/2
figure;
subplot(4,1,1);plot(real(targetEchoPRT),'linewidth',1);axis tight;title('Target echo '); %绘制雷达回波
subplot(4,1,2);plot(real(sref),'linewidth',1);axis tight;title('Reference signal'); %绘制参考信号
subplot(4,1,3);plot(real(sde),'linewidth',1);axis tight;title('Dechirp signal'); %绘制参考信号
subplot(4,1,4);plot(f,(abs(Sde)),'linewidth',1);axis tight;title('fft of Dechirp signal'); %绘制参考信号

其中的子函数,产生线性调频信号:

function [LFMPulse,targetEchoPRT,matchedFilterCoeff,pulseNumber,PRTNumber] = GenerateLFMSignal(bandWidth,pulseDuration,PRTDuration,samplingFrequency,signalPower,targetDistece,plotEnableHigh)
% 该函数用于产生线性调频信号,以及雷达的目标反射回波,仅产生单个回波
%  Author:壮神 2023.9.21 @Beijing
% Input : 
%   * bandWidth: 信号带宽 ,参考值:2.0e6 表示2MHz
%   * pulseDuration:脉冲持续时间,参考值:40.0e-6 表示40ms
%   * PRTDuration:脉冲重复周期,参考值:240ms
%   * samplingFrequency:采样频率,参考值:2倍的信号带宽
%   * signalPower:信号能量,参考值:1
%   * targetDistece:目标距离,最大无模糊距离由脉冲重复周期决定。计算公式:1/2*PRTDuration*光速
%   * plotEnableHigh: 绘图控制符,1:打开绘图,0:关闭绘图
% Output : 
%    * LFMPulse:线性调频信号
%    * targetEchoPRT: 目标反射回波
%    * matchedFilterCoeff: 匹配滤波器系数
%    * pulseNumber:当前采样率下线性调频信号的采样点数
%    * PRTNumber:1个PRT对应的采样点数
C = 3.0e8;      %光速(m/s)
BandWidth = bandWidth;  %雷达发射信号带宽,带宽=B=1/tau,tau是脉冲宽度
TimeWidth = pulseDuration; %雷达发射信号的脉冲时宽

PRT = PRTDuration;       %雷达发射脉冲重复周期(s),240us对应1/2*240*300=360000米最大无模糊距离
Fs = samplingFrequency;         %采样频率
SampleNumber = fix(Fs*PRT);
%=========================================================================%
%                        目标参数设置                                     %
%=========================================================================%
SigPower = signalPower;           %目标功率,无量纲
TargetDistance = targetDistece; %目标距离,单位:m
DelayNumber = fix(Fs*2*TargetDistance/C); %把目标距离换算成采样点(距离门)
fprintf('目标出现在距离门%d\n',DelayNumber);
%=========================================================================%
%                        产生线性调频信号、匹配滤波器                     %
%=========================================================================%
number = fix(Fs*TimeWidth); %回波采样点数=脉压系数长度=暂态点数目+1
if rem(number,2)~=0
    nember = nember + 1;
end
Chirp = zeros(1,number);
for i = -fix(number/2):fix(number/2)-1
    Chirp(i+fix(number/2)+1)=exp(1j*(pi*(BandWidth/TimeWidth)*(i/Fs)^2));%产生复ChIrp信号
end
coeff = conj(fliplr(Chirp)); %把Chirp信号翻转并把复数共轭,产生脉压系数
%=========================================================================%
%                      绘制线性调频信号                                   %
%=========================================================================%
if plotEnableHigh == 1
    figure;
    plot(real(Chirp)); %绘制线性调频信号
    xlabel('Sampling points'); ylabel('Amplitude');title('线性调频信号实部');
end
SignalTemp = zeros(1,SampleNumber); %1个PRT
SignalTemp(DelayNumber+1:DelayNumber+number) = sqrt(SigPower)*Chirp;%将线性调频信号按照距离进行延时
if plotEnableHigh == 1
    figure;
    plot(real(SignalTemp)); %绘制1个完整的PRT的雷达回波信号
    xlabel('Range bin'); ylabel('Amplitude');title('雷达回波的实部');
end
%=========================================================================%
%                          进行脉冲压缩                                   %
%=========================================================================%
Echo = SignalTemp; % 目标回波
pc_time0 = conv(Echo,coeff); % 回波和滤波器卷积的结果
pc_time1 = pc_time0(number:number+SampleNumber-1); %去掉暂态点
realTargetRange = find(abs(pc_time1)==max(abs(pc_time1)))-1; %由脉压结果目标距离
fprintf('The target range bin is  %d',realTargetRange);
if plotEnableHigh == 1
    figure; %时域脉压结果
    subplot(2,1,1);plot(abs(pc_time0),'r-');
    xlabel('Range bin'); ylabel('Amplitude');title('时域脉压结果');
    subplot(2,1,2);plot(abs(pc_time1),'r-');
    xlabel('Range bin'); ylabel('Amplitude');title('去掉暂态点的时域脉压结果');
end
%=========================================================================%
%                              返回参数                                   %
%=========================================================================%
LFMPulse = Chirp; %线性调频信号
targetEchoPRT = SignalTemp; %目标反射回波
matchedFilterCoeff = coeff; %匹配滤波器系数
pulseNumber = number; %线性调频信号的采样点数
PRTNumber = SampleNumber; %目标反射回波的采样点数
end

其中的子函数,产生解线调参考信号:

function [referSig,sigSamNumber] = ReferenceSignal(chirpRate,windowDuration,samplingFrequency,plotEnableHigh)
% 该函数用于产生dechirp雷达的参考信号
%  Author:王壮壮 2024.1.14 @shenzhen
% Input : 
%   * chirpRate: 调频斜率
%   * windowDuration:接收信号的时间窗,一般要大于雷达的线性调频信号的脉宽
%   * samplingFrequency:采样频率,参考值:2倍的信号带宽
%   * plotEnableHigh: 绘图控制符,1:打开绘图,0:关闭绘图
% Output : 
%    * referSig:参考信号,也是一个线性调频信号,但是脉宽要大于雷达发射的LFM信号
%    * pulseNumber:当前采样率下线性调频信号的采样点数
C = 3.0e8;      %光速(m/s)
TimeWidth = windowDuration; %接收窗的时宽
Fs = samplingFrequency;         %采样频率
%=========================================================================%
%                              产生线性调频信号                           %
%=========================================================================%
number = fix(Fs*TimeWidth); %采样点数
if rem(number,2)~=0
    nember = nember + 1;
end
% Chirp = zeros(1,number);
for i = -fix(number/2):fix(number/2)-1
    Chirp(i+fix(number/2)+1)=exp(1j*(pi*chirpRate*(i/Fs)^2));%产生复ChIrp信号
end
%=========================================================================%
%                              返回参数                                   %
%=========================================================================%
referSig = conj(Chirp); %对复chirp信号进行共轭得到参考信号
sigSamNumber = number; %参考信号的采样点数
%=========================================================================%
%                        分析参考信号的频域                               %
%=========================================================================%
CHIRP = fftshift(fft(referSig))*2/sigSamNumber;  %对参考信号进行fft得到它的频域
frequency_index = Fs*(0:sigSamNumber-1)/sigSamNumber-Fs/2; %频率下标
%=========================================================================%
%                        绘制参考信号                                     %
%=========================================================================%
if plotEnableHigh == 1
    figure;
    subplot(2,1,1);plot((1:sigSamNumber),real(Chirp)); %绘制参考信号的时域波形
    xlabel('Sampling points'); ylabel('Amplitude');title('参考信号实部');
    subplot(2,1,2);plot(frequency_index,abs(CHIRP)); %绘制参考信号的频谱图
    xlabel('Frequency/Hz'); ylabel('Amplitude');title('参考信号的频谱');
end
end

绘制图形如下:
线性调频信号的解线调(dechirp,去斜)处理matlab仿真,雷达信号处理,matlab,信号处理

图3 参考信号时频图

线性调频信号的解线调(dechirp,去斜)处理matlab仿真,雷达信号处理,matlab,信号处理

图4 解线调信号时频图

总结

去斜处理的主要原理为用发射副本信号与回波混频得到基带信号,再用傅里叶变换提取基带信号频率,通过时域到频域的转换将时域脉冲信号压缩为频域上的一个峰。匹配滤波和解线调其实都是一个sinc函数乘以一个复指数项的形式,两者的sinc函数一个位于快时间域一个位于距离频率域。去斜处理在一些特殊场合,不仅运算简单,而且可以简化设备,已经广泛应用于SAR和ISAR中作脉冲压缩。文章来源地址https://www.toymoban.com/news/detail-807105.html

到了这里,关于线性调频信号的解线调(dechirp,去斜)处理matlab仿真的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 调频连续波(FMCW)波形设计、真实道路场景仿真及汽车自适应巡航控制信号处理(Matlab代码实现)

            目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 以下是关于调频连续波(FMCW)波形设计、真实道路场景仿真以及汽车自适应巡航控制信号处理的概述,以及Matlab代码实现的示例: 调频连续波(FMCW)波形设计:FMCW波形是一种特殊的雷达波形,通过改

    2024年02月16日
    浏览(42)
  • 线性调频Z变换 CZT

    线性调频Z变换 (chirp Z-transform) Z 变换公式: X ( z ) = ∑ n = 0 N − 1 x ( n ) z − n X(z)=sum_{n=0}^{N-1}x(n)z^{-n} X ( z ) = n = 0 ∑ N − 1 ​ x ( n ) z − n 令 z = z k = A W − k = ( A 0 e j θ 0 ) ( W 0 e − j φ 0 ) − k = ( A 0 e j θ 0 ) ( W 0 − k e j φ 0 k ) , k = 0 , 1... , M − 1 z=z_k=AW^{-k}=left(A_0e^{jtheta_0

    2024年02月01日
    浏览(48)
  • 线性代数在数字信号处理中的重要性

    数字信号处理(Digital Signal Processing, DSP)是一种利用数字计算机对连续信号或离散信号进行处理的方法。它广泛应用于电子设计、通信、图像处理、音频处理、机器学习等领域。线性代数是数学的一个分支,主要研究的是矩阵和向量的运算。在数字信号处理中,线性代数发挥着

    2024年02月19日
    浏览(40)
  • 互为对偶的两个线性规划问题的解存在关系

    提示: 互为对偶的两个线性规划问题的解存在关系 A原问题无可行解,对偶问题也无可行解 B对偶问题有可行解,原问题可能无可行解 C若最优解存在,则最优解相同 D一个问题无可行解,则另一个问题具有无界解 链接:https://www.nowcoder.com/questionTerminal/076987f0256c462097a2c0bc3c639

    2023年04月09日
    浏览(40)
  • 二阶常系数非齐次线性微分方程@经典类型1的解

    二阶常系数非齐次线性微分方程 待定系数法可解决的经典类型1及其解法总结与应用 本文给出类型1为什么可以通过待定求出特解,并且待定函数要设成什么形式 推理过程有一定工作量,而在应用中只需要记住可以用待定系数法求解,以及待定系数函数的形式公式以及公式中各部

    2024年02月06日
    浏览(46)
  • 基于vivado DDS ip核的DDS信号发生器(可调频调相)

    基于Vivado DDS ip核的DDS信号发生器: 在Vivado软件中调出DDS ip核进行设置,很多参数可以参考xilinx官方手册,比较重要的是System Clock系统时钟和Phase Widh相位宽度的设置,这是最终得到波形的频率和相位所需要的基础参数,在这里我分别设置为50Mhz和16bit。 在implementation页面设置频

    2024年02月12日
    浏览(37)
  • 【线代】矩阵的秩和线性方程组的解的情况

    行最简型矩阵 :(也可以叫做行最简阶梯型矩阵,或者行简化阶梯型矩阵),其特点是:非零行的首非零元为1,且这些非零元所在的列的其它元素都为0。所谓的行最简的意思就是对应的方程组是“最简单的”,就是说,对应的方程组,最多只需要移项就行了,不再需要其他任何

    2024年01月19日
    浏览(41)
  • 【MATLAB库函数系列】线性调频Z(Chirp-Z,CZT)的MATLAB源码和C语言实现

    在上一篇博客 【数字信号处理】线性调频Z(Chirp-Z,CZT)算法详解 已经详细介绍了CZT变换的应用背景和原理,先回顾一下: 采用 FFT 算法可以很快计算出全部 N N N 点 DFT 值,即Z变换 X ( z ) X(z)

    2024年02月04日
    浏览(44)
  • 嵌入式教学实验箱_数字信号处理实验箱_操作教程:5-16 灰度图像线性变换(LCD显示)

    学习灰度图像线性变换的原理,掌握图像的读取方法,并实现在LCD上显示线性变换前后的图像。 一般成像系统只具有一定的亮度范围,亮度的最大值与最小值之比称为对比度。由于形成图像的系统亮度有限,常出现对比度不足的弊病,使人眼观看图像时视觉效果很差,通过灰

    2024年02月03日
    浏览(68)
  • 【随机信号分析2】随机信号通过线性系统仿真和窄带随机信号仿真

    1.讨论随机信号通过线性系统之后的自相关函数和功率谱密度。 2.窄带随机信号的产生与窄带高斯信号包络和相位的概率分布。 实验程序: h=fir1(71,[0.25 0.55]); [HH,WW]=freqz(h,1,512); subplot(211); plot(WW/pi,20*log10(abs(HH))); title(“幅度谱”) grid on; axis([0 1 -100 0]); subplot(212); plot(WW/pi,unwrap

    2024年02月12日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包