匹配滤波增益matlab仿真附报告

作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机 

⛄ 内容介绍

根据雷达原理,匹配滤波系统输出信号比输入信号幅度增大倍。但是,在实际仿真过程中发现幅度增益与理论值不一致。这是因为该结论是在输入信号为模拟信号,并且将匹配滤波器的频谱归一化的前提下得出的。仿真中的信号是经过采样的数字信号,匹配滤波器的频谱也没有进行归一化。

根据采样理论,一个连续信号经采样后,采样信号的频谱幅度变为原信号频谱的Fs倍。回波信号和匹配滤波器分别进行傅里叶变换,相乘后再经过逆傅里叶变换,幅度总共比采样前增加Fs倍。未经归一化的模拟匹配滤波器的幅度为。所以,脉压后幅度增加为。

⛄ 部分代码

%% *****************模拟回波带fd的原理**********************

clear all

clc

close all

Fs = 10e6; %脉冲周期倒数

Bw = 30e6;%调频带宽30MHz

polar = 1;

fd = 0;

pulseNum = 16;

Pw = 100e-6;

PRT = 500e-6;

prtPointNum = PRT * Fs;

pwPointNum = Pw * Fs;

    % 噪声增益计算

    Gs(i, 1) = dpcsignalAmp/signaAmp;

    Gn(i, 1) = dpcNoiseAmp/NoiseAmpBeforeDpc;

    SNR0(i, 1) = db(signaAmp/NoiseAmpBeforeDpc);

    SNR1(i, 1) = db(dpcsignalAmp/dpcNoiseAmp);

    Gsnr(i, 1) = SNR1(i, 1) - SNR0(i, 1);

    figure(10)

    x = 1 : prtPointNum;

    subplot(3, 1, 1)

    plot(x, abs(signal_td_matrix(:, 1)), '-b')

    grid

    xlabel('t/s');

    ylabel('幅度');

    title('LFM信号real part');

    subplot(3, 1, 2)

    f = linspace(-Fs/2, Fs/2, Nfft) ./ 1e6; % 单位换算成MHz

    dpcSys = fftshift(conj(fft(replica_matrix, Nfft))); % 滤波器系统函数

    plot(f, abs(dpcSys(:, 1)), '-b')

    xlabel('w/hz');

    ylabel('幅度');

    title('经过匹配滤波器后的频谱');

    grid

    subplot(3, 1, 3)

    plot(x, echoPcMod(:, 1), '-b')

    grid

    title('脉压信号幅度')

end

Gsnr_avr = mean(Gsnr);

figure(1)

plot(Gsnr),

xlabel('运行次数')

ylabel('Gsnr(dB)')

title(['SNR增益均值:', num2str(Gsnr_avr)])

grid on

⛄ 运行结果

⛄ 参考文献

⛄ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
这是一个MATLAB仿真程序,用于演示激光雷达和IMU的卡尔曼滤波融合。程序包括三个部分:激光雷达数据读取、IMU数据读取和卡尔曼滤波。程序可以读取激光雷达和IMU的离线数据,并将两种传感器的数据融合在一起,输出融合后的结果。程序演示了如何应用卡尔曼滤波将激光雷达和IMU的数据进行融合,从而达到更准确的结果。以下是程序的详细说明: 1. 激光雷达数据读取部分 在程序中,使用MATLAB自带的pcread函数读取离线激光雷达数据。该函数会将激光雷达返回的点云数据读取为MATLAB中的点云对象。点云对象包含了激光雷达返回的点的位置和反射强度等信息。在本程序中,点的位置信息用于进行卡尔曼滤波融合。 2. IMU数据读取部分 IMU数据的读取比较简单。将离线IMU数据读取为MATLAB矩阵即可。在本程序中,IMU数据的角速度和加速度信息用于进行卡尔曼滤波融合。 3. 卡尔曼滤波部分 卡尔曼滤波(Kalman Filter)是一种最优估计算法,用于将含有噪声的数据进行平滑处理或者预测未来值。在本程序中,我们将激光雷达和IMU的数据进行融合,使用卡尔曼滤波算法得到更加准确的结果。 卡尔曼滤波分为两个步骤:预测和更新。在预测步骤中,我们使用IMU数据进行预测,得到下一时刻的速度和位置信息。在更新步骤中,我们使用激光雷达数据进行更新,根据测量值和预测值的误差来调整卡尔曼滤波器的状态估计。在本程序中,我们使用MATLAB自带的卡尔曼滤波函数kalmanfilter来实现卡尔曼滤波算法。 程序中的卡尔曼滤波部分的伪代码如下: % 预测步骤 x_pre = A * x_post + B * u; P_pre = A * P_post * A' + Q; % 更新步骤 K = P_pre * H' / (H * P_pre * H' + R); x_post = x_pre + K * (z - H * x_pre); P_post = (eye(n) - K * H) * P_pre; 其中,x_pre为预测状态,P_pre为预测状态的协方差矩阵,x_post为更新后的状态,P_post为更新后的协方差矩阵,A和B为状态转移矩阵,u为外界控制输入,z为测量值,H为测量矩阵,K为卡尔曼增益,Q为过程噪声协方差矩阵,R为测量噪声协方差矩阵,n为状态向量的维度,本程序中为4。 4. 程序运行 在运行程序之前,需要将激光雷达和IMU的离线数据准备好。将数据存储为MATLAB支持的格式(如.mat文件),然后在程序中读取。 将程序运行之后,主窗口会显示激光雷达和IMU读取的数据,并且会显示卡尔曼滤波融合后的结果。程序还会输出融合后的位置和速度信息。 该程序是一个简单的演示程序,可以帮助了解激光雷达和IMU的卡尔曼滤波融合方法。在实际应用中,可能需要根据具体的需求对程序进行调整和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值