说明

最近想探讨一下毫米波雷达测量准确度及其改善的问题,这个话题下可供讨论的问题有很多,蒙特卡罗方法(或者说基于蒙特卡罗方法对测量准确度以及精度的评估)是其中之一,该方法是一个十分有效的工具,在科研(发paper)上也是不可少的。在探讨测量的准确度之前,我将先分解并讨论几个小的话题,最后以测量准确度的话题进行汇总。本博文试图捋清楚蒙特卡罗方法及其在信号处理中的应用

Blog

20230520  博文第一次写作

谨以此文献给墨の宝,感谢投喂午餐!祝520快乐!

目录

说明

目录

一、什么是蒙特卡罗方法

二、蒙特卡罗方法在信号处理与算法验证中的作用

三、基于蒙特卡罗方法对车载毫米波雷达测角算法的评估

3.1 评估特定SNR值时,不同角度下,DBF测角算法的准确度和精度

3.2 评估不同SNR下,DBF测角算法的准确度

四、总结

五、参考资料

六、博文相关仿真代码


一、什么是蒙特卡罗方法

    该方法是一种关于概率的实验方法,是由冯诺依曼和乌拉姆等人发明的,蒙特卡罗这个名字取自摩纳哥的蒙特卡罗赌场。那么,什么是关于概率的实验方法它的本质是利用事件发生的频率作为事件发生概率的近似值。举个例子:

图1.1  蒙特卡罗方法讲解示例图

上图中假设我们不知道圆面积的计算公式,或者知道公式是pi*r^2,但是不知道pi的具体值,(总之我们没法用数值计算的方法得到圆的面积),此时怎么得出圆的面积是多少?一种可行的方法是:用概率的方法推得面积,如果我们在正方形的整个区域内随机生成散点,比如总共随机生成了N个点,然后其中有M个点落在了圆形区域内,那么落在圆形区域的频率为M/N,不难理解的是,当我们实验的次数N足够多,M/N的值会接近于(圆的面积÷正方形的面积),该值也是散点落在圆中的概率,此时我们可以用正方形的面积*(M/N)得到圆的面积。

再回到我们前文那句话:它的本质是利用事件发生的频率作为事件发生概率的近似值,上面的例子对这句话做出了解释相信已经不难理解了此外,实验的次数需要越多越好(次数越多频率才越接近真实的概率值)这其实和我们高中学概率知识时老师常举的例子类似:当你掷硬币的次数足够多时,硬币正面朝上总次数必然等于所掷次数的一半。

关于上面的例子,我也写仿真了一下。算法概述和流程为:以圆的中心作为坐标原点,分别在x、y为(-1 1)的范围内随机生成:10、100、100000个点,并判断这些点离坐标原点的距离是否小于或等于1(是,则位于圆内),基于处于圆内的频率*正方形的面积来得到圆的面积。(代码见博文第六章的链接,后面章节的仿真代码我也一同上传了) 。得到的结果如下:

图1.2 在正方形区域内随机生成的点 结果图

图1.3  基于蒙特卡罗方法求解圆面积的结果

    可以看到,实验的次数越多,得到的结果越准确(接近真实值)

二、蒙特卡罗方法在信号处理与算法验证中的作用

前文第一章讲清楚了该方法是什么以及怎么用。该方法和信号处理以及算法验证扯上关系主要是我们可以通过这种方法背后的思想(多次随机试验)来评估信号处理或算法的准确度以及精度

