[LSA 1d] 项目之始与计划

LSA 1d: Lithia's Spectrum Analyzer in a day. 一天的频谱仪制作!

这学期有门DSP的课,老师的授课风格是非常鼓励我们自行去探索的,包括让我们自己去买元器件做了一个带各种外设的Mega16的开发板(什么?DSP课教avr?)按照他的说法不管这学期上没上课,作业写得咋样,只要期末能提交一个project那么都能拿到100%的平时成绩。

老师发的一块光秃秃的开发板,我们自己买元器件去焊。可以用“Barebones”来形容。不过毕竟是教DSP顺便教一下单片机(我们以前51课其实已经做过一部分),该有的外设都有了(比如经典到不能再经典的DS18b20和DS1302,还有个TLC5615 DAC)

他希望我们做的Project都不会太难,“能够证明自己掌握了数字信号处理即可,不需要太过复杂,例如一个虚拟示波器”。我想了想,自己到底缺少一些什么样的设备?

当然是频谱仪啦!虽然我一直时不时去咸鱼上搜HP的频谱分析仪,不花个两千以上还是整不到参数足够好看的设备。而我整个一桌子的正弦信号源,任意波信号源,500MHz 2Gsps示波器和五位半台表才花了不到2000,因此也一直下不去手。

这学期我本来是想要先做一个实用性更高的网分,主要是因为我在淘宝上搞到了价格极其低廉的拆机件Kintex-7 325T,一个性能强大到我经手过最复杂的项目也无法发挥出其10%能力的芯片。但是出于时间以及经济问题(说白了就是缺钱买FMC,缺钱买ADC,还缺钱做那个8层起步的PCB),一直不想搞。

那么既然有这么个机会了,要么先从简单的频谱仪开始搞起吧。毕竟是主频才12MHz的AVR,这个项目的复杂度到头也不会有多高。我将它的名字定为“LSA 1d”,意味着我原本希望24小时以内完成主要的工作。当然开始搞了一点之后才发现有一点高估自己,平摊下来可能搞一个星期的时间能成。不过每个部分还是能一天搞定,所以也没改名,,,

那么,粗略的介绍完毕了,接下来就是正文了

需求

首先我需要明确自己的需求是什么。我希望我的设备能全部玩得起微波,但是我对微波技术的了解还停留在粗浅的仿真中,设备更是一个没有,暂时这个就不考虑了。除此之外,我什么场合会需要用到频谱仪?

  • EMI测试
  • 元器件性能评估(尤其是无源器件的频率响应测试)
  • 滤波器性能评估

我暂时能想到的就是这些,如果是网分的话不但能够覆盖这里所有,还有更多其他的用途,不过我现在要用的话,果然还是去借吧……

那么频率范围究竟该如何确定?PCB设计借用我手头各种仿真,设计工具的力量,不会有非常大的难度(如果有的话,难度主要也是来自FR-4这种高损耗的材料)。但是芯片部分就有非常大的难度了。单说混频器,某些高性能的集成混频器,其价格要500元以上,而且频率范围并不宽,如果需要将它拆成各个部件做得更好,总共所花的成本将远远高于我去闲鱼够买一个性能比我自己做强得多的频谱分析仪。

因此最后决定将工作频率定在DC-1GHz或者DC-500MHz,这样的话评估EMI和元器件性能就已经是足够了,如果说是交作业那绝对是more than enough。关于这个DC附近要怎么做,我还没有头绪。(这部分绝对是非常大的一个难题)

数字

上式其实就是频谱仪的核心:频率搬移,因为频谱有正交性,在线性系统中你可以将频谱中的每一个频率们当成独立的,这时候如果有一个本地振荡器(LO, Local Oscillator)工作在β这个频率下,二者通过一个电路相乘,结果就是整个频谱变成原来频谱向左移β和向右移β的叠加。我们可以将高频的部分挪到低频来,使用低速的器件来分析。当然,为了防止左移和右移的部分重叠造成问题,我们需要一些滤波器来把不感兴趣的部分切掉(这里就不探讨欠采样之类的手段了,有兴趣的话可以自行了解)

来自ADI - Digital Signal Processing in IF/RF Data Converters一文的示意图,图中搬移后的频谱经过滤波后就得到了我们想看的部分(注意,这里使用了一些比较高级的技巧,有兴趣可以去看原文)。这个技术的历史已经一百多年了,基本上和无线电通信同时诞生。

