振南技术干货集:FFT 你知道?那数字相敏检波 DPSD 呢?(1)

注解目录

1 、DPSD 的基础知识

1.1 应用模型

1.2 原理推导

1.3 硬件 PSD

(相敏检波,就是从繁乱复杂的信号中将我们关心的信号检出来,同时对相位敏感。

数学原理,逃不掉的,硬着头皮看吧。)

2 、DPSD 的典型应用

2.1 石油测井仪器

(《科拉深孔》和《地心末日》这两部电影看一下。上天难还是入地难?来看看振南参

与研发的地下探测仪器,高温高压高噪声,如何将数据采准?)

2.2 功率检测

(来看看振南如何检测 220V 交流电压、电流、功率和功率因子。)

2.3 电池内阻测量

1 、直流检测

2 、交流方法

(电池内阻反映了电池的放电能力和剩余电量,内阻如何测?来看一下。)

2.4 风速风向检测

1 、风杯式(旋转式)

2 、超声波风速风向

3 、声共振风速风向(很牛的技术)

(如何测风速风向?用超声 TOF 法。那你 out 了,来看看来自英国山伯利团队的声共振技术,这是一项伟大的发明。振南也作出了原型机。)

我是在 2012 年开始接触数字相敏检波算法的(DPSD),对它进行了深入的研究。DPSD在工程上有很大的实用意义,其主要作用是从原始信号中提取出特定频率的信号,包括它的实部、虚部、模值以及与参考信号之间的相位差。

它属于是数字信号处理范畴内的一种交流信号处理方法。关于数字信号处理大家更多用到的是 FFT(快速傅立叶变换)。其实除了 FFT,还有很多,包括各种数据变换、滤波等。这一章振南主要介绍数字相敏检波,请看正文

1

DPSD 的基础知识

1.1 应用模型


基本的应用模型如图 17.1 所示。

我们经常会有这样的需求:向被测对象发射一段信号,然后接收其经过被测对象之后的返回信号。通过对返回信号与发射信号的比较,来推算被测对象的物理性质,比如电阻率、容性或阻性负载等等。

只是被测对象的性质可能会比较复杂,它会对信号产生衰减、相移、噪声掺杂等作用,使得接收到的信号面目全非,有用的信号被完全淹没了。为了解决这一问题,通常对发射信号以特定频率进行调制,然后到接收信号中去找这个特定频率的信号分量,我们比较关注的是信号的等效幅值以及与发射信号的相位差。

实际的应用情况可能更复杂一些,如图 17.2 所示。

为了获取被测对象更多信息,我们可能并不只给他发射单一频率的信号,而是多种频率这些信号在被测对象中混频,夹杂着衰减、相移和噪声一同回到接收端。我们需要把各个频率的信号分量从接收信号中检测出来。


图 17.1 DPSD 的基本应用模型 


图 17.2 DPSD 的复杂应用模型

1.2 原理推导


我知道大家看书最烦的就是公示罗列,我也很反感这样的书籍。但是很多技术的根源从本质上说是数学,有时一些逻辑清晰的数学推导,可以为我们揭示更深层的原理,提升我们的认知。关于 DPSD,当时我公司的一位资深专家,留美的博士给出了它的数学推导,奠定了数字相敏检波应用的基础(这一算法有一定的专利性质)。数学推导如下,我保证所有人都能接受

假设待测量的信号,即接收信号中的特定频率分量 d(t)为


式中,D 为待测量信号幅度; 为待测信号与参数信号的频率; 为待测信号与参考信号之间的相位差。我们将 Dcos(φ)记为 DR,Dsinφ记为 Dx。它们分别为待测信号幅值的实部与虚部。



推导就此打住,我们从宏观认知上来解释一下推导的结果。Dr=R’的意思是待测的特定频率信号分量的幅值实部是接收信号与特定频率标准参考信号的乘积的积分的均值的2 倍。

1.3 硬件 PSD


基于数学原理的 DPSD 的实现必然需要高性能的 DSP 和高速 ADC,这限制了 DPSD 的工程应用,尤其是比较老的产品中。那它们是如何实现相敏检波的呢?工程师们使用纯硬件电路来实现相应的功能(PSD 电路的相关原理和实现细节,大家可以百度一下,这里不再赘述),但是精度和稳定性并不理想,尤其是在一些极端的工业场合,比如石油勘探(地下每深入30 m 温度上升1C)极寒环境超长期工作等,主要是因为电子元件的温漂时漂等物理特性而导致的。

