DC Spike直流峰值

3、IQ采样【入门软件无线电(SDR)】PySDR:使用 Python 的 SDR 和 DSP 指南 IQ采样【入门软件无线电(SDR)】PySDR:使用 Python 的 SDR 和 DSP 指南 阅读详情

原文链接:http://www.ourlove520.com/Article/diannao/wangluo/114721.html


HackRF,BladeRF或其它一些RTL-SDR的使用者在使用一些频谱分析工具进行调频时会看到一个很大的尖峰(Spike)。这个尖峰就被称做DC Spike。(图1中心处的尖峰)


图1 DC Spike

当一些用户第一次看到这些Spike时可能会担心自己的设备是否存在缺陷,在这里可以告诉大家这和你选购的硬件或该硬件所使用的固件并没有任何的关系,只要你使用无线电DC Spike就会与你同在。关于DC Spike,在这https://github.com/mossmann/hackrf/wiki/FAQ你可以看到一些很好的解释。

正如HackRF FAQ当中所描绘的那样,在多数情况下我们是不需要考虑DCSpike的。但是,你如果想要成功地解调你所捕获的信号或捕捉被发射的信号你就需要尽力去保证这个信号是干净的。因此,为了避免受到DC Spike的干扰我们可以使用“DC Offset”来解决此类的问题。我们需要做的就是通过正确的GRC模块将接收频率调至无线电的传输带宽之外。唯一需要注意的是,我们需要选择一个合理的offset将DC Spike移动到传输的信号之外,但同时要保证不要将offset设置过大导致我们不得不使用我们本不需要的带宽。

通常确定如何去配置DC Offset的方法有两种。第一种方法,需要我们对产品手册中的数据进行分析来确定无线电设备的性能。在手册当中你通常可以找到关于信道间隔的标注。简单的来说,信道间隔就是从中心频率到两个不同传输区域之间的距离。借助这个信息我们就可以很好的调整我们的DC Spike。信道间隔和传输的大小没有必然的联系。例如,在观察wifi的信号传输时我们会发现,Wifi虽然有14条信道,但是在无线电适配器的传输当中会有6条信道被吞噬。除此之外,通过频谱分析工具对传输带宽进行观察可以帮助我们调节DCOffset,这也是我们之前提到的两种方法中的第二个。图2就是将信道间隔应用到无线网格网络中实现FHSS很好的一个例子。在GRC FFT当中使用“PeakHold”选项,就可以图中看到DC Spike会出现的位置。


图2

无线电设备会通过设置信道间隔来防止信道之间的相互干扰。默认的信道间隔也会因设备和制造商而异。但幸运的是,因为这些值都是预设的,所以通常我们可以在制造商所提供的文档中找到这些值。如果你无法从产品附属的手册或产品供应商那里获取这些值,你也许可以在,产品源代码或一些专利申请中找到你想了解的参数的值。


图3

如果你找到的文档不全或需要验证信道间隔的值,图形化分析可以帮助确定一个粗略的信道间隔。图3就是通过图形化界面来目测信道间隔很好的例子。其中的蓝色尖峰即为DC Spike,绿色波峰为传输的信号,而用红色标注出来的距离则为频道的大小。其中出现的个传输信号的边缘之间间隔就正好是信道间隔。

GRC当中通常会使用变量模块(variable blocks)来对一些值进行修改。在下面的例子当中我们将使用变量模块来定义信道间隔的值。一旦channel_spacing设定完毕我们就可以在其他模块当中使用我们所设定的值。为了使用信道间隔来控制DC Spike,我们将定义另外一个变量模块freq_offset并让其值等于(channel_spacing / 2) * (channel_spacing * .1)。借助这个公式我们就可以把DC Spike推移到信号的边缘部分。如果我们进一步将此处的1调整到10就可以将DC Spike推移到传输信号之外了(如图4所示)。图5中将告诉大家应该如何去设置相关的osmocom Source。


图4


图5

一旦我们完成了这些模块的配置后,我们将会所对应的区域中看到公式计算厚的结果呈现在其中。被计算后的的结果如图6所示。


图6GRC捕获配置图

最后在图7中可以看到我们已经成功地将DC Spike推移到了传输之外。

图7

