当前位置: 首页 > news >正文

[③ADRV902x]: Digital Filter Configuration(接收端)

前言

本篇博客主要总结了ADRV9029 Rx接收端链路中各个滤波器的配置。配置不同的滤波器系数以及不同的参数,可以对输入的数字信号灵活得做decimation处理,decimation信号抽取,就是降低信号采样率的过程。

Receiver Signal Path

下图为接收端I/Q两路的接收链路,对ADRV9029S四路接收Rx1/Rx2/Rx3/Rx4都是一样的:

在链路中重要的模块:

  • TIA: transimpedance amplifier(跨阻放大器)是一个LPF,AD接收端带宽最大到200 MHz,每个TIA支持100 MHz pass-band分给I/Q两路。

Decimation stages:在TIA之后的一部分decimation可以由DEC5或者FIR2, FIR1和RHB3的组合决定,如果由DEC5决定的话,就降采5倍,如果由FIR2, FIR1和RHB3的组合决定的话,可以降采2,4或者8倍。

  • DEC5:5倍降采,filter系数固定。
  • Finite Impulse Response Filter (FIR1/FIR2):两倍降采或者bypass,filter系数固定。
  • Receive Half-Band 3 Filter (RHB3):两倍降采,filter系数固定。
  • Receive Half-Band 2 Filter (RHB2):两倍降采或者bypass,filter系数固定。
  • Receive Half-Band High Rejection 1 Filter (RHB1 (HR)):两倍降采或者bypass,filter系数固定。
  • Receive Half-Band Low Power 1 Filter (RHB1 (LP)):两倍降采或者bypass,filter系数固定。
  • Receive PFIR Filter:可以配置1,2,4倍降采或者bypass,并且滤波器系数可以配置,可以选择24,48或者72 filter taps。并且也可以配置gain为+6 dB,0 dB,-6 dB或者-12 dB。

关于滤波器的配置在API 参考代码里有个对应数据结构体adi_adrv9025_RxProfile_t

/***  \brief Data structure to hold settings for the current Rx specific use case profile*/
typedef struct adi_adrv9025_RxProfile
{adi_adrv9025_RxChannels_e      channelType;                     /*!< Channel type described by this profile (Rx/ORx/Loopback) */uint8_t                        rxFirDecimation;                 /*!< Rx FIR decimation (1,2,4) */uint8_t                        rxDec5Decimation;                /*!< Decimation of Dec5 or Dec4 filter (5,4) */uint8_t                        rhb1Decimation;                  /*!< RX Halfband1 (HB1) decimation. Can be either 1 or 2 */uint8_t                        rhb1WideBandMode;                /*!< 1 = HB1 is wider, 0 = HB1 is narrow, ORx and loopback profiles ignore this field */uint8_t                        rhb2Decimation;                  /*!< RX Halfband2 (HB2) decimation. Can be either 1 or 2 */uint8_t                        rhb3Decimation;                  /*!< RX Halfband3 (HB3) decimation. Can be either 1 or 2 */uint8_t                        rxFir1Decimation;                /*!< Rx FIR decimation (1,2) */uint8_t                        rxFir2Decimation;                /*!< Rx FIR decimation (1,2), ORx and loopback profiles ignore this field */uint32_t                       rxOutputRate_kHz;                /*!< Rx Output data rate in kHz */uint32_t                       rfBandwidth_kHz;                 /*!< Rx RF passband bandwidth for the profile */uint32_t                       rxBbf3dBCorner_kHz;              /*!< Rx BBF (TIA) 3dB corner in kHz */uint32_t                       rxAdcBandWidth_kHz;              /*!< Rx ADC bandwidth - tunes the bandwidth of the passband and noise transfer functions of the ADC */adi_adrv9025_RxFir_t           rxFir;                           /*!< Rx FIR filter structure */adi_adrv9025_RxDdc_e           rxDdcMode;                       /*!< Rx DDC mode */adi_adrv9025_RxNcoShifterCfg_t rxNcoShifterCfg;                 /*!< Rx NCO Shift parameters used for ZIF->RIF, CIF->ZIF, ORX only uses band A members */uint8_t                        tiaPowerMode;                    /*!< 5 options for TIA power reduction modes (range 0-4, where 4 = allow ARM to set based on LUT for power saving) */adi_adrv9025_RxDataFormat_t    rxDataFormat;                    /*!< Rx Data Format settings structure */int16_t                        rxAdc[ADI_ADRV9025_RXADC_COEFS]; /*!< RxAdc profile for that channel*/
} adi_adrv9025_RxProfile_t;