但是随着半导体技术的飞速发展,芯片的性能和价格趋于平衡,使得产品的外围电路得以精简,原来的电路功能更多被纯数字方式和信号处理算法替代。从某种意义上来说,传统电路工程师的地位在下降,而对嵌入式软件和算法工程师的要求在不断提高。传统的嵌入式软件工程师,更多的工作集中在业务逻辑、用户界面、数据采集存储等方面,现在则需要更多的技能,比如数字信号处理、数据前端处理等等,以及随之而来的算法仿真与验证。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/174697.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【电路笔记】-电阻器颜色代码与阻值计算

电阻器颜色代码与阻值计算 文章目录 电阻器颜色代码与阻值计算1、概述2、计算电阻器颜色代码值3、贴片电阻器 电阻器颜色编码使用色带轻松识别电阻器的电阻值及其百分比容差。 1、概述 由于有许多不同类型的电阻器可用,我们需要形成电阻器颜色代码系统以便能够识别…

LuatOS-SOC接口文档(air780E)--repl - “读取-求值-输出” 循环

示例 --[[ 本功能支持的模块及对应的端口 模块/芯片 端口 波特率及其他参数 Air101/Air103 UART0 921600 8 None 1 Air105 UART0 1500000 8 None 1 ESP32C3 UART0 921600 8 None 1 -- 注意, 简约版(无CH343)不支持 ESP32C2 …

Java 注解在 Android 中的使用场景

Java 元注解有 5 种,常用的是 Target 和 Retention 两个。 其中 Retention 表示保留级别,有三种: RetentionPolicy.SOURCE - 标记的注解仅保留在源码级别中,并被编译器忽略RetentionPolicy.CLASS - 标记的注解在编译时由编译器保…

力扣104. 二叉树的最大深度

目录 1.解题思路2.代码实现 1.解题思路 如果我们知道了左子树和右子树的最大深度,那么该二叉树的最大深度即为大的深度加一,而左子树和右子树的最大深度又可以以同样的方式进行计算。因此我们可以用「深度优先搜索」的方法来计算二叉树的最大深度。具体而言&#x…

Vue框架学习笔记——事件scroll和wheel的区别

文章目录 前文提要滚动条滚动事件 scroll鼠标滚动事件 wheel二者不同点 前文提要 本人仅做个人学习记录,如有错误,请多包涵 滚动条滚动事件 scroll scroll事件绑定html页面中的指定滚动条,无论你拖拽滚动条,选中滚动条之后按键盘…

Doris的PROPERTIES与ENGINE(九)

接上篇----------Doris分区与分桶 在建表语句的最后 PROPERTIES 中,可以指定以下两个参数: replication_num 每个 Tablet 的副本数量。默认为 3,建议保持默认即可。在建表语句中,所有 Partition 中的 Tablet 副本数量统一指定。…

【论文阅读】TACAN:控制器局域网中通过隐蔽通道的发送器认证

文章目录 摘要一、引言二、相关工作三、系统和对手模型3.1 系统模型对手模型 四、TACAN4.1 TACAN 架构4.2 发送方认证协议4.3 基于IAT的隐蔽通道4.4 基于偏移的隐蔽通道(本节公式格式暂未整理)4.5 基于LSB的隐蔽通道 摘要 如今,汽车系统与现…

一个GPU版本的遗传算法迭代xgboost最优参数的示例,这里用的是自定义损失函数

一个简单的遗传算法迭代xgboost最优参数的示例,这里用的是自定义损失函数 import pandas as pd import numpy as np import xgboost as xgb from sko.GA import GA from sklearn.model_selection import train_test_split from sklearn.linear_model import Logisti…

vscode Markdown 预览样式美化多方案推荐

优雅的使用 vscode写 Markdown,预览样式美化 1 介绍 我已经习惯使用 vscode 写 markdown。不是很喜欢他的 markdown 样式,尤其是代码块高亮的样式。当然用 vscode 大家基本上都会选择安装一个Markdown-preview-enhanced的插件,这个插件的确…

SpringBoot定时任务报错Unexpected error occurred in scheduled task原因及其解决方法(亲测有效)

问题 spring boot项目在线上一直正常运行没有错误,然后今天发生了报错,如图 这是一个定时器错误,发生这个报错 主要有两个原因 定时器编写的有错误Scheduled注解方式级别高于资源注入级别,导致了资源注入失败 以下是我的代码 …

单片机学习4——中断的概念

中断的概念: CPU在处理A事件的时候,发生了B事件,请求CPU迅速去处理。(中断产生) CPU暂时中断当前的工作,转去处理B事件。(中断响应和中断服务) 待CPU将B事件处理完毕后&#xff0…

【物联网开发】、【小程序蓝牙通讯数据校验】JS CRC-16-MODBUS 验证 高位在前地位在后;JS异或校验;16进制字符串和float互转

1.CRC校验 /*计算CRC-16/MODBUS校验位高低位*/ function calculateCRC16Modbus(dataHexString) {const dataBytes [];for (let i 0; i < dataHexString.length; i 2) {dataBytes.push(parseInt(dataHexString.substr(i, 2), 16));}let crc 0xFFFF;const polynomial 0x…

【数据结构初阶(5)】链式队列的基本操作实现

文章目录 队列的定义初始化队列队尾入队列队头出队列取队头元素取队尾元素获取队列有效元素个数判断队空销毁队列 因为队列比较简单&#xff0c;关于队列的概念就不过多赘述了&#xff0c;本文只讲链队的基本操作实现 队列的定义 定义队列结点结构 链队中的每个结点都应该包…

windows安装mysql5.7.26

解压mysql5.7.26文件夹拷贝到c:下 添加系统环境变量C:\mysql-5.7.26\bin cmd管理员打开终端,进入C:\mysql-5.7.26\bin 运行mysqld --initialize&#xff0c;生成data目录的文件。 在安装目录下创建my.ini文件&#xff0c;点击编辑&#xff0c;配置以下信息&#xff1a; 设置my…

Go 数字类型

一、数字类型 1、Golang 数据类型介绍 Go 语言中数据类型分为&#xff1a;基本数据类型和复合数据类型基本数据类型有&#xff1a; 整型、浮点型、布尔型、字符串复合数据类型有&#xff1a; 数组、切片、结构体、函数、map、通道&#xff08;channel&#xff09;、接口 2、…

什么是 dropblock

大家好啊&#xff0c;我是董董灿。 之前介绍过 dropout 算法&#xff0c;它在训练神经网络中&#xff0c;可以随机丢弃神经元&#xff0c;是一种防止网络过拟合的方法。 但是在卷积神经网络中&#xff0c;dropout 的表现却不是很好&#xff0c;于是研究人员又搞了一个“结构化…

Python列表:操作与实例分析,你值得一看!

Python列表是一种重要的数据结构&#xff0c;它允许您存储和管理多个数据项。本文将深入探讨Python列表的操作&#xff0c;以及通过具体实例分析如何使用它们&#xff0c;以帮助您更好地理解和优化您的代码。 什么是Python列表&#xff1f; Python列表是一种有序、可变的数据结…

基于51单片机的全自动洗衣机proteus仿真设计

标题目录 &#x1f4ab;51单片机全自动洗衣机proteus仿真设计&#x1f4ab;设计介绍&#x1f4ab;仿真图电动机驱动模块电路设计电源模块电路设计控制按键进水阀和排水阀控制继电器 &#x1f4ab;程序设计main函数 &#x1f4ab;设计报告&#x1f4ab;资料清单&&下载链…

递归实现选择排序.

思路: 1.定位数组中的最大元素或最小元素 2.将其与第一个元素交换位置 3.接着将剩余未排序的元素中的最大值或最小值与第二个元素交换位置 4.以此类推,直到排序完成 示例: [ 8, 5, 1, 9, 3 ] //原始数组 [ 1, 5, 8, 9, 3 ] //3与8交换 [ 1, 3, 8, 9, 5 ] //3与5交换 [ 1,…

PC行内编辑

点击编辑&#xff0c;行内编辑输入框出现&#xff0c;给列表的每条数据定义编辑标记&#xff0c;最后一定记得 v-model双向绑定&#xff0c;使数据回显。 步骤&#xff1a; 1、给行数据定义编辑标记 2、点击行编辑标记&#xff08;isedit&#xff09; 3、插槽根据标记渲染表单 …