一旦DC Spike的问题得到解决,我们就可以在不受它干扰的情况下对信号进行处理了。接下来需要我们去做的就是信号的分离。GRC当中存在两个模块可以帮助我们对信号进行分离。它们分别是Low Pass Filter(LPF)和FrequencyXlating FIR Filter(FXFF)模块。从功能上来将两者能为我们提供的几乎是相同的。但是相对于LPF,FXFF为我们提供了更多的选项可以让我们在分离或对传输的信号进行操作时有一个更好的开始。在这里我们先对LPF做一个简单的介绍。

在LPF的配置当中,第一个可调节选项是Decimation。通过对该值进行调节,我们可以修改即将输入进来的信号的采样率(Sampling Rate)。你会在众多FM解调的GRC例子当中看到Decimation。这个参数的取值通常会和图5中的freq_offset一样由计算公式来完成。虽然使用Decimation在有些信号解调中是需要使用到的,但是在我们这次的例子当中我们不会用到它。所以我们可以让它保持在默认的值“1”,这样就不会对我们的采样率(Sample Rate)有任何的影响。这种做法也能同时保证我们不会去打破采样定理中提到的每一个正弦周期需要进行两次采样的说法。

下一个需要我们去设置的是“Window”这个选项。这个选项的默认值是“Hamming”。但是在Balint Seeber的“Blind signal analysis with GNU Radio”演讲当中他曾经提到我们应该将Window的值设置成“BlackMan”,因为这相对于另外一个来说是更优秀的算法。

在设置完Decimation和Window参数之后,还需要我们设置SampleRate,Cutoff Frequency和Transition Width来完成我们的信号分离。Sample Rate的设置很简单,它是输入采样率并应当和前面所提到的一样被默认的设置成“samp_rate”。这里需要注意的是即使我们使用decimation修改了输出的采样率,Sample Rate应当依旧设置成我们的输入采样率。Cutoff Frequency为我们之前提到的图4中所显示的频道大小。然而频道间隔的设定也应当和我们在之前所提到的一样,应该有同名的变量模块进行设定。

其中最为麻烦的可能就属Transition Width的设定了。在设定这个值之前我们需要做一些测试来给它赋予一个正确的值。更多的经验和调查将会对于你在起初如何设定这个值有很大的帮助。当然这也会取决于中心频率,带宽,无线电设备类型等因素的影响。有些时候传输的信号不会恰好地集中在中心频率。它时常都有可能受到天气,Power,甚至是其它信号的干扰。总而言之,该值的不合理设定可能会导致多余信号的产生,又或者是信号的丢失。根据我们的经验,我们会将该值设定为频道间隔(Channel Spacing)的40%~50%之间的值。在后面我们也会看到这个设定可以为我们带来最好的结果。在图8中我们将使用下述的参数来对LPF进行配置。

Frequency Offset 120,000

Channel Spacing 200,000

Channel Transition 80,000

Window BlackMan


图8

当我们用上述的参数观察我们分离出来的信号时,我们发现我们的信号并没有位于FFT Plot的中心处。然而为了正确地解调信号我们需要把信号移动到FFT Plot的中心处。这里就需要我们使用Frequency Xlating FIRFilter(FXFF)来实现这个操作。

FXFF和我们前面所提到的那样,和LPF有着许多相似之处。所以在这里我们可以将Decimation和Sample Rate设置成与之前在LPF中同样的值。在FXFF当中还有一个叫Center Frequency的变量。这个变量和DC_Offset一样通常用来矫正信号并将其调整到中心处。如果在设置过程当中我们没有使用DC_Offset那么该值应当设置成0,如果不是它的值应当设置成freq_offset。最后一个需要我们去设置的是Taps变量。对于这个变量的设定,我们使用Dragorn在他的博客Playing with the HackRF – Keyfobs中所提到的公式:“ firdes.low_pass(1, samp_rate,channel_spacing, channel_trans, firdes.WIN_BLACKMAN, 6.76) ”。(详见图9)


图9

对于FXFF进行了上述的设定之后我们就可以在图10中看到我们所预期的结果。


图10

