SDR架构 (一)为什么基带有I和Q路?

我之前做过自己的RTL-SDR。一直有一个疑惑。为啥rtl2832u芯片有一对差分I路,还有一对差分Q路。差分很好理解是为了抗干扰,但为啥要I和Q呢?并且我也知道不少人在自己修改的时候,保留I路对接在r820t2(跟原版一样),而把Q路作为直采。

那么我就有一个疑惑,既然Q路可以挪作它用,并且不影响RTL-SDR本来的功能。为什么rtl2832u不只保留I路呢?而且我在电脑上写解调软件的时候,即使用的是原版rtlsdr,只有I路有效,但还是有交织的IQ数据输出出来的。如果原版rtl2832u的Q路什么都没接那么这个Q路是哪里来的呢?

虽然后来有一位朋友跟我说过,rtl2832u有两种使用模式。第一种是类似原版的(或者说是用r820t2前端的版本),只用I路获取中频信号,也就是下图(b)。第二种方式是用I路和Q路去获取基带信号,也就是下图(a)。

但是我当时还是没有完全搞懂。为啥rtl2832u在采样时中频可以只采一路,而基带采样必须要分别采I路和Q路?在我看来中频和基带都是在频谱上的一段区域,没有什么区别。为啥基带不能像中频那样只用一个ADC采样,然后再到数字部分分成I和Q呢?或者说干脆不要I和Q直接用基带信号解调了。

我也看过一些地方说IQ调制可以增加信道容量,提高频谱利用率之类的说法,但我并没有很深刻的理解。

直到我最近找到了一本好书:

<Fundamentals of RF and Microwave Techniques and Technologies>

这本书的第12章解答了我的一直以来的疑惑。

上图是软件无线电架构的一般化表示。我们关心的主要就是ADC前面的模拟前端。

0.如果目标频率比较低,可以直采,那么左侧模拟前端里只有一些放大器、滤波器就行,没有混频器。与前面彩图(c)对应。

如果目标频率高,左侧模拟前端必须有混频器,它又分为两种:

1.用一个简单的混频器(1个余弦),下变频到ADC支持的频率范围内。与彩图(b)对应。

2.用正交混频,也就是先分为两路,一路用余弦,另一路用正弦,分别采样,其中一路移相后再叠加。与彩图(a)对应。

这时候你可能就会想,用简单混频器就行,为什么还要正交混频这种复杂的结构?

关键在于,我们想降低ADC的采样率,减轻后处理的负担。

这部分说到了,为了降低采样率,基带信号频率不能太高,它的频率离0Hz比较近。这就意味着本振信号与要接收的信号频率也比较接近,这样混频后才会在0Hz附近。

观察上图fLO的竖线就是本振,实线三角形是我们感兴趣的信号。注意它们之间的距离比较近,好处是变频到基带后实线三角形离0Hz比较近。坏处你马上就知道了。

我们可以看一下虚线三角形。这个位置实际上不一定有信号,一旦空气中存在一个这个频率的信号,它也会一起混频,下搬移到负频率处。而所有的负频率又可以翻折到正频率上来。一旦翻折过来,它就会和我们要的基带信号(0Hz附近的实线三角形)重叠在一起。那就无法正常解调了。

你可能会说为什么不在刚开始接收信号的时候就用滤波器把需要的频段与不需要的频段分隔开呢?但所有滤波器都不是理想的,如果虚线三角形离实线三角形很远,当然可以用滤波器区分,但如果很近就无法区分了。

所以,上面这些就解释了,如果你要用简单混频器,那么就不能直接变到0Hz附近的基带,而是搬得稍微高一点,比如对于rtlsdr来说就是3~5MHz就没问题。而这个频段就是我们说的中频了。这就解释了彩图(b)只能在中频起作用,不能把这个架构用于基带采样。

其实rtlsdr的采样率比我们想象中的高,虽然程序中一般只用到2MSps,但这是降采样后的,实际它的硬件采样率可以到20多MSps。这样它就可以采下这个中频信号。

但如果要设计的SDR要支持更高带宽的信号,它的中频就必须更高,我们的ADC采样率不够采这么高的中频,我们就必须考虑其它方案。也就是彩图(a)的架构。

彩图(a)的架构可以让信号直接变到0Hz附近的基带,而又不被镜像干扰。这也是我找的这本书中重点解释的架构。它在模拟部分就用两个稍有不同的混频器,分别下变频,再把一路移相再相加,就能得到没有镜像干扰的基带信号。

