SDR架构 (二) 为什么很多SDR频谱中间有尖峰?

相信大家第一次打开gnuradio看听广播、看频谱的时候,会注意到一个奇怪的现象,明明在频谱中间不该有信号,但是实际看到了一个尖峰。这个尖峰不含带任何信息,并且不管调节到哪个中心频率,这个尖峰都会存在。

这种情况出现在HackRF、LimeSDR上。据说也会出现在E4000版本的RTL-SDR上。

但不会出现在r820t2版本的RTL-SDR上。

首先,这不是板子的缺陷,而是跟硬件架构有关。

就像刚刚说到的SDR架构分几种,会出现这种情况的是零中频架构。也就是实际上没有中频只有基带。而r820t2版本的RTL-SDR(由于另一个版本很少见,后面我都简称为常见RTL-SDR)是有中频的。

我点测过常见RTL-SDR的中频信号。

当时我把发射机在435MHz附近左右扫频。然后把RTL-SDR的中心频率也设置在435MHz附近。就能在中频走线上测出一个在427kHz~3.15MHz范围内变化的扫频信号。说明这就是rtlsdr的中频范围。rtlsdr只会针对这一段信号采样,而不会采样最左侧0Hz的信号。即使0Hz处是存在尖峰的,但也会被滤波器过滤,你在最终的频谱上看不到这个尖峰。

这就是为啥类似常见RTL-SDR的这种低中频架构,在频谱上不会有尖峰的原因。

想象一下零中频架构的SDR,如果把射频信号直接变频到基带,也就是0Hz附近。那么0Hz附近的信号就不能用滤波器过滤,只能保留到最终显示的频谱上来。这就是为啥你会看到这个尖峰。

在rtlsdr的书里也有介绍。它用两个版本rtlsdr都跑了一个扫频的程序,用来显示完整的无线电频谱。如果用常见版本扫频,最终拼接出来的看到的是我们熟悉的频谱。

但如果用E4000版本,就会用好多个带dc offset尖峰的频谱拼接。

不但SDR会这样,如果用示波器打开FFT功能,你会发现在最左侧0Hz附近也会有尖峰(示波器FFT默认频谱左右对称,不显示0Hz以下的部分)。

此时如果打开测量功能可测出,我们发的正弦波平均值是10mV左右。

我们可以调节任意波形发生器,让它带有-10mV的偏置。

此时你会发现0Hz上的尖峰大幅减小了,从-24dBm降低为-39dBm。

示波器由于是直采,它是实现SDR的最理想架构。但是也会有这个dc offset。

所以说dc偏置是无法避免的。只是在低中频架构中你看不到,而零中频架构中你可以看到。

解决的方法一个是可以像我刚刚调节示波器一样,把偏置拉低。在一些高端SDR,比如LimeSDR中会有供你配置的寄存器。

或者你也可以在采样后的数字信号中,自己实现一个数字中频,然后用数字滤波器把你要的信号与dc offset区分开。在HackRF中文教程的FM广播接收那一集中Michael Ossmann就是这么做的。先把中心频率故意设置在偏离目标信号的频点上,然后用cosine函数,把目标信号下变频到0Hz,而把原本的0Hz变到滤波器带宽以外。即可解决这个问题。

现在知道了零中频接收机有这个dc offset的是正常现象。但为什么我们还要用零中频接收机,不用其它架构呢?另外一本书里有详细解释。

第1.4节说道:

以前一直在用超外差架构,这种架构性能很好,但结构复杂,需要很多不同组件,每个组件有最小体积限制,这样整体就不能做得很小。而且由于主要是硬件实现,灵活度也不如软件。

比较上两张图,就能看出零中频比超外差需要的组件少了好多了。在上一篇文章彩图(c)中,你也能看出它比(a)和(b)结构简单。

但是这篇文章也说了零中频架构的缺点。

比如,如果校准的不够好,镜像和载波泄露就会出现。那么在接收过程中,会降低灵敏度。在发射过程中会发射出不想要的信号。

而如果射频部分和校准部分在不同芯片上完成,这个校准是不可能做得很完美的。

幸好芯片技术在不停发展,现在已经可以把射频部分的模拟电路与实现校准算法的数字电路做到同一颗芯片上了,这样整套系统的性能就会有提升。LimeSDR上的LMS7002,以及竞品AD9361都是这样的结构。硬件上是能够校准好的,但实际好不好也要看校准算法做得怎么样。

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

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

相关文章

基于springboot+vue的医院资源管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

云计算 2月26号 (进程管理和常用命令)

一、权限扩展 文件权限管理之: 隐藏权限防止root误删除 文件属性添加与查看 [rootlinux-server ~]# touch file1 file2 file3 1.查看文件属性 [rootlinux-server ~]# lsattr file1 file2 file3 ---------------- file1 ---------------- file2 ---------------- f…

androidapp的开发流程,王者笔记

昨天去面了一家公司,价值观有受到冲击。 面试官技术方面没的说,他可能是个完美主义的人,无论什么事情到了他那里好像都有解决的方案,我被说的无所适从,感觉他很厉害。 但我不能认可的是,面试官觉得加班是…

测试计划、测试方案、测试策略、测试用例的区别

一 测试计划 测试计划是指描述了要进行的测试活动的范围、方法、资源和进度的文档。它主要包括测试项、被测特性、各阶段的测试任务、时间进度安排,谁执行任务和风险控制等,可以包括测试策略。 二 测试方案 测试方案是指描述需要测试的特性、测试的方…

