历史上的今天
返回首页

历史上的今天

今天是:2025年01月21日(星期二)

正在发生

2018年01月21日 | 基于FPGA的频谱分析仪的设计流程简要阐述

2018-01-21 来源:互联网

频谱分析仪是微电子测量领域中最基础、最重要的测量仪器之一,是从事各种电子产品研发、生产、检验的重要工具。高分辨率、宽频带数字频谱分析的方法和实现一直是该领域的研究热点。现代频谱分析仪是基于现代数字信号处理理论的频谱分析仪,信号经过前置预处理、抗混叠滤波、A/D变换、数字频谱分析等环节而得到信号中的频率分量, 达到与传统频谱分析仪同样的结果。


本设计完全利用FPGA实现FFT,在FPGA上实现整个系统构建。其中CPU选用Altera公司的Nios II软核处理器进行开发, 硬件平台关键模块使用Altera公司的EDA软件QuartusIIV8.0完成设计。整个系统利用Nios II软核处理器通过Avalon总线进行系统的控制。全文重点阐述了整个系统的设计流程,同时对于方案中的设计思路和重要部分给予说明。


1 系统设计方案


频谱分析仪一般分为两类:


一种是扫频调谐式的分析仪,此类分析仪通过各类滤波,再经过一个外差的接收机,把输入信号中的中频信号进行分析,从而得到频谱分析的结果。这是现在最为普遍的频谱分析仪结构,此类分析仪结构复。


另外一种是动态的信号分析仪,即快速傅里叶变换FFT分析仪。它利用FFT将信号分解成分立的频率分量,由模拟/数字转换器(ADC)直接对输入信号取样,经过FFT处理后获得频谱分布图。此类分析仪速度明显优于传统分析仪,可以进行实时分析。本文的设计就采用这种原理。


在此设计中,信号经过滤波、放大之后,通过AD取样,在FGPA内对信号进行全硬件的数字滤波后,交给FFT信息处理单元进行FFT变换,最后送到LCD显示其频谱分析的结果。


系统的硬件结构框图。整个系统设计主要由FPGA的内部硬件电路及外围接口模块构成。


2 系统的硬件单元


2.1 AGC电路


因为输入信号幅度变化较大,为了使信号的幅度恒定且其幅度满足A/D采样的范围(高位为2 V~3 V),因此此设计中加入AGC电路。本设计中的AGC电路采用AD603型线性增益放大器[3]。


2.2 ADC电路


为保证ADC输入动态范围的要求和对特定干扰的抑制,信号首先需要预处理。根据采样定理,输入ADC的信号必须小于采样频率的1/2。ADC是完成从模拟到数字转换的关键环节,它的精度和速度直接决定了频谱分析仪的性能,所以ADC应尽量选用精度和速度都比较高的芯片[4]。系统采用WM8731芯片实现ADC,该芯片采用Sigma-delta ADC方式,通过采样和数字滤波技术实现低频信号的高分辨率转换和含有音频信号的低失真转换。


2.3 LCD显示模块


本系统直接定义NiosⅡ控制LCD液晶显示模块,利用FPGA中的PIO接口模拟LCD的接口电路。外围电路上选用320&TImes;240液晶显示模块,选用SEDl335作为液晶模块的控制器。


3 FFT/DFT信号处理模块的实现


3.1 FIFO模块


AD采样的数据不能立即送到Nios CPU中进行处理,因为CPU还有许多其他任务要做,所以只有等AD采集到一定数量的数据之后再读取采样数据,这样节省CPU的时间[5]。因此首先需设计一个FIFO来存储AD采样的数据,等FIFO中的数据满之后再将它们读取到CPU中进行处理。


FIFO是一种先进先出的数据缓存器,根据FIFO工作的时钟域,可以将FIFO分为同步FIFO和异步FIFO。本设计中采用了宽度为16 bit,深度为256的异步FIFO。


3.2 FFT/DFT处理模块


根据DFT算法将信号处理的模块分为乘累加器、平方器、加法器、开方器。


用再内建FPGA内部到16 bit双口RAM,可方便地使刷新数据和显示读出数据同时进行,而不产生逻辑冲突,同时也保留了结果的精度,其FPGA实现模块连接图如图2所示。


4 软件设计方案


控制系统的主程序采用C语言和汇编语言编写,程序分为下列几个部分:采样数据处理、FFT转换、标准参数设定、操作界面和频谱显示。

软件流程图如图3所示。


5 实验的结果与分析


给频谱分析仪输入峰-峰值为2 V、频率为100 Hz的方波信号,其信号处理结果见图4。从图4看出输出的方波频谱图只有奇次谐波,没有偶次谐波,而且此方波的基波、三次谐波、五次谐波和七次谐波的幅值满足1、1/3、1/5、1/7的理论数值,这与方波理论频谱基本相同[6],表1为其测量值与理论值的对比结果分析。


通过比对可以验证分析仪的LCD显示的频谱图形与其输入信号的理论频谱数值基本一致,谱线位置准确,幅度值与理论误差较小,该频谱分析仪较好地完成了测量信号频谱的要求,达到了预期设计的要求。


该设计在分析和利用Nios II软核处理器和频谱分析仪理论的基础上,完成仪器硬件和软件部分的设计。分析仪采用周期图法进行频谱分析,这样可以保证测试结果较高的分辨率和频率准确性;其中FFT运算模块采用全硬件级联结构,不仅有效满足了仪器对于信号处理实时性的要求,同时也节省了硬件资源;本设计可重构性好,在多种不同的应用领域,可根据实际需要对模块进行替换升级。选择高性能AD和大逻辑资源的FPGA等可以使性能得到大幅度提升;实现了片上设计,降低了系统的成本,实现了高集成度和可靠度。