上图就是刚刚说的架构,这种混频器架构是1928年提出的,当时没有SDR。所以都是模拟电路。在SDR中,其实右边部分已经是ADC以后的软件实现的了。

这里是对应的公式推导。公式推导证明了,在输出端可以得到下变频后的S(t),它的载波从w2变为了wIF,并且输出端的信号可以只有我们要的S(t),而与R(t)无关。当然如果你要的是R(t)也行,只是最后一步要用减法而不是加法。

-----------------------------------------------------------------------------------------------------------------------

此书不但讲了为什么要用IQ采样基带信号,还解释了为啥要做IQ的幅度校正和相位校正。如果不做那么刚刚正好能约掉的项目就约不掉了。之前看到Lime官方也讲过这个问题,但当时只是看到调节LimeSuite后星座图/频谱图确实有一些改善。但没理解为什么。

下面是这本书的解释。

书中还提出了IRR这个指标,但光看公式就能看出增益和相位不平衡会带来一些无法抵消的项目了。

_________________________________________________________________________

上文已经解释了为啥要彩图(a)要用IQ。但为啥彩图(b)和(c)在数字部分还要用IQ?不清楚。。。

文中提到的书可以在Springer出版社官网免费下载。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

逆变器专题(12)-弱电网

相应仿真原件请移步资源下载 通常情况下&#xff0c;理想电网都为强电网&#xff0c;但随着光伏并网系统的大力发展&#xff0c;分布式光伏也越发鼎盛&#xff0c;越来越多的电力电子设备接入大电网、并且考虑能源利用问题&#xff0c;大部分光伏电站都建在戈壁沙漠等地区&…

多行业万能预约门店小程序源码系统 支持多门店预约小程序 带完整的安装代码包以及搭建教程

随着消费者对于服务体验要求的不断提升&#xff0c;门店预约系统成为了许多行业提升服务质量、提高运营效率的重要工具。然而&#xff0c;市面上的预约系统往往功能单一&#xff0c;无法满足多行业、多场景的个性化需求。下面&#xff0c;小编集合了多年的行业经验和技术积累&a…

岩土工程中的振弦采集仪技术发展与前景展望

岩土工程中的振弦采集仪技术发展与前景展望 河北稳控科技振弦采集仪是一种常用的岩土工程监测仪器&#xff0c;用于测量土壤或岩石的振动特性。随着岩土工程领域的发展和技术的进步&#xff0c;振弦采集仪技术也得到了不断的发展和改进。以下是对振弦采集仪技术发展与前景的展…

css5定位

css 一.定位1.概念&#xff08;定位定位模式边位移&#xff09;2.静态位移static&#xff08;不常用&#xff09;3.相对定位relative&#xff08;不脱标&#xff09;&#xff08;占位置&#xff09;4.绝对定位absolute&#xff08;脱标&#xff09;&#xff08;不占位置&#x…

VScode 单步断点调试Nodejs方法总结

目录 方法一 方法二 方法三 方法一 使用vscode开发nodejs程序,能够启动单步调试模式,在指定代码处添加断点,像chrome、firefox浏览器上一样进行JavaScript的调试。 新建一个nodejs的工程,编写代码后,配置代码调试的步骤: 1、切换到代码调试界面 2、界面提示,新建一…

基于springboot实现在线考试系统项目【项目源码+论文说明】

基于springboot实现在线考试系统演示 摘要 时代在变化&#xff0c;科技技术以无法预测的速度在达到新的高度&#xff0c;并且被应用于社会生活的各个领域&#xff0c;随着生活的加快&#xff0c;也使很多潜在的点逐渐突显出来&#xff0c;社会对于人才的要总是非常迫切的&…

IDEA-DeBug理论与实践

文章目录 01_Debug简介和意义02_IDEA中的Debug步骤03_跳转到当前代码执行的行04_步过调试的使用05_步入调试的使用06_强制步入调试的使用07_步出调试的使用08_回退断点调试的使用09_运行到光标处10_计算表达式11_条件断点12_多线程调试 在软件开发中&#xff0c;IDEA&#xff0…

THINKPHP 跨域报错解决方案

报错&#xff1a;has been blocked by CORS policy: Response to preflight request doesnt pass access control check: No Access-Control-Allow-Origin header is present on the requested resource. 环境&#xff1a;thinkphp6 nginx 今天和VUE配合调用接口的时候发现跨…

果园预售系统|基于Springboot的果园预售系统设计与实现(源码+数据库+文档)

