网站定位有哪些辽宁阜新建设学校官方网站
2026/4/22 19:22:03 网站建设 项目流程
网站定位有哪些,辽宁阜新建设学校官方网站,免费制作网页,网站 百度地图在 FPGA 里跑 SDR 和 FT8#xff1a;一个 32 MHz 全频谱无线电的硬核实现从 0–32 MHz 频谱显示#xff0c;到 AM/SSB 解调#xff0c;再到 FT8 数字通信#xff0c;这一切竟然都在一块 FPGA 上完成。在软件定义无线电#xff08;SDR#xff09;的世界里#xff0c;我们…在 FPGA 里跑 SDR 和 FT8一个 32 MHz 全频谱无线电的硬核实现从 0–32 MHz 频谱显示到 AM/SSB 解调再到 FT8 数字通信这一切竟然都在一块 FPGA 上完成。在软件定义无线电SDR的世界里我们已经习惯了「PC USB SDR」的组合RTL-SDR、HackRF、Airspy…… 但如果把 高速采样、频谱分析、数字下变频甚至 FT8 数字模式 全部塞进 FPGA会发生什么今天的项目给出了非常漂亮的答案。项目简介本项目展示了一个完全基于 FPGA 的软件定义无线电SDR系统其功能覆盖0–32 MHz 的完整频谱显示AM / SSBUSB / LSB解调实时 FFT 频谱与瀑布图FT8 数字通信模式收发整个系统运行在一块低成本的 Zynq FPGA SoC 开发板上不依赖外部 PC即可完成从射频采样到解调、显示和数字通信的完整流程。设计目标本项目的主要目标包括使用 FPGA 实现完整的 SDR 信号链覆盖 HF短波频段 0–32 MHz支持传统模拟调制AM / SSB支持现代数字通信模式 FT8构建一个可独立运行的无线电系统类似项目KiwiSDR是一个非常好的基于 FPGA 的 0-30 MHz 宽带 SDR 接收器的例子但它的价格为 450 欧元并且需要一台 BeagleBone SBC。Red Pitaya是一个很棒的项目有很多可能性而且它是开源的但是电路板的价格在 600 欧元左右。Panoradio (https://panoradio-sdr.de/panoradio-sdr/) 的功能远超我们想要构建的系统100 MHz 频谱16 位采样而且它的组件FPGA 板、A/D 板也贵得多。框图ADC - 模数转换器 - AD9226该电路板没有参考时钟参见 AD9226 电路板原理图https://hackaday.io/project/186329/gallery#d57ce9aa5e91eddf06783c34d0ca2dc4因此 64MHz 时钟必须由 FPGA 提供。具体方法如下AD9226 在时钟信号的下降沿输出数据。FPGA 在时钟上升沿进行采样请看下图更多详情请参阅 Analog Devices 的 AD9226 数据手册https://www.analog.com/media/en/technical-documentation/data-sheets/ad9226.pdf。目前担心FPGA产生的时钟抖动会不会给接收信号增加噪声例如在这个使用 ZYNQ 7000 的 ADC 转 DMA 转以太网项目中https://github.com/Hamid-R-Tanhaei/ZYNQ_ADC_DMA_LWIP采样时钟是在 FPGA 外部生成的。FPGAFPGA 中运行的功能如下。它向 AD9226 提供 64MHz 时钟并从中接收 12 位数据 1 位“超出范围”数据。内部信号发生器 0.1 - 30 MHz AM调制频率为 1KHz可用于测试目的。一个“捕获模块”一次可以捕获 16384 个样本采样频率为 64MHz。这些样本被发送到 FPGA PS然后从 FPGA PS 发送到 sdr-app一个运行在 Zynq PS 上的 QT5 C 应用程序显示完整的 32 MHz 无线电频谱和瀑布图。一个具有可选带宽10 MHz、3 MHz、1 MHz、300KHz、100 KHz、30 KHz、10 KHz的数字下变频器 (DDC) 将放大无线电频谱并提高分辨率。另一台DDC可以调谐到特定频率用于解调和解码例如80、40、20、15和10米波段的FT8频率可选频率为100KHz、30KHz、15KHz、8KHz、4KHz和2KHz。它生成 TMDS 信号以驱动 DVI 接口HDMI 不带音频和控制功能。它生成I2S信号以驱动外部I2S DAC从而收听AM广播和SSB业余无线电广播。它可连接PS2鼠标EBAZ4205 板入门整个项目颇具挑战性尤其是对于那些从未接触过 Xilinx Zynq 开发环境Vivado、Vitis、Petalinux的人来说。因此强烈建议先从一个“入门”项目开始。 请参考 Hackaday 项目https://hackaday.io/project/187351-ebaz4205-development-environment。模拟输入AD9226 12 位 65MSPS 模数转换器板将输入信号衰减 -8.4 dB 的设计并不好。所以决定对其进行改造以获得更大的放大倍数并使用更宽的 12 位模数转换器范围。设计一个这样的电路与原电路相比增益约为 16.5 dB而原电路的增益为 -8.4 dB修改后的电路板模拟输入动态范围在设置的第一级放大倍数下最大输入信号在 VINA 和 VINB 之间产生 2 Vpp 的信号约为 -6 dBm。以太网以太网端口连接到本地局域网获取 IP 地址。这样使用外接电脑可以使用 SSH 启动一个或多个终端会话。使用 VNC 服务器从帧缓冲区读取数据来查看屏幕不使用 X11使用 FileZilla 或类似软件通过 SFTP 查看/复制文件。图形用户界面决定将所有功能都集成到 Zynq-7010 中所以用 QT5 C 编写了一个应用程序来查看频谱和调谐电台。它的图形用户界面如下图所示。在这个例子中频谱宽度为 100 kHz调谐到了一个频率为 13.67 MHz 的电台见图中绿色竖线。另请注意图中红色的鼠标指针以及右侧的可用设置。一个 32 MHz 宽的频谱其中 13.67 MHz 的无线电台被调谐到与上面相同。可以接收到一些广播电台和业余无线电台的信号通过捕获采样输入脉冲串来显示频谱的方案显然不能用于接收无线电电台因为它在短时间内256us接收一些样本16384个频率约为100-200HZ具体频率取决于构建和显示频谱所需的时间5-10ms。而要收听广播电台则需要连续的信号流。这样一来处理系统即 Zynq-7010 CPU就可以承担繁重的工作而功能强大的 Zynq-7010 可编程逻辑芯片则无法得到充分利用。因此设计了数字下变频器 (DDC)低通 CIC-FIR 滤波器和抽取器AM/SSB/LSB解调器I2S接口从 Zynq-7000 输出后以 48Ksamples/s的采样率听一些音频。32 MHz 低通滤波器待办事项需要衰减进入频谱的强调频广播信号88-108MHz这些信号来自第三和第四奈奎斯特区以及第二奈奎斯特区的一些商业中继器。《奈奎斯特准则与采样数据系统设计》https://www.analog.com/media/en/training-seminars/tutorials/MT-002.pdf。根据 crun 的建议应该滤除 FM 广播频段88-108 MHz和 AM 频段最高 1.6 MHz。为了滤除 FM 广播信号打算使用像这样的 9 阶椭圆滤波器。但当时什么也没做因为在此之前我想接收并解调一些短波信号以了解干扰程度打算使用 ADC 的“超出范围”位来诊断是否有强信号干扰我的接收导致 ADC 超出 12 位范围。DDC数字下变频器它像往常一样由一个本振和一个复乘法器组成。请注意本地振荡器、其 AXI 控制和复数乘法器都使用 64 MHz 时钟 (CLK)。本振它输出一个32位复数16位正弦16位余弦信号。它的频率是通过一个普通的 ctrl AXi 界面设置的。复数乘数32 位复数16 位正弦 16 位余弦信号被分成两个 16 位信号。12 位乘以 16 位28 位的运算结果被截断为前 16 个最高有效位。测试信号发生器为了在没有外部信号且不使用ADC的情况下测试电路逻辑和整个设计很快意识到需要一个内部测试信号。使用Xilinx DDS编译器IP设计了以下模块它产生一个以 1 kHz 音调调制的载波 AM 信号。载波频率可以设置为 0 到 32 MHz必要时还可以更高。CIC-FIR我找到了两篇解释得非常清楚的文章级联积分梳状CIC滤波器入门指南https://www.dsprelated.com/showarticle/1337.php英特尔 - Altera了解 CICO 补偿滤波器https://github.com/guido57/EBAZ4205_SDR/blob/main/docs/an-455-understanding-cic-compensation-filters.pdf关于 CIC-FIR标准配置是设计一个或两个可编程的连续 CIC 滤波器/抽取器然后接一个固定的 FIR 滤波器。关于CIC阶段数是固定的N8R 抽取率可以设置 CICFIR 滤波器的整体带宽。在本设计中R4...8192 的带宽范围为 2MHz 至 1KHz见下表。关于FIR非常陡峭的过渡带宽例如2MHz 处为 -3dB2.42MHz 处为 -120dB极高的阻带衰减-120dBCIC滤波器轻微下降的补偿它是使用 110 个系数的 FIR 滤波器获得的该滤波器由 matlab 计算得出CIC-FIR 设计matlab .mlx 格式https://github.com/guido57/EBAZ4205_SDR/blob/main/matlab/myAN455quater.mlxCIC-FIR 设计.pdf 格式https://github.com/guido57/EBAZ4205_SDR/blob/main/matlab/myAN455quater.pdf它进一步将复杂度减半仅使用一半的 DSP48从而进一步降低一半。详情请参阅 《级联积分梳状 (CIC) 滤波器入门指南:https://www.dsprelated.com/showarticle/1337.php》。在测试 CIC-FIR 双通道解决方案时遇到了一个问题并已将该问题提交给Xilinx/AMD 支持部门(https://support.xilinx.com/s/question/0D54U00007D2CXOSA3/dual-channel-cic-fir-problem?languageen_US)。AM解调器基本上是照搬了 K6JCA 的设计 ——一款基于 FPGA 的 SDR 高频收发器。https://k6jca.blogspot.com/2017/03/an-fpga-sdr-hf-transceiver-part-2-fpga.htmlAM解调器这是一个经典的包络检波器执行 sqrt ( I^2 Q^2 )。下图黄色部分为进入此 AM 解调器的测试信号仅 I 分量蓝色部分为解调后的 AM 信号。无直流和信号电平表为了从 AM 解调信号中去除直流分量简单地使用了一个一阶 IIR 高通滤波器该滤波器还可以使 AM 解调信号通过低通滤波后得到载波电平。下图红色部分为经高通 IIR 滤波器滤除直流分量后的 AM 解调信号绿色部分为载波电平。这是在 Simulink 中使用的完整测试平台。除了调幅解调器和高/低通滤波器之外请注意使用的测试信号最左侧的模块。该测试信号旨在产生一个持续1s的调幅调制信号随后是1s的无信号信号以测试信号电平表的瞬态响应。这是它的框图其输出仅 I 分量以黄色显示。绿色部分显示的是信号电平表的响应。AGC它作用于 AM/SSB 解调之后。这是一种称为“前向”的自动增益控制即它在不影响前级的情况下调整输出电平而是直接放大/衰减信号本身。使用 Simulink 进行仿真并转换为 VHDL。I2S 测试为了测试 IPI2S_Transmitter和 I2S DACPCM5102构建了这个 Vivado 模块一些事实dds_compiler 生成一个 16 位二进制补码正弦波和一个 16 位余弦波采样频率为 1 KHz采样频率为 100MHz作为 AXI 流时钟 s00_axis_aclk。I2S_Transmitter IP 来自 http://www.harald-rosenfeldt.de/2017/12/30/zynq-create-an-i2s-transmitter-to-send-audio-signals/SCLK、LRCLK 和 I2SDATA 是标准的 I2S 线。mclk10MHz因此SCLK 1.536MHz参见 I2S_Transmitter.v音频采样率LRCLK为 1.536MHz/32 (1616 位) 48.000 Hz这是I2S数据协议BCLK 即 SCLKSDATA 即 I2SDATA频率 fs 48.000 HzDACPCM5102和D类音频放大器PAM8403原理图。请注意线性稳压器 5 转 3.3VPCM5102 不能承受 5V虽然不需要立体声输出但这两个声道可以用于不同的用途一个通道用于LSB音频另一个通道用于FT8音频。一个通道用于I数据另一个通道用于Q数据解调前。最后这些是左侧和右侧的输出。Zoom FFT接收器从 Panoradio ( https://panoradio-sdr.de/panoradio-sdr/ )那里借鉴了这个想法。事实上如果需要查看调制信号的频谱细节则需要放大频谱并采集其子频带。例如对 0-32MHz 频谱进行 8192 个时间采样即可查看“定义”频率区间跨度为 32M/8192 3906.25 Hz 的频谱这意味着可以在单个区间中看到完整的 FT8 7,074 MHz 频段。因此构建了一个独立的接收器DDC 中频滤波器 AXI 频谱捕获器以获取所需子频段的射频频谱及其定义。请参阅本文开头框图中的频谱 DDC缩放 FFT。SSB解调器显而易见的选择是构建一个韦弗解调器这里有非常详细的描述 韦弗 SSB 调制/解调 - Derek Rowell 的教程https://forum.pjrc.com/attachment.php?attachmentid9746d1487439697。还应该阅读唐纳德·韦弗 (Donald Weaver) 的原文 《单边带信号生成与检测的第三种方法》载于 IRE 会议论文集1956 年 12 月。https://www.google.com/patents/US2928055这是本次设计。集成把所有电路板都放进了一个从旧调制解调器上拆下来的塑料盒里。FT8 通联现在整个项目作为接收机运行良好包括FT8解码是时候开始发送数据了。MYJTDX 软件由 JTDX 衍生而来JTDX 又由 WSJT-X 衍生而来解码效果良好可以进行发射和管理 QSO。调制 8FSK调制其幅度以生成 FT8 的斜坡升余弦初始幅度增加和最终幅度减少。Zynq-7010 - AD9851 接线注意RC 低通滤波器R1-C1用于从 2 MHz PWM 波形中滤除直流分量。如果衰减 2 MHz 信号不够会将其更换为 LC 多极点低通滤波器。代码https://github.com/guido57/EBAZ4205_SDR_spectrum/blob/main/Vivado/Vivado.srcs/sources_1/new/ad9851gfsk.vhdhttps://hackaday.io/project/186329-32mhz-spectrum-sdr-ft8-in-an-fpga/detailshttps://github.com/guido57/EBAZ4205_SDR_spectrum/tree/main总结从 0–32 MHz 的宽带频谱显示到传统模拟解调再到现代 FT8 数字通信这个项目完整展示了 FPGA 在无线电领域的真实应用能力。对于希望深入理解 SDR FPGA SoC 协同设计 的工程师来说这是一个极具参考价值的实例。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询