自动衰减器工作流程

2023-12-17 14:50
文章标签 流程 工作 自动 衰减器

本文主要是介绍自动衰减器工作流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

自动衰减器工作流程

衰减器介绍

  衰减器顾名思义,就是用来衰减信号强度的,他与放大器对信号的作用是相反的。那么为什么我们需要用到衰减器呢?如下图:
衰减图示
假如有一个信号90dBuV,没有进过衰减,我们前端处理信号能的极限是50dBuV,那么我们得到的信号参数就失真了,是一个模糊的值。如果经过衰减器呢,情况就如下图:
信号失真
我们完整的得到了整个信号的信息。那衰减之后不是变小了吗?这个我们这在后期处理的时候补偿不就可以了。

  衰减器在硬件电路中的位置在tuner的前面,保证进入tuner的信号是在其极限范围内,如下图:
硬件电路图

手动调节衰减器

  硬件预留给软件这边可调衰减器范围是45dB,通过频谱模块的MCU进行控制。我们软件主程序通过spi跟频谱模块的MCU相互通信,这块这里就不细讲解spi通信的实现了(上图中cpu与MCU之间连线上面写的spi,即他们使用spi相互通信)。通过spi给MCU发送需要调节的衰减器的值就可以做到手动控制调节衰减器了。如上图中的硬件电路图中的-15dB的两个衰减器和右上角的PE4314这个衰减器可以控制0-30dB。

  在三个显示模式中的options选项菜单中,有一个衰减模式选择项,其中有一个自动衰减模式和一个手动衰减模式。选择手动衰减模式时,下面的衰减器设置选项就从隐藏不可选状态恢复正常,即可以手动更改衰减器的值达到手动设置衰减器的目的。除此之外,在meter显示模式中的频谱小窗口以及频谱显示模式中可以通过上下按键手动调节。

自动调节衰减器

基本原理

  有了前面手动衰减器的基本概念,那么怎么才能做到自动调节衰减器呢?首先一点,我们调节衰减器是为了让RF进来的信号到tuner时不要超过tuner的极限范围。tuner处理信号的范围现在是0-50dBuV,加上我们的衰减器最大60dB,也就是可以达到110dBuV的理论极限范围。下面有三张图,看看如果让你选,你觉得那种比较舒服看上去。
demo1


demo2


demo3

不用说第二幅,相比于第一幅不会丢失内容导致参数失真;相比于第三幅屏幅全部利用到了,细节显示更好。
  介绍几个名词,ref这个就是我们频谱的显示坐标轴纵坐标的最大值,noise底噪是我们频谱的显示坐标轴纵坐标的最小值,频谱的显示范围固定为ref-noise=60dB。(其实理论上我们的noise就等于衰减器值,除了noise=50dB时,衰减器还是45dB之外)
  那怎么做到让所有的信号进来都能达到第二幅的效果呢,
  1.我们的做法是设置两个阈值,上阈值 = noise + 55dB,下阈值 = noise + 40dB。
  2.采样频谱数据,获取这次频谱数据中最大值
  3.将频谱数据的最大值与上下阈值对比,如果比上阈值大衰减器加5dB,如果比下阈值小衰减器加5dB。
  这样稳定下来的频谱采样数据,最大值应该一直在上下阈值之间波动,即保证了信号超过极限范围导致失真,又能保证显示更多细节。

算法

  用到的算法不多也不难,主要是思路比较重要。
  1.获取频谱采样数据的最大值,这个就是一个简单的循环比较函数就可以搞定
  2.阈值的计算,衰减器值只是在noise为50dB不一样,做一个判断处理,其他情况相等,所以保存衰减器值就可以计算出每次的阈值了。

频谱以外显示模式的处理

  上面所说的各种原理和思路都是基于频谱的,那么在其他显示模式中,没有频谱怎么办?
  在这里介绍一下,我们专业meter对dBuV值要求特别高,而专业meter的dBuV值计算就是通过频谱计算出来的,这里就详细介绍频谱计算公式。频谱的一点点误差,运算出来的dBuV值就会有较大误差,而且考虑到我们在播放节目和解析信号参数的同时能够实时显示dBuV值,就必须两路分开处理信号。
  从上面电路图可以看出,我们的meter处理信号这块有两路,一路是正常我们锁信号播节目,一路是专门获取频谱。有一个频谱单片机在后台实时获取频谱数据的,我们通过spi可以跟频谱的mcu通信获取到频谱数据,从而计算出我们想要的dBuV值或者显示出频谱。所以在我们计算dBuV值的时候就可以利用频谱数据做前面频谱模式中的自动衰减的处理了。

这篇关于自动衰减器工作流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/504782

相关文章

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

Spring使用@Retryable实现自动重试机制

《Spring使用@Retryable实现自动重试机制》在微服务架构中,服务之间的调用可能会因为一些暂时性的错误而失败,例如网络波动、数据库连接超时或第三方服务不可用等,在本文中,我们将介绍如何在Sp... 目录引言1. 什么是 @Retryable?2. 如何在 Spring 中使用 @Retryable

使用 Python 和 LabelMe 实现图片验证码的自动标注功能

《使用Python和LabelMe实现图片验证码的自动标注功能》文章介绍了如何使用Python和LabelMe自动标注图片验证码,主要步骤包括图像预处理、OCR识别和生成标注文件,通过结合Pa... 目录使用 python 和 LabelMe 实现图片验证码的自动标注环境准备必备工具安装依赖实现自动标注核心

QT实现TCP客户端自动连接

《QT实现TCP客户端自动连接》这篇文章主要为大家详细介绍了QT中一个TCP客户端自动连接的测试模型,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录版本 1:没有取消按钮 测试效果测试代码版本 2:有取消按钮测试效果测试代码版本 1:没有取消按钮 测试效果缺陷:无法手动停

Nginx、Tomcat等项目部署问题以及解决流程

《Nginx、Tomcat等项目部署问题以及解决流程》本文总结了项目部署中常见的four类问题及其解决方法:Nginx未按预期显示结果、端口未开启、日志分析的重要性以及开发环境与生产环境运行结果不一致... 目录前言1. Nginx部署后未按预期显示结果1.1 查看Nginx的启动情况1.2 解决启动失败的

Security OAuth2 单点登录流程

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一注销(single sign-off)就是指

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机