使用LPF和FXFF对信号进行分离可以帮助我们更有效的对信号进行解调。Michael Ossmann在他的无线电培训课程当中讲述了从这个点开始应当如何进行解调。在他的课程的当中他不但讲述了相关的概念和数学知识,也告诉了我们为了解调不同的ASK(amplitude-shift key)和FSK(frequency-shifykey)所需要的模块。解调ASK我们可以使用“Complex to Mag” 或“Complex to Mag ^ 2”。然而解调FSK(尤其是2FSK和GFSK)我们可以使用“Quadrature Demod”。



SDR架构 (二) 为什么很多SDR频谱中间有尖峰? 即使0Hz处是存在尖峰的,但也会被滤波器过滤,你在最终的频谱上看不到这个尖峰。先把中心频率故意设置在偏离目标信号的频点上,然后用cosine函数,把目标信号下变频到0Hz,而把原本的0Hz变到滤波器带宽以外。相信大家第一次打开gnuradio看听广播、看频谱的时候,会注意到一个奇怪的现象,明明在频谱中间不该有信号,但是实际看到了一个尖峰。在rtlsdr的书里也有介绍。不但SDR会这样,如果用示波器打开FFT功能,你会发现在最左侧0Hz附近也会有尖峰(示波器FFT默认频谱左右对称,不显示0Hz以下的部分)。 阅读详情

相关推荐

低噪声DC-DC设计中电感优化的实战经验

在低噪声DC-DC电源设计中,电感的选择与布局对噪声抑制和效率提升至关重要。通过实际案例分析电感参数的影响,揭示如何优化电感以降低电磁干扰和纹波噪声。

weixin_42465140的博客 691

USRP调研及学习(GNU Radio)

USRP(Universal Software Radio Peripheral,通用软件无线电外设)可以使普通计算机能像高带宽的软件无线电设备一样工作。从本质上讲,USRP充当一个无线电通讯系统的数字基带和中频部分。 GNU Radio 是一个开源的软件定义无线电(SDR)平台。USRP通常与GNU Radio软件套件一起使用,以创建复杂的软件定义无线电系统。它提供了一个完整的开发环境,以创建您自己的无线电,为您处理所有的硬件接口、多线程、可移植性的问题。GNU Radio提供所有通用软件无线电需要的库,

m0_56164246的博客 4954

用示波器精准测量AC/DC电源纹波?3种实测方法对比(附20MHz带宽设置技巧)

本文详细对比了使用示波器精准测量AC/DC电源纹波的三种实测方法:平行线法、双绞线法和靠测法,并重点解析了设置20MHz带宽限制的原理与操作技巧。通过分析不同方法的优缺点与适用场景,旨在帮助工程师在电源模块性能测试中排除环境干扰,获得真实可靠的纹波数据,为器件选型与电路设计提供关键依据。

weixin_29158413的博客 597

炫技来了!使用SDR设备成功抓到蓝牙air packet, 并且wireshark实时解析, 没错就是蓝牙空口抓包器

本文章主要介绍是用ZYNQ7020+AD9361+Gnu radio是搭建一个蓝牙抓包器的文章。 用SDR(Software Defined Radio)设备研究了下BLE的抓包,通过BLE的抓包了解下蓝牙的controller的一点点内容,日拱一卒,拱了2个周终于可以抓到蓝牙37通道的广播数据,并且可以把数据传送到Wireshark中。整份工程是C语言+gnu radio来完成,没有借用python等。

朝气蓬勃 6288

DC-DC电源PCB布线核心法则:高频环路控制与地平面设计

DC-DC转换器本质上是高频能量开关系统,其PCB布线质量直接决定电磁兼容性(EMI)、电源纹波和系统稳定性。原理上,关键在于约束高频电流路径——即开关环路(Switching Loop)的物理面积,依据安培环路定律与传输线理论,环路电感每增加1nH,在5A/5ns di/dt下将产生1V电压尖峰,诱发MOSFET雪崩或ADC干扰。技术价值体现在降低辐射超标风险、提升瞬态响应精度及延长硬件寿命;典型应用场景覆盖STM32与ESP32等嵌入式主控板、工业边缘网关、车载T-Box等对电源噪声敏感的高速PCB设计

weixin_35706067的博客 362

DC-DC转换器硬件设计:从拓扑选型到PCB布局的工程实践

