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

注解目录

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 了,来看看来自英国山伯利团队的声共振技术,这是一项伟大的发明。振南也作出了原型机。)

DPSD 的典型应用

现在我们知道了 DPSD 可以实现精确的选频,以及两个同频信号之相位差的计算,这使得它有着非常广泛的应用。我们不说那些高大上的应用,只就几个实用而又不失趣味性的应用来进行介绍。

2.1 石油测井仪器


2011~2017 年我在中国石油任职,主要负责测井仪器中的嵌入式软件开发。

说些题外话,测井仪器可能是一个不被大家所熟知的行业。有人曾经问过我一个问题“上天难还是入地难?”应该说都很难,但如果非要比较一下,那我说是人地难。

人类的太空探索已经超出太阳系,但是到目前为止钻到的最大深度也只有 12263 m,而且花了 30 年的时间(大家可以去了解一下苏联的“科拉深孔”,还有同名的电影)。如前面所说地下每深 30 m,温度上升1C(这只是估算,实际情况可能更甚),可想而知下面几千米的深度,钻头就已经变成面条了。这对于电子元件和仪器材料都提出了非常高的要求,甚至是十分苛刻的。我们知道一般的电子元件的标准工业温度范围是-20~十85C,军品是一40~+125C,哪怕是航天级也只不过是-55~+150C。大家可以想象一下研发测井仪器到底有多难。有一部电影叫《地心末日》,其想象力比太空题材要丰富得多,大家可以看一下。

回到正题。测井仪器中大量使用了 DPSD,可以说这是一种基础性的方法,大家请看图 17.3。


图 17.3 侧向测井仪器基本工作原理

图 17.3 描述了侧向测井仪器的基本工作原理。此类仪器主要的功能是用于地层电阻率的测量。它通过发射极板向地层中注入大功率的特定频率的电流,电流流经地层,产生相移与衰减,最终进入接收极板。很显然接收极板上接收到的信号是混合频率的,我们需要将各个频率提取出来,计算其幅值与相位变化。发射通道可能会有很多,即接收信号会有很多种频率成分。通常这些通道的处理是同时的(各通道的检波结果会被代入电阻率计算公式),因此我们需要完成多路信号的同步采样以及计算,这需要高性能的 ADC 和 DSP。当时我主要负责的就是这部分,数据采集中大量使用了 DMA,数据处理则不断精简优化算法,最终榨 DSP 的所有性能。

说到这,可能会有人问:“石油深深地埋在地下,到底是怎样找到的?”没从事过石油行业的人可能对石油勘探不甚了解。石油人首先会去确定油气藏的大致区域,主要靠地表地形来进行初步的判断。一般呈凹陷形态的区域储油的可能性比较大,比如盆地。然后是验证,通常采用地震法,就是在确定的区域人为制造一场小地震,通过分析地震波来进一步定位油气藏的具体位置。接下来会在确定区域,钻很多的深井,将测井仪器放下去,从而探明实际油气藏所在的深度和范围,并评估储量。所以,测井这个环节是非常重要的。有很多作测井仪器的公司,它们研发仪器并对外提供测井技术服务。就像计算机行业有巨头 Intel、AMD、ARM 一样,测井行业也有几大巨头,比如斯伦贝谢、哈里伯顿、贝克休斯等等。(中东这些国家石油储量非常大,占全球储量的 60%以上,但是他们本身技术水平并不发达,所以要依靠相关的石油技术服务公司来进行勘探、测井、培训和采油作业,所以石油技术服务这方面也是市场巨大的,而且是暴利。)

什么?有人调皮地问:“南哥,那你当时在哪个公司?”你猜!

再多说一些。测井仪器相关产品也是类型繁多。单从测井方法上说就有侧向、中子密度自然电位、超声成像,还有近些年比较流行的核测井。对这个行业感兴趣的同学,可以找相关资料看一下,还是很有前瞻性的。

2.2 功率检测