这一部分知识在信号与系统课堂上会详细讲解,相信学过信号与系统的同学看这一部分会觉得轻车熟路。

模拟频谱仪已经有很多人DIY过了,它的原理比较简单:和AM收音机是一样的。通常人们采用超外差架构:多次混频-滤波,把想要看的区域给一步一步切出来,最后切到分析带宽那么窄,用一个对数检波器作为屏幕纵坐标输入,你就会看到一条细线,如果让其中一部分混频器的频率可调,同时调节屏幕的横坐标,频谱就被扫描出来了。

上面一系列图是日本无线电爱好者JG1EAD在1995年自制的500MHz频谱仪,其结构就和我所描述的一样,是多次下变频的外差式结构。这台机器的零件成本非常低廉,有很多关键部件作者都依靠他高超的设计能力给解决了。在他的网站上提供了这个频谱仪全部的原理图。

频谱仪最关心的是采用怎样的架构,不过在我自己开始着手设计这个之前,我必须要再次提醒自己:“你做的是个数字频谱仪!”

而对于数字频谱仪,我们的处理方式有一定的区别:我们不需要将它切到分析带宽那么窄了。在多次切割频谱后,剩下的几十MHz宽度的频谱直接用ADC采集下来,通过FFT转换成频谱数据。然后在扫描时每一次扫的区域就是这样一个几十MHz的频谱,最后将其拼接起来即可。这种手段通常称作“数字IF”(IF=Intermediate Frequency,在无线电接收机里指通过混频后生成的新的,略低一些的频率)

KE5FX的"Equinox" DC-1GHz 自制频谱仪

上图中由美国无线电爱好者KE5FX在2005年发布的,四组数字IF同时采样的超外差式频谱仪“Equinox”基本代表了DIY频谱仪的最高水准,其中他自己制作的许多关键部件(如滤波器和KE5FX/VK6BRO第一本振模块)的性能达到了极高水平。

在这个项目刚开始时,我想要使用ATMEGA16做个数字IF,用内置的ADC去采样,然后FFT。但是这个ADC的性能实在是过于差劲,在全12bit开启下,采样率仅有15ksps,那么要扫描稍微宽一些的频谱比较慢,为了累积足够数据做FFT更慢。而且要命的是想要滤出这么小一段区域的滤波器设计难度是很高的。嗯……不如外扩ADC吧!但是一旦要外扩ADC,超高的采样率意味着ATMEGA可怜的1/4主频的外设总线根本解决不了。所以伴随着我决定选用的ADS800 12bit 20Msps ADC,我又必须要再加入一颗小型的FPGA去做一个缓冲区。

Dukelec设计的CDPGA-H3 Intel MAX10 10M02 FPGA模块

所选用的FPGA模块上使用的芯片是MAX10系列的10M02,2k左右的逻辑单元。之所以选用这个是因为10M02有足够多的block RAM来存放捕获到的数据,对于FFT而言更多的数据就意味着更好的分辨率,所以目标是至少要达到2k点每通道(每个点10bit或者12bit,按照实际情况决定)。这些采集到的数据如果可以的话就在片上处理,不行的话就通过SPI扔给ATMEGA处理(这一步慢一点倒是无所谓了,因为信号片段已经采下来了)。这个模块在淘宝上可以买到,要是他们还有更高端一些的,比如基于10M08的小板就最好了,因为那样的话我甚至连FFT都能在这里直接给做了。(不行,得有点信心,看看隔壁Lattice,整个8192点FFT才用了769个slice,花足够时间优化还是应该能塞下的)


架构

典型超外差式设计

外差式接收机的设计非常经典,读者可以在纸上随便写一个频谱,用不同的本地振荡器混频将频谱左右搬移,在这个过程中加入不同的滤波器就可以将感兴趣的频率范围取出并拿到频谱中间。

图中所示的结构是“超外差”(Super-Heterodyne),意思是会出现高于输入信号带宽频率的本地振荡器。我们用两个滤波器切出了原频谱中的“cb”部分

上图所示是另一种外差式接收机,其本振频率低于输入信号带宽。我们切出了原信号的“de”部分