DC-DC转换器是电子系统的核心电源管理模块,负责将输入直流电压高效、稳定地转换为设备所需的各种电压。其工作原理基于功率半导体开关的高频通断,通过电感和电容进行能量存储与滤波,实现电压变换。这项技术的核心价值在于提升系统能效、保障稳定供电并优化空间利用,广泛应用于消费电子、工业控制和汽车电子等领域。在工程实践中,拓扑选型(如Buck、Boost)和PCB布局布线是关键环节,直接影响转换效率和电磁兼容性。本文将深入探讨同步整流、环路补偿等热词,为硬件工程师提供从原理到实战的完整设计指南。

weixin_30268921的博客 413

哪位大神可知指点一下,用hackrf_one 构建GNSS是,出现如下的错误。Configuration error in SignalSource block: implementation Osm

我的配置是按照官网进行配置的,点击。

qq_41820957的博客 537

汽车电源设计:从LDO到DC-DC,如何应对极端环境与EMI挑战

电源管理是电子系统的基石,其核心任务是将输入电能转换为稳定、洁净的电压,为各类芯片与负载供电。其工作原理主要基于线性稳压与开关转换两种基本拓扑:线性稳压器通过调整管以热耗散方式稳压,结构简单、噪声低;开关转换器则通过功率管的周期性开关,配合电感、电容进行能量存储与释放,实现高效的电能变换。这项技术的核心价值在于直接影响整个系统的能效、可靠性及电磁兼容性。在汽车电子这一典型应用场景中,电源设计面临极端挑战:输入电压范围极宽(需覆盖冷启动低至4V与抛负载高达100V的瞬态),且处于复杂的电磁干扰环境中,涉及传导

weixin_33976072的博客 307

小心烧板!为什么你的DC-DC电路里,一体成型电感耐压可能只有50V?

本文揭示了一体成型电感在DC-DC电路设计中的耐压陷阱,指出其耐压可能仅有50V,远低于传统绕线电感。通过分析材料结构、电压应力与频率关系,以及温度对耐压的影响,提供电压应力核算方法和选型指南,帮助工程师避免电路烧毁风险。

weixin_29192365的博客 357

DC-DC电源EMC难题:从开关噪声根源到PCB布局的实战解决方案

电磁兼容性(EMC)是电子设备稳定可靠运行的基础,其核心在于控制电磁干扰(EMI)的产生与传播。从原理上看,高速开关电路是主要的干扰源,尤其是DC-DC变换器,其功率MOSFET的快速开关动作会产生极高的dv/dt和di/dt,从而形成电压尖峰、振铃和脉冲电流,这些是传导和辐射发射的物理根源。其技术价值在于,良好的EMC设计能确保设备在复杂电磁环境中互不干扰、稳定工作,直接关系到产品的合规性、可靠性和市场竞争力。在应用场景上,从消费电子到工业电源、汽车电子,任何包含开关电源的系统都面临EMC挑战。本文聚焦于

weixin_34208283的博客 328

硬件工程师必读:电容选型实战指南,从七大维度解决电源纹波与稳定性问题

在电子电路设计中,电容作为基础的无源元件,其核心作用在于储能、滤波和去耦。其工作原理基于电荷的存储与释放,能够平滑电压波动、抑制噪声。电容的技术价值不仅在于实现基本功能,更在于其选型直接影响整个系统的电源完整性、信号质量和长期可靠性。在实际应用场景中,如开关电源、高速数字电路和精密模拟电路,电容的等效串联电阻、纹波电流承受能力、温度特性等动态参数成为决定电路性能的关键。本文聚焦于电容选型的工程实践,深入剖析包括ESR、纹波电流在内的核心维度,通过系统化的方法,帮助工程师规避常见的设计陷阱,确保电源稳定与低噪

weixin_34166847的博客 320

Appendix A RMS Values of Commonly Observed Converter Waveforms

下面是常见波形的RMS值总结, RMS值可用来计算功率, loss等, 很有用。

2304_76736886的博客 391

Buck/Boost电路设计资源包:从参数计算到仿真验证的完整工具链

DC-DC变换器是开关电源设计的核心,其核心原理是通过控制开关管的导通与关断,利用电感和电容的储能与释能,实现电压的升降变换与稳定输出。这项技术的关键价值在于高效的电能转换,广泛应用于消费电子、工业控制、新能源及通信设备等场景,为各类电子系统提供稳定可靠的供电方案。在具体工程实践中,电感、电容等关键元器件的参数计算与仿真验证是确保设计成功的基础环节。针对这一需求,一套集成了参数计算表格和预建仿真模型的资源包应运而生,它能够帮助工程师和学生高效完成Buck(降压)和Boost(升压)电路的参数设计与验证,显著

