通过时间交织技术扩展ADC采样速率的简要原理

 前言

数据采集是将自然界中存在的模拟信号通过模数转换器(ADC)转换成数字信号,再对该数字信号进行相应的接收和处理。数据采集系统作为数据采集的手段,在移动通信、图向采集、无线电等领域有重要作用。随着电子信息技术的飞速发展,电信号呈现出高度复杂化的变化趋势,高频、瞬态信号的捕获、分析需要跟高带宽、更高采样率的数据采集系统。提升数据采集系统前端ADC的性能和利用并行采样方法的系统架构是提高采集系统性能的2个有效途径。


一、非线性混叠

采样过程通过时间离散的脉冲采集输入信号特定时刻的幅度,脉冲频率即为采样时钟速率,根据采样定理,采样后的数字域仅能够看到二分之一采样速率的频谱。理想情况下模拟域整个频谱都会由于采样过程造成的周期性延拓混叠进入这个数字谱。在链路设计中,进入采样器前通常都需要足够抑制度的模拟滤波以实现抗混叠,但采样器本身及其调理电路存在非线性,会产生多次谐波和交调,这些产物最终也会呈现在数字谱范围内。

比如采样速率2GHz的采样器,输入频率800MHz,考虑基波到5次谐波频率依次为[0.7,1.4,2.1,2.8,3.5],通过下面的程序能够计算得到混叠到数字谱对应出现的频率。


clear all; close all; clc; format compact;
Fs = 2; % 采样速率
f1 = 0.7; % 射频频率
Fs_index = [-5:1:5]*Fs;
fspurs = [1, 2, 3, 4, 5]*f1; % 射频信号谐波
f_overlap = zeros(1, length(fspurs));
for n = 1:length(fspurs)
temp = Fs_index-fspurs(n);
for k = 1:length(temp)
if abs(temp(k))<Fs/2
f_overlap(n) = abs(temp(k));
end
end
end
f_overlap

计算输出得到的频率为[0.7,0.6,0.1,0.8,0.5]GHz。进一步通过仿真来查看该混频器混叠效应。仿真速率为32GHz,16倍抽取仿真采样,引入幂级数模拟非线性,采样点数为2^16,采样前仿真得到的频谱如图1所示。

图1 包含5次谐波单音信号的采样前频谱

通过采样后得到的频谱如图2所示。数字基带谱带宽1GHz,基波、二次、三次、四次、五次谐波分别出现在[0.7,0.6,0.1,0.8,0.5]GHz频率处。

图2 包含5次谐波单音信号采样后的混叠频谱

二、通过时间交织技术扩展带宽

时间交织是一种将多颗ADC芯片并联的技术,对N颗子ADC芯片并行交替采样,从而使得整个系统的采样率N倍提高。每个子ADC具有相同的采样速率,但N个子ADC采样时钟时序间隔相差1/(Fs×N),每次采集到的数据不重合,最后通过逻辑电路再次依次把N个子ADC的数据按顺序整合,理想情况下这种频接的N个ADC就能够实现Fs×N的采样速率。

交织采样时钟的硬件实现方案一般有2种:一种方案提出直接通过时钟芯片自身的延时功能,依次产生4路相位差相同的采样时钟;另一种方案为在4路子ADC前加入定制数字电路,控制数据选通,使得4路子通道的时钟依次对ADC进行采样。

仿真实现延续前面文章中采用抽取实现采样的方法,采用4相TI-ADC进行采样,可将采样速率又2GHz扩展为8GHz,四路脉冲抽取分别在下列采样点进行,

1..17...33...49...

5..21...37...53...

9..25...41...57...

13..29...45...61...

最终重新组合等效为在下述时间点进行抽取。仿真结果如图3所示。

1...5...9...13...17...21...25...29...33...37...41...45...49...53...57...61

图3 4相TI-ADC的采样频谱

由于扩展了采样速率,谐波没有混叠而是以原来的频率出现在数字谱中。