Docker技术概论(1):Docker与虚拟化技术比较

Docker技术概论(1) Docker与虚拟化技术比较 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https:…

雾锁王国服务器官方配置要求说明

雾锁王国/Enshrouded服务器CPU内存配置如何选择?阿里云服务器网aliyunfuwuqi.com建议选择8核32G配置,支持4人玩家畅玩,自带10M公网带宽,1个月90元,3个月271元,幻兽帕鲁服务器申请页面 https://t.aliyun.com…

5 局域网基础(3)

1.AAA 服务器 AAA 是验证、授权和记账(Authentication、Authorization、Accounting)3个英文单词的简称,是一个能够处理用户访问请求的服务器程序,提供验证授权以及帐户服务,主要目的是管理用户访问网络服务器,对具有访问权的用户提供服务。AAA服务器通常…

MySQL(基础篇)——事务

一.事务简介 事务是一组操作的集合,他是一个不可分割的单位,事务会把所有的操作作色一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 默认MySQL的事务是自动提交的,也就是说&#xff0c…

基于Vue3的在线考试系统

TDuckX 是一个功能强大的可私有化部署的在线表单考试平台,可以帮助您轻松创建表单和在线考试。本文档将指导您如何使用 TDuckX 创建您自己的在线考试。 步骤 1:登录账户 完成系统部署后,在浏览器中打开 TDuckX 的网站。 如果您已经拥有账户&…

STM32自学☞AD单通道

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

Mybatis-Plus介绍

目录 一、Mybatis-Plus简介 1.1、介绍 1.2、特性 1.3、架构 1.4、Mybatis-Plus与Mybatis的区别 二、快速入门 2.1、首先创建数据库mybatis-plus 2.2、创建user表 2.3、插入数据 2.4、创建Spring-Boot项目 2.5、添加依赖 2.6、连接数据库 一、Mybatis-Plus简介 1.1、…

CPU算力分配【华为OD机试-JAVAPythonC++JS】

题目描述 现有两组服务器A和B,每组有多个算力不同的CPU,其中A[i]是A组第i个CPU的运算能力,B[i]是B组第i个CPU的运算能力。一组服务器的总算力是各CPU的算力之和。为了让两组服务器的算力相等,允许从每组各选出一个CPU进行一次交换…

银河麒麟server-V10配置yum镜像源

1.跳转到yum.repo.d文件夹 cd /etc/yum.repo.d 2.重命名系统镜像源文件 mv kylin_x86_64.repo kylin_x86_64.repo.bak 3.添加新的镜像源 vi kylin.repo [ks10-adv-cdrom] name Kylin Linux Advanced Server 10 - cdrom baseurl file:///run/media/root/Kylin-Server-10…

【STM32】STM32学习笔记-独立看门狗和窗口看门狗(47)

00. 目录 文章目录 00. 目录01. WDG概述02. 独立看门狗相关API2.1 IWDG_WriteAccessCmd2.2 IWDG_SetPrescaler2.3 IWDG_SetReload2.4 IWDG_ReloadCounter2.5 IWDG_Enable2.6 IWDG_GetFlagStatus2.7 RCC_GetFlagStatus 03. 独立看门狗接线图04. 独立看门狗程序示例105. 独立看门…

VUE实现Office文档在线编辑,支持doc/docx、xls/xlsx、ppt/pptx、pdf等

1.微软提供的在线Office预览(只能预览,不能编辑) https://view.officeapps.live.com/op/view.aspx?src服务器上文档地址(http开头) 2.国内在线Office方案: 腾讯文档、石墨文档、飞书 优势:跨…

NVIDIA\CUDA\cudnn安装以及visual studio2022编译安装ceres2.2.0库

一、NVIDIA驱动安装 网址:官方驱动 | NVIDIA 因为本文之后需要visual studio2022进行编译,所以在安装NVIDIA\CUDA\cudnn之前你先得安装visual studio2022 点击NVIDIA控制面板,NVIDIA Control Panel 查看产品家族 根据产品家族选择驱动,点…

​LeetCode解法汇总2476. 二叉搜索树最近节点查询

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: GitHub - September26/java-algorithms: 算法题汇总,包含牛客,leetCode,lintCode等网站题目的解法和代码,以及完整的mode类&#…

Mac 制作可引导安装器

Mac 使用U盘或移动固态硬盘制作可引导安装器(以 Monterey 为例) 本教程参考 Apple 官网相关教程 创建可引导 Mac OS 安装器 重新安装 Mac OS 相关名词解释 磁盘分区会将其划分为多个单独的部分,称为分区。分区也称为容器,不同容器…

仓储自动化新解:托盘四向穿梭车驶入智能工厂 智能仓储与产线紧密结合

目前,由于对仓库存储量的要求越来越高,拣选、输送以及出入库频率等要求也越来越高,对此,在物流仓储领域,自动化与智能化控制技术得以快速发展,货架穿梭车在自动库领域的应用越来越广泛。现阶段,…

Windows Docker 部署 SQL Server

部署 SQL Server 打开 Docker Desktop,切换到 Linux 内核。然后在 PowerShell 执行下面命令,即可启动一个 SQL Server 服务,这里安装的是 2022 年版本 docker run -e "ACCEPT_EULAY" -e "MSSQL_SA_PASSWORDSQL123abcABC!&qu…