自动衰减器工作流程

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

相关文章

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

pytorch自动求梯度autograd的实现

《pytorch自动求梯度autograd的实现》autograd是一个自动微分引擎,它可以自动计算张量的梯度,本文主要介绍了pytorch自动求梯度autograd的实现,具有一定的参考价值,感兴趣... autograd是pytorch构建神经网络的核心。在 PyTorch 中,结合以下代码例子,当你

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti