- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 Singer模型与CT模型状态转移矩阵的求解
Singer模型与CT模型状态转移矩阵的求解前言回想起来,第一次接触Singer模型与CT模型时的状态转移矩阵时,对求解过程一知半解。现在,将推导过程记录下来,温故知新。若有纰漏,欢迎讨论。状态方程当我们对一个线性时不变系统的输入输出与状态变量感兴趣时,状态空间方程是一种常用的手段。状态空间方程由状态方程与输出方程构成,可以表述为{x˙=Ax+Bu状态方程y=Cx+Du输出方程\left\{\begin{matrix} \dot{ \mathbf{x}} = \mathbf{Ax}+\mathb
2024-05-24 22:53:56
510
原创 雷达测速公式推导
其中,分解后的第一项为常数项。第二项为一单频信号,该单频信号的采样频率为。在这里,我们假设一个重复周期内目标在径向距离上近似不移动。最后,对上式做进一步混频,将频率由中频降至零中频,并作IQ变换可得到。从慢时间的维度看,不同的pulse只会影响。对上式做混频,将载频从射频混至中频,可得。将式(5)带入式(4),并作展开可得到。分量可忽略不计,我们仅关注最后一项。假某雷达系统参数为:载频。为目标与雷达的径向距离,为雷达脉冲重复周期,
2023-11-04 21:30:29
826
原创 扩展卡尔曼滤波器
扩展卡尔曼滤波器文章目录扩展卡尔曼滤波器前言一、泰勒展开二、扩展卡尔曼滤波器1.推导2.总结预测步:卡尔曼增益计算:滤波步:前言卡尔曼滤波器作为状态估计的一种重要方法,有着其使用范围的局限性。即,卡尔曼滤波器仅适用于线性系统中。这是因为卡尔曼滤波器使用的前提是先验分布是高斯似然分布的共轭先验。这就要求先验分布也是高斯的,并且可以确保后验分布与先验分布是属于同一个分布族的,即同属于高斯分布。根据高斯分布的性质,高斯分布在经过一个线性系统后,仍为高斯分布。但是高斯分布在经过一个非线性系统后,则无法
2023-06-18 17:19:15
306
原创 使用vector容器出现读取访问冲突的原因
其原因在于,vector容器指向一片连续的内存空间。其容量capacity原本是0。随着数据的不断压入,容量会不断扩容。当大于某一阈值后,计算机会选择将内存空间中的数据拷贝到另外一处内存地址,并删除原有内存地址上的数据。代码中,当第五次push操作后,a的地址发生了改变,而location->a的地址仍是旧地址,因此报错。该代码在执行最后一次push_back指令时,会报“读取访问权限冲突”的错误。1.提前扩容(reserve函数)2.不使用指向vector指针。以下是出现问题的代码。
2023-05-27 23:23:13
200
原创 从贝叶斯估计到卡尔曼滤波(详细推导)(下)
文章目录二.高斯加权分布的多维积分运算1.第一章总结2.修正卡尔曼滤波器更新方程的推导过程3.高斯密度下贝叶斯点预测的积分运算三.线性卡尔曼滤波器1.线性状态方程2.线性观测方程3.总结尾声承接上文 从贝叶斯滤波到卡尔曼滤波器(详细推导)(上)二.高斯加权分布的多维积分运算1.第一章总结现在我们针对上一章中的重要结果做一个简单回顾与总结。我们假设在一个动态过程,其形式满足下式xn=fn−1(xn−1)+un+vn−1(42)x_{n}=f_{n-1}(x_{n-1})+u_{n}+v_{n-1
2022-05-29 12:03:16
876
2
原创 QT OpenGL编译错误undefined reference to `_imp__glxxxx@4‘
遇到这种错误一般是QT编译的时候 缺少链接库在工程的.pro文件中添加win32:LIBS += -lOpengl32 \ -lglu32unix:LIBS += -lglut -lGLU即可解决问题
2022-04-11 19:32:32
1369
原创 VS 安装MKL库 KernelBase.dll处有未经处理的异常: 0xC06D007E: Module not found 解决方法
记录一下(毕竟搞了一天) 在安装最新版本的MKL库后 按照网上教程操作下来 却无法运行官方例程 cblas的函数都无法使用 报错内容如下:我不确定接下来哪一步是真正的解决步骤,遇到相同问题的朋友可以都尝试一下:因为晚上教程大多是MKL2018 与最新版的MKL在目录结构上有差异 所以在添加库文件路径的时候 我多添了几个以防万一之后又提示 找不到libiomp5md.dll 无法继续执行 网上搜索之后 虽然找到了解决方法 不过有因为版本不一致 目录结构不一样 所以自己瞎尝试了一番…我把以下文
2022-04-03 10:30:45
3323
5
原创 记录:频谱泄露、加窗、信噪比损失
FFT是时频域变换的常用工具,在工程应用中能够很大程度上减少计算量。但是,由于FFT有一个假设前提,即处理的时域信号是周期信号,当我们对一段时域信号做FFT时,FFT会将时域信号做周期性延拓。若实际应用中,待处理信号不满足周期性,则会引发“频谱泄露”问题。频谱泄露的具体原因以及公式推导这里不再赘述,已经有很多大佬对此展开过讨论。简单来说,是由于周期延拓后信号的不连续性导致的。这里做个简单的仿真验证一下。对两段时域中的余弦信号做FFT。其中一段符合周期性的条件,另一段不符合周期性条件。通过对比观察频谱
2022-03-29 10:29:25
4384
原创 记录---实函数对复变量求导公式推导
向量运算中,需要运用到实函数对复变量求导的公式,如下假设有一实函数,为一复变量,可表示为。则有如下公式话不多说,推导公式如下:定义,。则求导可得 (1-1)由于即将上式带入(1-1)可得此处引入一个定理,一个复值函数的求导可以表示为对比上面两式,可以得出结论推到完毕参考 https://mediatum.ub.tum.de/doc/631019/631019.pdf...
2022-03-11 17:04:33
1202
原创 【自适应波束形成算法】 ---- 线性约束最小方差准则(公式推导)
波束形成是阵列信号处理中的一个重要领域。常规的波束形成,可以通过FFT是实现,其权矢量一般由期望方向的导向矢量加窗后得到。假设有一个由N个阵元组成的线阵,有一来自方向的来波信号入射到阵元上,其导向矢量可以写为 其中,为阵元间距,为波长。则入射信号可以写为,为加性噪声。若该方向的信号为期望信号,则对该方向形成波束。对入射信号进行加权后,可以表示为,为加权权矢量,。 若想实现对方向的波束形成,则令即可。现在假设一仿真背景,有一个由11个阵元构成的均匀线阵(ULA...
2021-12-13 23:26:04
9978
13
原创 脉冲压缩与去斜处理的区别
在雷达信号处理中,常使用LFM(线性调频信号)作为发射信号波形以提高时宽带宽积,获得较好的分辨率。假设发射机发射的信号波形为St(t)S_{t}(t)St(t),写为St(t)=rect(Tte)cos(2πf0t+πμt2)S_{t}(t)=rect(\frac{T}{t_e})cos(2\pi f_0t+\pi \mu t^{2})St(t)=rect(teT)cos(2πf0t+πμt2)其中f0f_{0}f0为载频频率,μ\muμ为调频斜率,由BTe\frac{B}{T_{e}}Te
2021-10-31 15:26:38
9309
6
原创 VIVADO 实现线性调频信号脉冲压缩处理
仿真结果如下图具体的实现流程可以阅读知网上姜文博学长的“FPGA实现高速雷达信号脉冲压缩处理”一文。(很好的一篇论文,让我学习到了很多)若在代码方面有疑问,可以自行下载借鉴一下...
2021-08-11 11:37:42
2095
3
原创 vivado仿真报错:concurrent assignment to a non-net out is not permitted
是因为将输出定义为了reg,改为wire即可
2021-08-10 17:54:46
15124
原创 雷达信号处理---MTI滤波器设计仿真
MTI滤波器通过合理设置频率响应中的“凹口”能够有效的抑制杂波,提高雷达信号的信杂比,有利于运动目标的检测。以地杂波为例,其杂波功率主要分布在零频以及雷达重复频率的整数倍处,那么我们只要设计一个在杂波主要分布频率点处有“凹口”的滤波器,就能很好的抑制杂波。1.延迟线对消器延迟线对消器是比较常用的MTI滤波器之一。这里主要介绍单延迟线对消器以及双延迟线对消器。1)单延迟线对消器单延迟线对消器的实现框图如下。我们可由此写出输入信号与输出信号的关系y(t)=x(t)−x(t−Tr)y(t)=x(t)
2021-07-29 21:15:55
13788
1
原创 esp32烧录时遇到“Timed out waiting for packet content”解决方法
1.长按boot,使模块进入烧录模式。2.若已长按boot仍出现此问题,可能是由于此时开发板上接有其他外设,占用了某个烧录所用端口,拔掉所有外设再次烧录即可。
2021-07-27 10:26:23
12067
4
原创 雷达信号处理---线性调频信号脉冲压缩MATLAB实现
关于脉冲压缩的原理以及公式推导这里不再赘述,主要讲解如何通过MATLAB进行仿真。实现原理脉冲压缩是为了解决雷达作用距离与距离分辨率这一矛盾关系而产生的技术,普通雷达在提升雷达作用距离的同时,会使得距离分辨率下降许多,反之亦然。而脉冲压缩雷达发射的是大时宽带宽积的射频信号,这保证了雷达的作用距离;同时,接收端会对发射信号做脉冲压缩处理,得到形似sinc函数的信号,该信号具有很好的距离分辨能力。在接收端的具体实现过程如下图。其中,是雷达回波信号,是脉冲压缩的输出...
2021-07-13 17:04:52
15666
21
原创 复信号在信号处理中的意义
引言:前段时间在学习雷达信号处理的过程中,遇到一个问题,下图所示是两本书中对LFM信号做拉伸处理和低通滤波后的信号表达式的表述显然,这两个表达式并不相等,根据欧拉公式ejθ=cosθ+jsinθe^{j\theta }=cos\theta+jsin\theta ejθ=cosθ+jsinθ第二张图中的等式与第一张图的等式相比,少了虚部分量,这个问题让我十分不解。个人理解:这两个表达式的确并不相等,但是都是正确的。我们都知道,在实际工程应用和自然环境中,所有信号都是实信号。一般我们都用正
2021-07-08 15:39:45
2950
2
原创 解决solidworks导入stl文件就卡死的问题
最近在一个项目中需要将AD里画的一个PCB板导入Solidworks中进行建模,常规方法是将PCB文件导出为STL文件,再导入Solidworks,但是这次一导入就卡死在了“曲面裁剪”的步骤,最后整个软件卡住,被迫关掉…解决方法:将PCB文件导出时选择PARASOLID ,导出为x_t文件这时就能成功导入了!...
2021-07-07 22:54:55
3634
原创 【雷达信号处理】---雷达分辨率
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习..
2021-06-19 23:29:48
20127
2
原创 记录一下关于Keil打开工程中的.c文件就无响应卡死的解决办法
出现这个问题一般是在打开别人的工程文件时,由于对方的keil版本与自己keil版本不一致引起的,只要删除这个工程文件下的.uvopt文件即可解决。
2021-05-15 00:06:29
2435
3
原创 【雷达信号处理】---模糊函数与仿真
最近这段时间在自学雷达信号处理,因为没有基础,学习起来磕磕碰碰,以下是学习过程中的回顾总结,有不对的地方欢迎读者指正!一、模糊函数模糊函数的物理并不难理解。当两个目标同时被雷达监测到时,若这两个物体的位置、速度相差很多,那么就很容易被雷达分辨出来。若是这两个物体的位置、距离都十分相近,那么对于雷达本身来说就是个挑战。而模糊函数就是用来衡量雷达区分两个目标能力的强弱的。我们通常用χ(τ,ξ)\chi(\tau,\xi)χ(τ,ξ)表示模糊函数,其中τ\tauτ表示两个物体的回波信号相较于发射信号的延.
2021-05-13 22:44:13
22487
15
原创 MATLAB笔记---绘制三维图像
记录几个MATLAB中绘制三维图像的常用函数1.plot3(x,y,z)需要注意的是当你要绘制由线段连接的一组坐标,那么就将 x、y、z 指定为相同长度的向量。要在同一组坐标轴上绘制多组坐标,那么就将 x、y、z 中的至少一个指定为矩阵,其他指定为向量。现在通过几个实例看一下绘制效果t = linspace(-10,10,1000);xt = exp(-t./10).*sin(5*t);yt = exp(-t./10).*cos(5*t);p = plot3(xt,yt,t);p.Line
2021-05-13 16:35:18
8978
2
原创 Altium Designer笔记---PCB中添加自选LOGO
这里需要使用PCB Logo Creator,下载方式我会写在文章末尾,下载好后放在AD的安装目录下即可以下为AD17添加LOGO的方法,其他版本可能略有不同首先运行PCB Logo Creator脚本此时会自动新建一个PCB文件,并出现下图点击load,选择实现下载好的图片(注意,图片一定要是BMP格式,且是单色位图,可以下载好后用画图软件打开,另存为单色位图),再选择所要放置的版层,并且可以通过Scaning Factor调整LOGO大小,最后点击convert便可生成LOGO,再复制.
2021-05-09 12:16:59
526
原创 STM32笔记---USART3配置及收发数据
前段时间某个项目需要多串口收发数据,因此尝试了一番,参考了正点原子官方例程,现在记录下代码:USART3.c中先添加头文件:#include "sys.h"#include "usart.h" #include <stdarg.h>#include "stdio.h" #include "string.h"并定义://串口接收缓存区 u8 USART3_RX_BUF[USART3_MAX_RECV_LEN]; //接收缓冲,最大USART3_MAX_RECV
2021-05-09 11:38:53
11481
6
原创 STM32笔记---MDK编译错误 core_cm3.h(90): error: #5: cannot open source input file “stdint.h“: 解决方法
我是因为卸载了ADS之后,突然报了这个错,重装了两次KEIL都不行,明明是有stdint.h文件的…最后我手动把stdint.h文件复制到工程下的CORE文件夹中,就成功了
2021-05-09 11:04:35
2380
3
转载 STM32笔记---在编写串口printf函数时 报错error: #928: incorrect use of va_start
STM32笔记---在编写串口printf函数时 报错error: #928: incorrect use of va_start 记录一下:出现这个问题基本上是因为电脑中已下载了ADS(起码我的情况是这样),va_start头文件指向了ADS,只要卸载ADS和KEIL再重装KEIL即可,注意下载ADS时添加的环境变量也要删干净参考了https://blog.csdn.net/qq_34966814/article/details/80028274...
2021-05-09 10:53:57
904
1
LFM_comp.rar
2021-08-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人