实际ADC为了抑制偶次谐波采用差分输入输出,因此理论上最差的谐波通常是三次,此外上述仅仅是理想情况的TI-ADC,实际由于并行ADC的不一致以及采样时间偏差,会导致较多杂散项。


总结

采样速率提高到一定程度就会难以进一步提高,更高速率的采样器通常都会选择时间交织频接技术进行采样速率扩展,本文通过简要仿真说明了理想TI-ADC的原理。

参考文献:12GSa/s12bit超宽带数据采集系统研究 电子与封装 2022.11

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

8_企业架构缓存中间件分布式memcached

企业架构缓存中间件分布式memcached 学习目标和内容 1、能够理解描述网站业务访问流程 2、能够理解网站业务的优化方向 3、能够描述内存缓存软件Memcached的作用 4、能够通过命令行操作Memcached 5、能够操作安装php的memcached扩展 extension 6、能够实现session存储到memcach…

6G的Java软件安装包和2G的Maven仓库分享给大家

文章目录 &#x1f50a;博主介绍&#x1f964;本文内容&#x1f4e2;文章总结&#x1f4e5;博主目标 &#x1f50a;博主介绍 &#x1f31f;我是廖志伟&#xff0c;一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作…

轨道交通故障预测与健康管理PHM系统的应用

轨道交通是现代城市中不可或缺的交通方式&#xff0c;它为人们提供了快速、高效和可靠的出行方式。然而&#xff0c;由于轨道交通系统的复杂性和高负荷运行&#xff0c;设备故障和运营中断问题时有发生。为了提高轨道交通系统的可靠性和安全性&#xff0c;故障预测与健康管理&a…

一文读懂中间件

前言&#xff1a;在程序猿的日常工作中&#xff0c; 经常会提到中间件&#xff0c;然而大家对中间件的理解并不一致&#xff0c;导致了一些不必要的分歧和误解。“中间件”一词被用来描述各种各样的软件产品&#xff0c;在不同文献中有着许多不同的中间件定义&#xff0c;包括操…

花店小程序商城制作攻略教程分享

现如今&#xff0c;随着互联网的快速发展&#xff0c;越来越多的实体店面对客流量不足的问题。特别是对于花店来说&#xff0c;客流量的多少直接影响着销售额和收益。为了解决这一问题&#xff0c;开发一个花店小程序商城成为了不可忽视的选择。 为了开发花店小程序商城&#x…

使用Docker在Debian上构建GRBL模拟器镜像:简明步骤和操作指南

概述编译编写 Dockerfile构建镜像运行测试其他 概述 本文将详细介绍如何在Debian系统上通过Docker构建GRBL模拟器镜像&#xff0c;以便进行数控机床的仿真测试。GRBL是一种开源的控制系统&#xff0c;用于控制三轴CNC机床、激光雕刻、激光切割&#xff0c;而在Docker容器中运…

Vue 官方周报 #122 - 如何使用Head插件

Hi &#x1f44b; 本周的问题中&#xff0c;您将学习在Vue中如何使用Head插件。 unhead是一个与框架无关的文档头管理器&#xff0c;您可以使用它来管理页面元数据&#xff0c;如 Vue应用程序中的标题。 它用于Nuxt核心&#xff0c;是UnJS生态系统的一部分。 安装 首先&…

老师怎样夸学生

老师夸学生可以从以下几个方面入手&#xff1a; 1. 表扬学生的思维深度和独立思考能力。如果学生在文章中有独特的思考角度和深度的思考&#xff0c;老师可以直接点出来赞扬。 2. 赞美学生的语言表达。如果学生的文章用词精准、文笔流畅&#xff0c;老师可以夸奖学生的语言表达…

在外包待了6年,技术退步太明显......

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

【“C++ 精妙之道:解锁模板奇谭与STL精粹之门“】