推荐阅读

史海拾趣

Chicago Miniature公司的发展小趣事

在发展过程中,CML始终注重产品质量和品牌建设。公司建立了严格的质量管理体系,从原材料采购到生产流程再到产品出厂,都进行严格的质量控制。这使得CML的产品在市场上享有良好的声誉,并赢得了客户的信任。同时,公司还积极参与各种行业展会和交流活动,提升品牌知名度和影响力。

HTC Korea(TAEJIN Technology )公司的发展小趣事

进入安卓时代,HTC再次展现了其敏锐的市场洞察力和强大的技术实力。2008年,HTC联合电信运营商T-Mobile推出了世界上第一款安卓手机T-Mobile G1,这款手机的成功标志着HTC正式进入了安卓阵营。随后,HTC推出了多款备受好评的安卓手机,如HTC Hero(G3)等,进一步巩固了其在智能手机市场的地位。与谷歌和安卓的合作,为HTC带来了前所未有的发展机遇。

EOZ Secme公司的发展小趣事

随着国内市场的饱和,EOZ Secme开始积极寻求海外市场的拓展。公司制定了详细的国际化战略,通过参加国际展会、建立海外销售渠道等方式,逐步打开了国际市场的大门。同时,EOZ Secme还积极与国际知名企业开展合作,共同研发新产品,拓展业务领域。这些努力使得EOZ Secme在国际市场上的影响力不断增强。

Hitano Enterprise Corp公司的发展小趣事

EOZ Secme公司自创立之初,就致力于电子安全技术的研发。在2010年代初,随着物联网技术的兴起,EOZ Secme敏锐地捕捉到这一机遇,投入大量资源进行物联网安全技术的研发。经过数年的努力,公司成功开发出了一系列具有自主知识产权的物联网安全解决方案,并在市场上获得了广泛应用。这些技术的创新不仅提高了EOZ Secme的市场竞争力,也奠定了其在电子安全领域的领先地位。

酷宅(Coolkit)公司的发展小趣事

酷宅科技在追求经济效益的同时,也积极履行社会责任。公司关注环保和可持续发展问题,推动绿色制造和绿色消费。在产品设计和生产过程中,酷宅科技注重节能减排和资源循环利用,努力降低对环境的影响。此外,公司还积极参与公益事业和社会活动,为社会做出积极贡献。

以上五个故事框架涵盖了酷宅科技在电子行业中的发展历程、市场策略、技术创新和社会责任等方面。每个故事都基于事实进行描述,旨在客观展现酷宅科技在电子行业中的发展轨迹和贡献。

光磊(GL)公司的发展小趣事

酷宅科技自成立以来,一直致力于智能家居技术的研发和应用。2016年,酷宅与荣事达品冠达成战略协议,共同打造智能家居开放平台。这一平台不仅集成了酷宅先进的物联网应用技术和稳定的云端服务,还整合了荣事达在智能家居领域的丰富经验和资源。通过合作,双方共同推动智能家居产业的发展,为消费者提供更加便捷、智能的家居生活体验。

问答坊 | AI 解惑

为实现iGeneration构思远程信息系统个性化运输工具

跟许多人一样,我倾向于分三个阶段对发展中的市场和技术进行分析。首先是过去的趋势、成功和我们得到的教训;其次是我们现在面临的挑战;第三是,我是高度的乐观主义者,未来会发生各种可能性。 最近,在美国底特律举行的Telematics Update会上我有 ...…

查看全部问答>

AD6原理图编辑

第 3 章已经简要叙述了原理图设计的基本流程,本章将详细介绍如何在原理图上放置组件、原理图编辑器的使用和组件位置的编辑。 …

查看全部问答>

Embedded Software Development with C 中文版

Embedded Software Development with C 这本书有中文版的吗 请告知,谢谢…

查看全部问答>

cadence小问题!弱弱的问!

请教cadence画原理图时需要导入封装,我的主要芯片的封装都是自己通过向导做的 但是电容电阻这些封装应该不用自己做吧 我按照《cadence高速电路板设计与仿真》的介绍填上LED,但是生成网表后放置元件时报错 说找不到电容的封装 请问怎么解决这 ...…

查看全部问答>

求救:应用程序错误-0x00000000内存不能为written

只要打开应用程序就弹出   在线等 高分求救…

查看全部问答>

关于双网卡热备份

大家好?WIN2000下,双网卡热备份,也就是一个网卡坏了,另一个冗余网卡热切换,实现方案是什么?代码是什么?谢谢…

查看全部问答>

收到LPC1114样片及购买的EASYCORTEX-M3开发板

前几天收到了LPC1114的样片,要感谢SOSO。准备用此款芯片开发多功能电表,但是这个项目的时间比较靠后了。现在正在做一款手机测试电源,选择用LPC175X作为控制器,由于我从未用过过ARM,又申请不到开发板,为了尽快上手,所以让公司买了块EASYCORTE ...…

查看全部问答>

问一个LM3S库StellarisWare Graphics Library的问题

准备入手LM3S9B92,看了一些资料。 看了文档,StellarisWare Graphics Library这个库有对液晶屏的驱动,我看市面上的液晶屏有9320、9321、9325还有3225什么的驱动芯片,这个库都支持吗?TI的开发板上用的什么芯片呢? 谢谢大家。…

查看全部问答>