当前位置: 首页 > 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进行配置,它是个枚举类型:

http://www.lryc.cn/news/205857.html

相关文章:

  • 企业安全—DevSecOps概述详情
  • 数据结构与算法(十):动态规划与贪心算法
  • 【C++代码】安排行程,N皇后,解数独--代码随想录
  • SpringCloud Alibaba【二】nacos
  • C++中的fsanitize指令
  • 【AI视野·今日Robot 机器人论文速览 第五十八期】Thu, 19 Oct 2023
  • Java截取(提取)子字符串(substring()),Java分割字符串(split())
  • 从厨房间到股市:家庭主妇的华美转身
  • Oracle 数据库的锁排查方法
  • 混合精度训练原理之float16和float32数据之间的互相转换
  • 网络协议--ICMP:Internet控制报文协议
  • 《红蓝攻防对抗实战》三.内网探测协议出网之HTTP/HTTPS协议探测出网
  • 【Win11】系统重装教程(最新最详细)
  • 如何构建一个外卖微信小程序
  • 小知识(5) el-table行样式失效问题
  • 【Docker】Docker数据的存储
  • hive字段关键字问题处理
  • 指定顺序输出
  • (Java)中的数据类型和变量
  • SHELL脚本编程基础,bilibili王晓春老师课程个人笔记(写比较简单,仅供参考)
  • VS code运行vue项目
  • matlab中narginchk函数用法及其举例
  • k8s集群镜像下载加gradana监控加elk日志收集加devops加秒杀项目
  • waf绕过
  • 在 MyBatis-Plus 中,如果你想通过其他字段进行修改操作,可以使用条件构造器(Wrapper)来指定修改的条件。
  • Python Opencv实践 - 入门使用Tesseract识别图片中的文字
  • TCP通信实战案例-即时通信
  • 【数据结构初阶】算法的时间复杂度和空间复杂度
  • git log 命令详解
  • docker运行elastic和kibana,并使用密码连接