2016~2017 年,我一直处于创业的状态。经朋友介绍,我认识了一个善于市场运作的哥们,他很有创业的热情。我以前也一直有创业的想法,自己在搞产品,甚至在作一些风口上的东西,比如共享充电宝等。但是并没有什么大的起色和成果,究其原因还是我把技术看得太重,或者说我更擅长技术研发,而并不擅长市场推广和销售,把技术转为价值。

认识了这哥们之后,我觉得我俩能整出点动静来。而且,他的想法当时来看确实很有前瞻性和市场潜力,电动车共享充电柜。关于这一项目详细内容我们还是放到专门的章节去,不在这里赘述,我只介绍一下 DPSD 在其中的应用。

共享充电柜是按充电电量来收费的,它提供了一个可远程控制的 220 V 插座,我通过采集等效电压与电流来计算电量,请看图 17.4。


图 17.4 DPSD 在交流电量统计中的应用

我们使用单片机或 DSP,对互感器产生的 50Hz 交流电压和电流进行相敏检波,从而得到

其等效值以及相位差,进而可以计算视在有功和无功功率。可能你会问;“有专门的电力计量芯片,何必自已搞?”主要还是成本考虑。现成的芯片,比如 ATT7022,价格基本在 10 元左右,而且互感器这些周边器件也不能少。其实我们对电量计算的精度要求并不高,因此使用软件算法来实现,可以使产品成本大幅下降。而且还可以简化电路,提高产品稳定性。

我想,现在很多工业和消费电子产品的功能越来越多,电路规模越来越大。这也许是各大芯片厂商不断提高采集器件和处理器性能的一个原因。把更多的功能交由处理器以数字方式来实现,比如滤波、信号提取等等。另一方面芯片的集成度越来越高,一颗芯片集成了 ADC、通信接口等,还有多核,甚至是异构多核(芯片中集成几种不同类型的处理器内核,如常见的ARM+DSP、DSP+FPGA 等)。可以设想,以后电子产品基本上都会使用单芯片方案。实际上,现在很多产品已经向这个方向发展了,比如电视、机顶盒。

整体方案数字化是以后的大趋势,所以建议广大电子行业从业者学习一些编译、算法、数字信号处理方面的知识,这样才会更有发展。

2.3 电池内阻测量


2019~2022 年,我供职于清华的一家创业公司,主要做低功耗智能传感器。很多产品都是电池供电的,很长一段时间都在研究如何评估电池剩余电量。“什么电池?如果是鲤电池那很好办,测量电池电压就行了。”确实,如果是鲤离子电池的话,是这样的,网上有一张电池电压与剩余电量的对照表,如表 17.1 所列。


但是很多一次性电池,比如磷酸铁鲤电池,它们的电压与电量之间并没有明显的对应关系。剩余电量在 20%以上时,电池电压几乎没有什么变化。拿两串的电池来说,电压基本都在 7.0~7.2 V。当电量到达一定水平时,电压会发生骤降。那到底如何评估电量呢?电池内阻。

严格意义上来说,电池内阻与电量并没有直接关系。电池内阻是由其材料特性决定的但是电池电阻可以反映电池放电的能力,由此我们可以大体估计其电量水平。

1直流检测

基本原理如图 17.5 所示。


图 17.5 直流检测电池内阻的基本原理

我们在电池两端接入放电负载,在不同电流下,U 会有不同的电压值,由以下公式可以计算内阻:


但实际上电池的内阻都很小,在一定电流下的电压变化并不大,要准确测量并不容易。而且测量是在电池放电过程中进行的,这就使得测量更加不准。所以,实际上这种方法测内阻的重复性很差,结果可信度较低

2.交流方法

基本原理如图 17.6 所示


图 17.6 直流检测电池内阻的基本原理

向电池馈入一个交流电流信号,测量由此信号产生的电压变化即可测得电池的内阻。在实际使用中,由于馈入信号的幅值有限,而电池的内阻在微欧或毫欧级,所以产生的电压变化也在微伏级,信号很容易受到干扰,直接去采集如此小的交流信号(比如使用传统的过零或峰值检测方法)比较困难。此时,我们使用DPSD 就可以很好地解决这个问题。因为 DPSD 有很强的选频特性,可以将干扰过滤掉。如果在信号前端再加上滤波器(可以是硬件或数字的),那效果就会更好。