weixin_30572613的博客 1286

三相DC-AC变换器参数设计:多目标权衡与工程鲁棒性实践

三相DC-AC变换器是新能源并网、储能变流和电机驱动系统的核心环节,其参数设计远非简单套用SPWM公式或查表选型所能解决。本质是电压应力、热平衡、控制延时、谐波抑制与稳定性之间的多目标强耦合工程权衡。直流母线电压选择直接影响IGBT开关损耗与LCL滤波器体积,而开关频率设定需兼顾结温上升与电流谐波失真(THD)。真实设计必须嵌入物理约束——如器件短路耐受时间(t_sc)、反向恢复电荷(Qrr)、数字控制总延时(Td)及电网阻抗变化对锁相环的影响。面向高校科研平台的参数体系,更强调可复现、可验证、可教学,要求

weixin_28726391的博客 103

基于级联MOSFET与电压倍增器的高压Boost电源设计与实践

开关电源是现代电子设备的核心能量转换单元,其核心原理是通过高频开关动作控制电感的储能与释放,实现电压的升降变换。Boost拓扑作为一种基础的非隔离升压电路,因其结构简单、效率较高,在从电池供电设备到工业电源的广泛场景中扮演着关键角色。其技术价值在于能够高效地将较低的输入电压提升至所需的高压,为各类高压小功率负载提供稳定能量。本文聚焦于一个具体的高压应用挑战:如何利用常见低压元件安全、经济地构建一个可调高压直流电源。通过引入级联MOSFET结构分摊电压应力,并结合电压倍增器电路,巧妙地降低了主功率电路的设计难

weixin_33709219的博客 540

SpikeTrains_SpectroTemporal:“听觉尖峰序列的频谱特定时间分析”的代码和文件

科技论文 “针对复杂声音的峰峰值响应的频谱特定的时间分析:统一框架”的代码和数据 运行代码run_all_Fig_mfiles.m以重新创建论文中的所有图形。

HackRF射频功率测量终极指南:从-100dBm到0dBm的精度校准技巧

HackRF One是一款开源的软件定义无线电平台,能够进行射频信号的收发和功率测量。对于无线电爱好者和工程师来说,精确的功率测量是评估信号质量和系统性能的关键。本文将详细介绍如何使用HackRF进行射频功率测量,并提供从-100dBm到0dBm范围的精度校准方法。 ## 🔍 HackRF One硬件架构解析 HackRF One的射频系统采用模块化设计,包含微控制器、时钟生成、模拟前端、收

gitblog_00657的博客 1041

Vmware安装windowsServer2022版本

全网最详细的Vmware安装windowsServer2022版本

A乐神的博客 7010

Buck/Boost电路常见设计误区:为什么你的电源效率总是不达标?

本文深入剖析了Buck/Boost电路设计中导致电源效率不达标的常见误区。重点揭示了除开关损耗外,栅极驱动损耗、电感交流损耗、PCB布局寄生参数等“隐形杀手”对效率的关键影响,并提供了从元件选型、参数计算到实测调试的系统优化策略,帮助工程师有效提升电源转换效率。

dd012的博客 827

【YOLOv8实战】从零构建番茄成熟度智能检测GUI系统【附完整工程】

本文详细介绍了从零构建基于YOLOv8的番茄成熟度智能检测GUI系统的完整实战流程。内容涵盖环境搭建、数据集准备、模型训练调优,并重点讲解如何使用PyQt5开发图形界面,最终将项目打包为可执行文件,实现AI模型从训练到桌面应用落地的完整工程闭环。

xxx12的博客 821

SSE(Server-Sent Events)完整使用示例

本篇使用Node.js 作为服务端,在浏览器客户端演示SSE的完整实例和演示。实现了一个基于 Server-Sent Events (SSE) 的实时数据推送功能。

oscar999的专栏 750
上一篇: USRP固件和FPGA程序烧写
下一篇: ubuntu System program problem detected
无线通信实验室
博客等级 码龄11年 2704粉丝 77原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值