果园预售系统目录 目录 基于Springboot的果园预售系统设计与实现 一、前言 二、系统功能设计 三、系统功能设计 1 、果园管理 2、水果管理 3、果树管理 4、公告管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获…

常见的4种Bug 出现原因和解决方案

某项目定期进行线上Bug分析大会&#xff0c;主要针对近期出现的Bug和事故进行分析其出现的原因。经过一段时间的数据分析和汇总&#xff0c;找到了在开发过程中&#xff0c;较为常见的Bug以及其出现的原因。 通过分析原因&#xff0c;进一步找到解决方案&#xff0c;从而有利于…

2024.02.29作业

1. TCP模型 server #include "test.h"#define SER_IP "192.168.191.128" #define SER_PORT 9999int main(int argc, char const *argv[]) {int sfd -1;sfd socket(AF_INET, SOCK_STREAM, 0);if (-1 sfd){perror("socket error");return -1;…

算法沉淀——动态规划之两个数组的 dp(上)(leetcode真题剖析)

算法沉淀——动态规划之两个数组的 dp 01.最长公共子序列02.不相交的线03.不同的子序列04.通配符匹配 01.最长公共子序列 题目链接&#xff1a;https://leetcode.cn/problems/longest-common-subsequence/ 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 …

0201sherlock(福尔摩斯)-通过名称寻找媒体账号(地址)-github-开源项目学习

文章目录 一 项目简介二 项目安装和演示1 安装2 演示 三 源码分析1 项目结构2 主程序源代码分析 四 添加自定义网址结语 一 项目简介 二 项目安装和演示 1 安装 # clone the repo $ git clone https://github.com/sherlock-project/sherlock.git# change the working direct…

opencv--使用直方图找谷底进行确定分割阈值

直方图原理就不说了&#xff0c;大家自行百度 直方图可以帮助分析图像中的灰度变化&#xff0c;进而帮助确定最优二值化的灰度阈值&#xff08;threshold level&#xff09;。如果物体与背景的灰度值对比明显&#xff0c;此时灰度直方图就会包含双峰&#xff08;bimodal histo…

Python web框架fastapi数据库操作ORM(一)

文章目录 Fastapi ORM操作1、创建模型2、创建数据库连接配置文件3、启动项目4、根据模型类创建数据库表1. 初始化配置&#xff0c;只需要使用一次2. 初始化数据库&#xff0c;一般情况下只用一次3. 更新模型并进行迁移4. 重新执行迁移&#xff0c;写入数据库5. 回到上一个版本6…

Oracle 11g升级19c 后部分查询功能很慢

*Oracle 11g升级19c 后部分查询功能很慢 今天生产突然有个查询非常慢&#xff0c;日志显示执行了50秒左右&#xff0c;但是从日志中拿出SQL在PLSQL执行&#xff0c;发现用时不到1秒&#xff0c;查看SQL,怀疑是下面几种原因导致 1、使用函数不当 UNIT.UNIT_CODE LIKE CONCAT(‘…

状态码转文字!!!(表格数字转文字)

1、应用场景&#xff1a;在我们的数据库表中经常会有status这个字段&#xff0c;这个字段经常表示此类商品的状态&#xff0c;例如&#xff1a;0->删除&#xff0c;1->上架&#xff0c;0->下架&#xff0c;等等。 2、我们返回给前端数据时&#xff0c;如果在页面显示0…

【Unity】在Unity中导出WebGL并读取Excel数据的实现方法

在游戏开发中&#xff0c;数据的处理和导出是至关重要的环节之一。Unity作为一款强大的游戏开发引擎&#xff0c;提供了丰富的工具和功能来处理和导出数据&#xff0c;包括将游戏导出为WebGL应用&#xff0c;并读取外部数据文件&#xff0c;比如Excel表格。本文将介绍如何在Uni…

gpt生成器,批量gpt文章生成器

GPT&#xff08;生成式预训练模型&#xff09;生成器软件在当今的数字化时代扮演着越来越重要的角色&#xff0c;它们通过人工智能技术&#xff0c;可以自动生成各种类型的文章内容&#xff0c;为用户提供了无限的创作可能性。本文将介绍6款不同的GPT生成器软件&#xff0c;并介…

STM32自学☞AD单通道

程序的最终运行成果: 当转动电位器时&#xff0c;数值和电压值发生变化 ad.c文件 #include "stm32f10x.h" #include "stm32f10x_adc.h" #include "ad.h" #include "stdint.h" void ad_Init(void) { /* 初始化步骤&#xff1a;…