可以参考下图对参数进行配置:

IF Conversion(中频转换)

在这里插入图片描述
在接收链路的末端还有一个IF Conversion stage电路可以使用,可以最终改变JESD port的信号输入,电路由两个并行的通路组成(Band A和Band B),每个通路都可以支持upshifting,downshifting(中频中的上下变频), interpolation and decimation(上下采样)。根据AD官方文档:Note that currently, only the low IF to zero IF conversion mode is supported in a released profile。目前IF conversion应该只支持low IF to zero IF模式,同时参考文档也给出了个例子:
a conceptual case of a 200 MHz receive bandwidth (IQ rate 245.76 MSPS) profile used to receive a 75 MHz MC-GSM offset from the LO. The center frequency is 52.5 MHz offset from the LO, such that the band occupies from ±15 MHz to ±90 MHz. The channel then uses the IF conversion stage to shift the signal to be centered at about 0 Hz, filter with the half-band filter, and decimate the
output by two such that the IQ rate sent over the JESD is 122.88 MSPS.

关于IF Conversion电路中一些基本参数可以由adi_adrv9025_RxProfile_t中的参数rxDdcMode进行配置,它是个枚举类型:

相关文章:

[③ADRV902x]: Digital Filter Configuration(接收端)

前言 本篇博客主要总结了ADRV9029 Rx接收端链路中各个滤波器的配置。配置不同的滤波器系数以及不同的参数&#xff0c;可以对输入的数字信号灵活得做decimation处理&#xff0c;decimation信号抽取&#xff0c;就是降低信号采样率的过程。 Receiver Signal Path 下图为接收端…...

企业安全—DevSecOps概述详情

0x00 前言 SDL存在的问题在于体量过于庞大&#xff0c;不利于快速进行适配和进行&#xff0c;所以就有了DevSecOps&#xff0c;实际上是因为敏捷开发也就是DevOps的推进&#xff0c;并且坐上了云服务模式的火车&#xff0c;所以这一系列的东西都开始普及。DevSecOps作为DevOps…...

数据结构与算法(十):动态规划与贪心算法

参考引用 Hello 算法 Github&#xff1a;hello-algo 1. 动态规划算法 动态规划将一个问题分解为一系列更小的子问题&#xff0c;并通过存储子问题的解来避免重复计算&#xff0c;从而大幅提升时间效率 问题&#xff1a;给定一个共有 n 阶的楼梯&#xff0c;你每步可以上 1 阶或…...

【C++代码】安排行程,N皇后,解数独--代码随想录

题目&#xff1a;重新安排行程 给你一份航线列表 tickets &#xff0c;其中 tickets[i] [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。所有这些机票都属于一个从 JFK&#xff08;肯尼迪国际机场&#xff09;出发的先生&#xff0c;所以该行程必…...

SpringCloud Alibaba【二】nacos

nacos配置与使用 nacos初步使用nacos安装与配置创建命名空间 nacos使用与配置创建新项目作为父项目 创建nacos服务端项目pom.xmlapplication.yml启动类 创建nacos客户端项目pom.xml application.yml启动类 启动测试 nacos配置负载均衡改造生产者nacos-provider-projectcontroll…...

C++中的fsanitize指令

一个集成在 gcc、clang 编译器中的编译指令&#xff0c;可以有效测试程序中的一些诸如数组越界、未定义行为等情况。 举个例子&#xff1a; #include <bits/stdc.h> using namespace std;const int maxn2e55,mxr1e5,maxm1e75; int head[maxn],nxt[maxn],to[maxn],f[max…...

【AI视野·今日Robot 机器人论文速览 第五十八期】Thu, 19 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Thu, 19 Oct 2023 Totally 25 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers InViG: Benchmarking Interactive Visual Grounding with 500K Human-Robot Interactions Authors Hanbo Zhang, Jie Xu, Yuch…...

Java截取(提取)子字符串(substring()),Java分割字符串(split())

在 String 中提供了两个截取字符串的方法&#xff0c;一个是从指定位置截取到字符串结尾&#xff0c;另一个是截取指定范围的内容。下面对这两种方法分别进行介绍。 1. substring(int beginIndex) 形式 此方式用于提取从索引位置开始至结尾处的字符串部分。调用时&#xff0c…...

从厨房间到股市:家庭主妇的华美转身

我一直是一个安于现状的家庭主妇。生活中&#xff0c;我热爱烹饪、园艺和照顾家人&#xff0c;但我也渴望能有更多的自我实现和价值感。在机缘巧合下&#xff0c;我接触到了卓扬网&#xff0c;一个专业的股票投资平台。从那刻起&#xff0c;我的人生发生了翻天覆地的变化。 初…...