2.4 风速风向检测


如果说前面的这几个应用,都算是比较传统的话,那这里要介绍的风速风向检测就是DPSD 比较妖魔化的应用了,其背后是一种被称为声共振的技术,应该很多人都不了解,振南着重说一下,来满足一下大家的好奇心。

先说说传统的风速风向检测技术,这样在比较之下,大家才能认识到声共振技术的先进之处

1.风杯式(旋转式)

这种风速风向仪应该是大家最常见的了,如图 17.7 所示。这种就不用多说了,原理一看就明白。什么?没见过?抬头看一下电线杆子上那个旋转的半球。有人说那是赶鸟用的,那个半球是小镜子,想象力也是挺丰富的。(以上文字仅代表振南本人观点,不一定对,网上有关于这方面的讨论,大家可以搜索看一下。很明显这种风速风向仪是靠机械转动来实现测量的,其缺点就显而易见了:故障率高、易老化,受天气影响较大等。尤其在结冰条件下,它基本形同虚设

2.超声波风速风向

这种的原理也很简单,如图 17.8 所示。


图 17.7 旋转风杯式风速风向仪


图 17.8 超声波测风速风向的原理示意

我们知道声波在静止空气中的传播速率是 340m/s(15C)。所以,如果两点之间距离固定,那声波传播所需要的时间就是一定的。风的本质是空气的流动,顺风助力声波传播,逆风则阻碍传播。基于这样的特性,我们可以通过精确测量超声发射头与接收头之间的时间来评估风速(这种用到达时间来测速或测距的方法被称为 TOF,即飞行时间,又称时差法,这种方法应用甚广.比如现在很流行的 UWB、激光测距等,大家感兴趣可以深人了解一下)。两个正交方向上的风速作矢量和即可得到风向。这类风速风向仪看似高端,但实际上有一个很大的弊端,别忘了声速与海拔是有很大关系的。

说了这么多风速风向的测量方法,DPSD 的应用在哪里? 振南老师你是不是写书写嗨了.

跑题了!

别着急,马上就到 DPSD 了。

3.声共振风速风向

声共振技术,英文是 Acu-Res,是由英国 FT Technologies 发明的,依靠这一技术 FT(国内称风拓)已经成为全球最大的中高端风速风向仪研发和制造商,真可谓是一招鲜吃遍天。

引用 FT 官网的一些内容,如图 17.9 所示。


图 17.9 FT 官方对 Acu Res 的介绍

大意是声共振技术是一项独立而又不同于其他传统超声波风速风向的技术。它源自于英国山伯利团队的一项发明。它基本的原理是测量超声波在一个狭小腔体中的相位变化,从而计算风速风向和温度。

图 17.10 为 FT 风速风向仪产品效果图

官方不会深入去介绍,毕竟这是它的核心技术。振南的团队为了验证这一技术,做了一些原型,如图 17.11 和 8.12 所示。


图 17.10 FT 风速风向仪产品效果图 


图 17.11 振南团队对于声共振技术的验证原型(俯视)

我们使用两片平行的铝板形成腔体(声波会在两种密度相差较大的材料界面上发生反射)。在上面的铝板上安装有 3 个星等边放置的超声收发一体化探头(是从汽车倒车雷达上拆的)。我们拿出其中的两个,一发一收,如果把发射信号和接收信号放到一起来观察,会发现它们是几乎没有相位差的,也就是两个信号重合。

但是当我用风扇对着它们吹,就可以很明显地看到,两个信号产生相位变化,如图 17.13所示。

宏观上,我们可以理解为风把声波吹偏了。这个相位的变化可以使用 DPSD 来检测。那为什么要放 3 个探头?还要等边放置?请看图17.14。

振南不再过多介绍,因为我也只不过是一些猜想。大家如果感兴趣,尤其是善于模型和算法仿真的同学,可以对声共振测风速风向深入研究一下。


图 17.12 振南团队对于声共振技术的验证原型(俯视)


图 17.13 声波在风吹作用下产生相位偏移


图 17.14 三探头方式具有更好的风速风向测量准确度

“我基本理解了用声波相位测量风速风向的原理,但是这与声波共振又有什么关系呢?哪里共振了?”图 17.13 所示的波形其实就是共振后的效果。声波发射出来之后,会在腔体中经历几百次反射(也就是上下两片铝板之间)。这些波频率一致,最终会共振,振幅相互叠加,形成驻波。这使得声波信号被放大,从而更容易被采集。可以说,声共振测风速风向确实是一项了不起的发明,其根本上是物理基础研究成果和数学方法的应用。

其实本文一开始的公式还可以进一步推导下去,最终我们会发现根本不需要积分,从而可以降低计算量。经过再三考虑,这进一步的推导振南就不在这里展开了,因为这会影响本书的可读性和接受度,劝退很多读者。这也与我把知识通过通俗易懂的方式传播出去的原则相悖。

我曾经在国内核心期刊上发表过一篇名为《基于低通滤波的相敏检波算法改进与实现》的论文,感兴趣的读者可以百度一下。

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

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

相关文章

【Redis缓存】RedisTemplate如何获取符合要求的key,批量获取key

RedisTemplate如何获取符合要求的key,批量获取key 一、方法/命令二、数据使用 一、方法/命令 如果使用命令的形式,输入以下命令即可 keys *如果使用RedisTemplate,则方法为 redisTemplate.keys()获取所有符合条件的key。 二、数据使用 redis中缓存了…

linux下的工具---vim

一、了解vim 1、vim是linux的开发工具 2、vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行…

Android笔记(十四):JetPack Compose中附带效应(一)

在Android应用中可以通过定义可组合函数来搭建应用界面。应用界面的更新往往是与可组合函数内部定义的状态值相关联的。当界面的状态值发生变更,会导致应用界面进行更新。在Android笔记(九):Compose组件的状态,对Compo…

【新手解答2】深入探索 C 语言:一些常见概念的解析

C语言的相关问题解答 写在最前面问题1变量名是否有可能与变量重名?变量名和变量的关系变量名与变量是否会"重名"举例说明结论 变量则是一个地址不变,值时刻在变的“具体数字”变量的地址和值变量名与数据类型具体化示例结论 问题2关于你给我的…

priority_queue模拟实现

目录 仿函数 模拟实现 结果 大根堆 小根堆 完整代码 priority_queue.h test.c 仿函数 仿函数的通俗定义:仿函数(functor)又称为函数对象(function object)是一个能行使函数功能 的类。仿函数的语法几乎和我们…

ubuntu修改系统语言

修改ubuntu系统语言 操作指令修改系统设置总结 操作 ubuntu系统自带的英文环境,个人觉得用起来不方便。改掉吧。换成中文 指令修改 参考了一些博客的解决方式 ctrlartT 打开终端。 sudo apt-get install language-pack-zh-hans 输入下载汉化包的指令。 但是&…

MATLAB的rvctools工具箱熟悉运动学【机械臂机器人示例】

1、rvctools下载安装 rvctools下载地址:rvctools下载 截图如下,点击红色箭头指示的“Download Shared Folder” 即可下载 下载之后进行解压,解压到D:\MATLAB\toolbox这个工具箱目录,这个安装路径根据自己的情况来选择&#xff0c…

OSG编程指南<三>:利用Cmake+VS2019+OSG3.6.5编译osgVerse

目前osgearth的ralease版本和debugx64都已经编译过了并且自测可用,放到资源里osgearth下载,供需要的朋友下载参考。环境配置:win10VS2017OSG3.6.4OSGEarth2.10.2, 1、配置OSG环境 编译好osg,然后在系统变量中配置如下…

javascript 运算符

javascript 运算符 目录 javascript 运算符 一、算术运算符 1、自增运算符 2、自减运算符 二、比较运算符 三、赋值运算符 四、逻辑运算符 五、条件运算符 疑难解答: 这一节,我们来介绍JavaScript的运算符。运算符是完成一系列操作的符号&…

Rocket架构

NameServer:作为注册中心,提供路由注册、路由踢出、路由发现功能,舍弃强一致,保证高可用,集群中各个节点不会实时通讯,其中一个节点下线之后,会提供另外一个节点保证路由功能。 Rocket mq name…

基于Python获取亚马逊的评论信息的处理

文章目录 一、分析亚马逊的评论请求二、获取亚马逊评论的内容三、亚马逊评论信息的处理四、代码整合4.1 代理设置4.2 while循环翻页 总结关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具…

力扣hot100 和为 K 的子数组 前缀和

&#x1f468;‍&#x1f3eb; 题目地址 &#x1f37b; AC code class Solution {public int subarraySum(int[] nums, int k){int ans 0;int n nums.length;int[] s new int[n 1];// 前缀和s[0] 0;s[1] nums[0];for (int i 2; i < n; i)s[i] s[i - 1] nums[i - 1…

C#-基础及扩展合集(持续更新)

一、基础 Ⅰ 关键字 1、record record&#xff08;记录&#xff09;&#xff0c;编译器会在后台创建一个类。支持类似于结构的值定义&#xff0c;但被实现为一个类&#xff0c;方便创建不可变类型&#xff0c;成员在初始化后不能再被改变 &#xff08;C#9新增&#xff09; …

PostgreSQL + SQL Server = WiltonDB

WiltonDB 是一个基于 PostgreSQL 的开源数据库&#xff0c;通过 Babelfish 插件支持 Microsoft SQL Server 协议以及 T-SQL 语句。 Babelfish 是亚马逊提供的一个开源项目&#xff0c;使得 PostgreSQL 数据库同时具有 Microsoft SQL Server 数据查询和处理的能力。Babelfish 可…

如何提高学生的课堂参与度

提高学生的课堂参与度是让许多教师头疼的问题。不过通过采取一些简单的方法&#xff0c;就可以让学生更积极的参与课堂活动。那么&#xff0c;这些方法是什么呢&#xff1f; 激发学生的兴趣 学生如果对课堂内容感兴趣&#xff0c;他们就会更加积极地参与其中。教师可以通过使用…

详解Java中的泛型(泛型的语法,擦除机制,泛型的上界)

目录 一.什么是泛型 二.Java中为什么要使用泛型 三.泛型的语法 四.泛型类的使用 五.泛型的编译机制&#xff08;擦除机制&#xff09; 六.泛型的上界 一.什么是泛型 泛型&#xff08;Generics&#xff09;是Java SE 5中引入的一个新特性&#xff0c;可以使Java中的类和方…

联邦学习Federated Learning(FL)

联邦学习Federated Learning 序言FL流程细节FL代码实现&#xff08;Pytorch&#xff09;Reference 序言 手机的数据涉及到个人隐私和安全&#xff0c;如果将客户端的数据上传到服务端&#xff0c;终究是很容易泄漏出用户的信息&#xff0c;何况 用户也不愿意把自己的数据交给服…

Java基础小结

Java 基础小结 Java 基础概念与常识 什么是 Java ? Java 是 1995 年由 sun 公司推出的一门高级语言。 Java 的四个基本特性是面向对象、平台无关性、安全性和简单性。 具体特点如下: 简单易学。 平台无关性。 面向对象 面向对象是一种程序设计技术&#xff0c;以木匠工…

[C++]六大默认成员函数详解

☃️个人主页&#xff1a;fighting小泽 &#x1f338;作者简介&#xff1a;目前正在学习C和Linux &#x1f33c;博客专栏&#xff1a;C入门 &#x1f3f5;️欢迎关注&#xff1a;评论&#x1f44a;&#x1f3fb;点赞&#x1f44d;&#x1f3fb;留言&#x1f4aa;&#x1f3fb; …

西南科技大学数字电子技术实验一(数字信号基本参数与逻辑门电路功能测试及FPGA 实现 )预习报告

手写报告稍微认真点写,80+随便有 目录 一、计算/设计过程 1、通过虚拟示波器观察和测量信号 2、通过实际电路(电阻、开关、发光二极管)模拟逻辑门电路 二、画出并填写实验指导书上的预表