【本节目标】 1. 泛型编程 2. 函数模板 3. 类模板 4. 什么是STL 5. STL的版本 6. STL的六大组件 7. STL的重要性 8. 如何学习STL 9.STL的缺陷 1. 泛型编程 如何实现一个通用的交换函数呢&#xff1f; void Swap(int& left, int& right) {int temp left;lef…

运维04:nginx

源代码编译安装nginx yum工具安装&#xff1a;自动下载nginx&#xff0c;且安装到固定的位置源代码编译安装&#xff1a;更适用于专业的企业服务器环境 比起yum工具安装&#xff0c;会有更多额外的功能可以自定义安装路径、配置文件 安装环境 源代码编译安装&#xff08;该方…

软件性能测试之压力测试详解

压力测试 压力测试是一种软件测试&#xff0c;用于验证软件应用程序的稳定性和可靠性。压力测试的目标是在极其沉重的负载条件下测量软件的健壮性和错误处理能力&#xff0c;并确保软件在危急情况下不会崩溃。它甚至可以测试超出正常工作点的测试&#xff0c;并评估软件在极端条…

卡通渲染总结《二》

关于技术的方面&#xff0c;一方面就是其轮廓边缘检测&#xff1a; 主要的方法可以被分为基于图片空间和对象空间&#xff0c;对象空间比图片空间会多一些立体坐标位置的信息。 轮廓类型分类 首先我们顶一下轮廓是什么&#xff0c;从一个视角看去如果一条边相邻的两个面其恰…

SpringSecurity6 | 默认用户生成

SpringSecurity6 | 默认用户生成 ✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Java…

加密市场进入牛初阶段?一场新的造富效应即将拉开帷幕!

周一(12月4日)&#xff0c;比特币一度上涨至42000美元&#xff0c;创下自2022年4月以来的最高水平。从目前比特币的走势来看&#xff0c;加密市场无疑已然进入到牛初阶段。 在牛市初期&#xff0c;确实存在人们不相信牛市到来的情况。由于在熊市中亏损的心理阻碍和对市场进一步…

ROS2教程03 ROS2节点

ROS2节点 版权信息 Copyright 2023 Herman YeAuromix. All rights reserved.This course and all of its associated content, including but not limited to text, images, videos, and any other materials, are protected by copyright law. The author holds all right…

在机器学习或者深度学习中是否可以直接分为训练集和测试集而不需要验证集?我的答案如下:

文章目录 一、训练集是什么&#xff1f;二、验证集是什么&#xff1f;三、测试集是什么&#xff1f;四、是否可以直接分为训练集和测试集而不需要验证集&#xff1f;总结 在机器学习和深度学习项目中&#xff0c;通常会将数据集划分为三个部分&#xff1a;训练集&#xff0c;验…

python精细讲解,从代码出发,适合新手宝宝食用的python入门教学【持续更新中】

文章目录 1、输入输出1.1 输入语句1.2 输出语句 2、List列表操作2.1 取值取单个元素&#xff1a;[]取出现的第一个元素&#xff1a;index 2.2 添加操作追加&#xff1a;append插入&#xff1a;insert 2.3 删除操作removepopdelclear清空 copy复制操作列表相关的数学操作数数&am…

c语言指针详解(上)

目录 一、指针的基本概念和用法 二、指针运算 2.1 指针的自增和自减运算 2.2 指针的自增和自减运算 三、数组和指针 四、指针和函数 4.1 在函数中使用指针作为参数和返回值 4.1.1 使用指针作为函数参数 4.1.2 使用指针作为函数返回值 4.2 指针参数的传值和传引用特性 4.2.1 指针…

【Maven】清理 maven 仓库

初始情况下&#xff0c;我们的本地仓库是没有任何jar包的&#xff0c;此时会从私服去下载&#xff08;如果没有配置&#xff0c;就直接从中央仓库去下载&#xff09;。 可能由于网络的原因&#xff0c;jar包下载不完全&#xff0c;这些不完整的jar包都是以lastUpdated结尾。此…