外差式设计有一个比较大的难题:为了达到较好的信号质量,需要多级频率转换-滤波的过程。成本是一个问题,各个阶内引入的噪声也是一个问题,尤其是对于我来说,这方面的器件选择水平有限,而且我的目标是低频。在射频,有很多设计技巧可以使用来简化设计(比如微带线电路)。但是向上和向下都会遇到一些困难。超外差意味着我为了扫出整个频谱,第一本振的频率必须是输入信号带宽的一倍以上;而不管是哪种,在低频附近想要做一个陡峭的BPF并非易事。

无线电接收机除了外差式以外还能有什么方式呢?比如直接采样式:滤波后直接用低速ADC采样高速信号,用采样造成的混叠直接将高频部分挪到可以采集的范围内。但是这个方式并不适合做频谱分析仪(更适合固定工作于某个频率的那种无线电接收机),此外所谓“对高速信号采样”,本质是采样包含了混频的过程;那个采样电路的速度必须非常快,远远比ADC的速度快,如果不是有专用芯片支持,反而可能得不偿失。

此外还有一种非常优雅的方式:零中频(Zero-IF),同时也叫同频接收机(Homodyne Receiver)。因为我个人对这种信号传输方式比较感兴趣,所以我当场就敲定了这个方案(就是这么直白x

简单零中频接收机就是直接用一个本振把信号挪到0频率附近。这要求信号关于中心频率对称,但实际上这种情况是比较少的,可能只有AM广播是这种情况了。如果不对称的话,中心频率左右两边的频谱成分会叠起来,无法区分。

零中频巧妙地使用了复信号的特点:因为我们通常讨论的“频域”是分幅度和相位的,也就是说它可以写成一个复数(学过复变函数相关的同学会非常熟悉这一点),如果用一组正交的信号(就是相差90度,用复数表达就是多乘一个j)去作为本振,那么调制的输出就各自携带一部分频谱,额外的信息隐含在了“相位”这个维度中。


之后应当如何处理呢:因为I和Q已经是比较低的频率了,直接全部采下来给数字域处理就可以了。处理方式有很多,比如一个比较经典的Weaver结构(一开始是以模拟方式实现):

我们上课时PPT中的一页,中间那个结构其实就是Weaver接收机的结构(虽然当时上课时我并不知道这件事)

Neat!

零中频架构有一些非常显著的优势:

  • 不需要考虑镜像抑制,其结构将自动抵消镜像
  • 将一个ADC的压力分担到两个ADC上了,因此每个ADC的速度可以减半,成本会更低,或者也可以做更高的采样位数
  • 不需要带通滤波器,而其他架构中出现的高Q带通滤波器成本高昂

此外,零中频之所以使用没有超外差广泛(尤其是在频谱仪中),是因为它有如下几个非常难以解决的问题:

  • I/Q调制源需要实现严格的相位正交和幅度相同,这很难实现,尤其是频率较高时
  • 易受噪声干扰,其中很大一部分噪声来自器件尤其是混频器有限的端口隔离度(本振泄露问题)
  • 为了避免共模噪声,其中一部分关键部件需要工作在差分
  • 需要直流偏差矫正

出于时间关系,外加本设计的整个工作频率范围都不高,所以这些问题并没有考虑进去。如果将来还想继续改善的话再说吧√

最后确定的结构框图如图所示,可能随着项目的进行还有一些地方需要调整。关于元器件的选择和滤波器的设计我将在下一篇文章中写,敬请期待(x)

LSA1d结构框图

参考

JG1EAD - SPEANA 500MHz Spectrum Analyzer http://www001.upp.so-net.ne.jp/jg1ead/speana/e_speana.html

KE5FX - Equinox: A Remotely-Controlled DC-1 GHz
Communications Receiver and Trunk-Tracking Scanner
http://www.ke5fx.com/equinox/eb.html

Green Bay Professional Packet Radio - GBPPR 1 GHz RF Spectrum Analyzer
https://www.qsl.net/n9zia/spec/index.html

(注:GBPPR的网页上有40多条链接,可供参考)

零中频接收机的问题以及设计解决方案
https://blog.csdn.net/zq07506149/article/details/82352242

(注:本文出处未知,网上经常见到各种人转发。根据文章风格,应该来自TI论坛或者使用手册)

MIT OpenCourseWare -
Prof. Dennis Freeman -MIT6.003 Signals and Systems 课件和习题
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-003-signals-and-systems-fall-2011/

HP/Agilent/Keysight - 各种频谱仪的用户手册以及维护手册

American Technical Ceramics Corp. - RF Capacitor Handbook - http://www.atceramics.com/technical-notes.aspx

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.