它的应用场景有很多,这里以车载毫米波雷达的测角算法(关于测角可以参考我之前的博文:车载毫米波雷达DOA估计综述_墨@#≯的博客-CSDN博客)为例说说它的应用。

比如我们要去评估DBF算法在雷达视场范围内的测角精度和准确度,那么我们可以在视场范围内的每个角度下进行N次蒙特卡罗试验,看看DBF下的测量结果与真实值的差异,并进而得到测量的精度和准确度。

    或者,我们可以去评估不同SNR下使用DBF算法时测量结果的准确度。此时针对特定的SNR,在视场范围内随机生成N次目标,看看DBF下的测量结果与真实值的差异,并进而得到不同SNR下使用DBF算法测量时的准确度。

后文第三章分别对前述这两种情况进行仿真。

三、基于蒙特卡罗方法对车载毫米波雷达测角算法的评估

进入后文仿真的内容之前,先弄清楚两个简单的概念:准确度(accuracy)和精度(precision)。这两个概念应该是关于测量准确度那篇博文中的内容,但是这里需要用到,于是先捋一下。

在做测量时,准确度是我们用以衡量测量值和真实值之间差值大小的一个概念,精度是我们用以衡量测量值之间(各测量值和测量值的均值)离散程度的一个概念。以射箭为例,假如靶心是我们的真实值(10分),而我们每次射箭都偏了几环,射在7分左右,此时可以说我们的准确度不好但是精度不错。准确度和精度是两个独立的概念。

更具体地,我们可以用RMSE(Root Mean Square Error)均方根误差对测量的准确度进行定量,用SD(Standard Deviation)标准差来定量测量的精度。

                                   (3-1)

                                     (3-2)

3.1 评估特定SNR值时,不同角度下,DBF测角算法的准确度和精度

1、实验说明:

设定雷达视场范围(测角范围)为±75°,以1°为步进,每度进行100次蒙特卡罗实验,看看DBF算法下不同角度下测量结果的准确度和精度。仿真中,目标的SNR值取12dB,测角阵列为8阵元间隔0.5个波长的均匀阵。

2、实验结果

图3.1  基于蒙特卡罗方法评估不同角度下DBF测角算法的准确度和精度结果

3、实验小结

从上图可以看到,从大角度接近0°时,RMSE和SD整体来看都是在减小的,阵列的分辨率与孔径大小和目标所在角度有关:

                                             (3-3)

当在阵列法线方向时,θ= 0°,此时θres最小,理论上来说测量的准确度和精度都会增加。实验结果与理论是相符合的。

3.2 评估不同SNR下,DBF测角算法的准确度

1、实验说明:

以5dB为起始SNR值,以2dB为步进,直到55dB。在±75°范围内随机生成1000次目标,看看不同SNR值下,DBF测角算法的准确度。仿真中,测角阵列为8阵元间隔0.5个波长的均匀阵。因为这里是随机生成不同的角度,所以没法求解精度,这里只评估准确度。

2、实验结果

图3.2  基于蒙特卡罗方法评估不同SNR下DBF测角算法的准确度

3、实验小结

从图中可以看到测量的准确度随着SNR的增加有很明显的改善。测量的准确度主要取决于两个因素:分辨率和SNR,这在本章的实验中有了很好的体现,不过更具体的我将在后面关于测量准确度的博文中给出分析。

四、总结

本博文试图捋清楚蒙特卡罗方法及其在信号处理中的应用。首先简单介绍了蒙特卡罗方法,并基于该方法进行了求正方形内圆面积的仿真验证,随后探讨了该方法在信号处理中的应用,并以DBF测角算法为例,分别仿真评估了特定SNR值下,DBF算法在不同角度下测量的准确度和精度、以及在不同SNR值下,DBF测角算法的准确度。

蒙特卡罗方法是一个很好且很实用的工具,本博文中所有的仿真代码见所附的参考资料链接,代码中很多的参数读者可以自行修改,探讨其它参数(比如不同阵列孔径)下,DBF测角算法的准确度等。本博文如有不妥或需要补充的地方欢迎读者评论,我会不定期更新,我们一起维护。

五、参考资料

六、博文相关仿真代码

关于蒙特卡罗方法及其在信号处理中的应用博文相对应的代码资源-CSDN文库

关于蒙特卡罗方法及其在信号处理中的应用相关推荐

  1. 蒙特卡罗方法在金融领域中的应用:从风险管理到投资组合优化

    作者:禅与计算机程序设计艺术 "蒙特卡罗方法"这个词已经存在很久了,它最早由英国数学家罗素提出,是指用随机数模拟的方法解决复杂问题的一个数学方法.由于其随机性质,蒙特卡罗方法在数值 ...

  2. python 随机数_python项目实战:实现蒙特卡罗方法,求物体阴影面积

    前言 蒙特卡罗方法是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法.与它对应的是确定性算法.蒙特·卡罗方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算.量子热力学计算.空气动力学计 ...

  3. python 蒙特卡罗_python实现蒙特卡罗方法教程

    蒙特卡罗方法是一种统计模拟方法,由冯·诺依曼和乌拉姆提出,在大量的随机数下,根据概率估计结果,随机数据越多,获得的结果越精确.下面我们将用python实现蒙特卡罗方法. 1.首先我们做一个简单的圆周率 ...

  4. python:蒙特卡罗方法计算圆周率

    求解圆周率可以采用蒙特卡罗方法,在一个正方形中撒点,根据在1/4圆内点的数量占总撒点数的比例计算圆周率值.‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭ ...

  5. python蒙特卡洛方法圆周率_python实现蒙特卡罗方法教程

    蒙特卡罗方法是一种统计模拟方法,由冯·诺依曼和乌拉姆提出,在大量的随机数下,根据概率估计结果,随机数据越多,获得的结果越精确.下面我们将用python实现蒙特卡罗方法. 1.首先我们做一个简单的圆周率 ...

  6. 蒙特卡罗方法(Monte Carlo method)

    蒙特卡罗方法(Monte Carlo method) 蒙特卡罗方法概述   蒙特卡罗方法又称统计模拟法.随机抽样技术,是一种随机模拟方法,以概率和统计理论方法为基础的一种计算方法,是使用随机数(或更常 ...

  7. 蒙特卡洛实现python过程_python项目实战:实现蒙特卡罗方法,求物体阴影面积

    前言 蒙特卡罗方法是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法.与它对应的是确定性算法.蒙特·卡罗方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算.量子热力学计算.空气动力学计 ...

  8. 金融工程中的蒙特卡罗方法

    <金融工程中的蒙特卡罗方法> 基本信息 原书名:Monte Carlo Methods in Financial Engineering 作者: Paul Glasserman 译者: 范 ...

  9. 数字滤波器在语音信号处理中的应用及其设计方法

    数字滤波器在语音信号处理中的应用及其设计方法 数字滤波器在语音信号处理中的应用较为广泛,主要有以下几个方面的应用: 用于语音信号的减噪: 用于基音频率的提取,使得基音频率落入(60~450HZ)之间: ...

最新文章

  1. session过期设置
  2. Excel VBA中的等价(Eqv)和蕴含(Imp)
  3. Chrome 开发者工具里的 CSS grid editor
  4. WPF 列表虚拟化时的滚动方式
  5. C++string类常用函数 c++中的string常用函数用法总结
  6. Go语言编程:使用条件变量Cond和channel通道实现多个生产者和消费者模型
  7. Python+django网页设计入门(7):常用ORM操作
  8. 《Web漏洞防护》读书笔记——第7章,访问控制防护
  9. PIC18单片机移植FreeModbus
  10. 32、T5L 迪文屏 C51开发之数据存储模型
  11. (附源码)基于PHP二手服装网站 毕业设计 201711
  12. /etc/issue和/etc/motd
  13. 2017.11.15作业
  14. linux 查看主板sn_Linux系统查看硬件信息
  15. 小米MIUI 360wifi掉线解决方案 落雨
  16. 互联网产品的项目架构
  17. 单片机与PC机一样都是计算机,单片机与pc机什么区别
  18. 浅谈学校OA办公系统实施的必要性和可行性
  19. Kubectl-AI: 一款使用 OpenAI GPT 自动生成应用 Kubernetes 部署清单的神器
  20. Solo 博客搭建指南

热门文章

  1. uniapp 发行 原生APP本地打包 安卓APK(最全的步骤)
  2. 软件工程师周兆熊给IT学子的倾情奉献
  3. SQLite:一个轻量级数据库
  4. 3D建模怎么学?可以自学吗?需要多久?难吗?
  5. oralce 客户端安装tnsping
  6. NumPy 图解教程
  7. 向量空间模型(VSM)算法
  8. python 字符串赋值操作_python字符串操作
  9. 快排 递归三种方式+非递归 --排序
  10. android开源项目!来一份全面的面试宝典练练手,通用流行框架大全