Oracle 数据库的锁排查方法

关键字 oracle lock 问题描述 Oracle 数据库上锁问题如何排查 解决问题思路 准备数据 create table lock_test(name varchar(10),age varchar(10));insert into lock_test values(ff,10); insert into lock_test values(yy,20); insert into lock_test values(ll,30);Orac…...

混合精度训练原理之float16和float32数据之间的互相转换

混合精度训练原理之float16和float32数据之间的互相转换 本篇文章参考&#xff1a;全网最全-混合精度训练原理 上述文章已经讲解的比较详细&#xff0c;本文只是从数值角度分析&#xff1a; 1. float32转入float16的精度误差 2. 在深度学习的混精度训练当中&#xff0c;当参数…...

网络协议--ICMP:Internet控制报文协议

6.1 引言 ICMP经常被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。ICMP报文通常被IP层或更高层协议&#xff08;TCP或UDP&#xff09;使用。一些ICMP报文把差错报文返回给用户进程。 ICMP报文是在IP数据报内部被传输的&#xff0c;如图6-1所示。 ICMP…...

《红蓝攻防对抗实战》三.内网探测协议出网之HTTP/HTTPS协议探测出网

目录 一. 在 Windows 操作系统中探测 HTTP/HTTPS 出网 1. Bitsadmin 命令 2.Certuil 命令 2.Linux系统探测HTTP/HTTPS出网 1.Curl命令 2.Wget命令 对目标服务器探测 HTTP/HTTPS 是否出网时&#xff0c;要根据目标系统类型执行命令&#xff0c;不同类型的操作系统使用的探…...

【Win11】系统重装教程(最新最详细)

目录 一.简介 二.用U盘制作PE系统 三、安装系统 软件&#xff1a;Windows 11版本&#xff1a;21H2语言&#xff1a;简体中文大小&#xff1a;5.14G安装环境&#xff1a;PE系统&#xff0c;至少7代处理器硬件要求&#xff1a;CPU2.0GHz 内存4G(或更高&#xff09;下载通道①丨…...

如何构建一个外卖微信小程序

随着外卖行业的不断发展&#xff0c;越来越多的商家开始关注外卖微信小程序的开发。微信小程序具有使用方便、快速上线、用户覆盖广等优势&#xff0c;成为了商家们的首选。 那么&#xff0c;如何快速开发一个外卖微信小程序呢&#xff1f;下面就让我们来看看吧&#xff01; 首…...

小知识(5) el-table行样式失效问题

一、实现效果 子级呈现不同颜色去区分 二、最初代码 tips: 我这里使用的vue3 elementplus <el-table :row-class-name"tableRowClassName" >... </el-table>function tableRowClassName({ row, rowIndex }) {if (row.children.length 0) {return …...

【Docker】Docker数据的存储

默认情况下&#xff0c;在运行中的容器里创建的文件&#xff0c;被保存在一个可写的容器层里&#xff0c;如果容器被删除了&#xff0c;则对应的数据也随之删除了。 这个可写的容器层是和特定的容器绑定的&#xff0c;也就是这些数据无法方便的和其它容器共享。 Docker主要提…...

hive字段关键字问题处理

最近在xxl_job部署shell调度任务时,发现在编写Hql时&#xff0c;对一些使用关键字命名的字段无法解析&#xff0c;按开发规范&#xff0c;字段命名不应该有关键字,但是数据来源是第三方,无法修改,需要通过flume对从kafka的数据到hdfs上&#xff0c;数据是json格式,所以需要对关…...

指定顺序输出

系列文章目录 进阶的卡莎C++_睡觉觉觉得的博客-CSDN博客数1的个数_睡觉觉觉得的博客-CSDN博客双精度浮点数的输入输出_睡觉觉觉得的博客-CSDN博客足球联赛积分_睡觉觉觉得的博客-CSDN博客大减价(一级)_睡觉觉觉得的博客-CSDN博客小写字母的判断_睡觉觉觉得的博客-CSDN博客纸币(…...

(Java)中的数据类型和变量

文章目录 一、字面常量二、数据类型三、变量1.变量的概念2.语法的格式3.整型变量4.长整型变量5.短整型变量6.字节型变量 四、浮点型变量1.双精度浮点数2.单精度浮点数 五、字符型常量六、布尔型变量七、类型转换1.自动类型转换&#xff08;隐式&#xff09;2.强制类型转换(显式…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...