历史上的今天
返回首页

历史上的今天

今天是:2024年11月26日(星期二)

正在发生

2019年11月26日 | 基于FPGA的频谱分析仪的设计流程简要阐述

2019-11-26 来源:elecfans

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


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


1 系统设计方案

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

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


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


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

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

11.gif?imageView2/2/w/550

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算法将信号处理的模块分为乘累加器、平方器、加法器、开方器。

11x.gif?imageView2/2/w/550

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

22.gif?imageView2/2/w/550

4 软件设计方案

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

软件流程图如图3所示。

33.gif?imageView2/2/w/550

5 实验的结果与分析

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

44.gif?imageView2/2/w/550

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


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


推荐阅读

史海拾趣

Arduino公司的发展小趣事

随着物联网和智能设备的兴起,Arduino平台在智能家居、智能农业、机器人等领域的应用越来越广泛。开发者们可以利用Arduino平台来设计和开发各种智能设备和应用,实现设备的互联互通和智能化控制。这些应用不仅提高了人们的生活质量,也推动了电子行业的进步和发展。

这五个故事展示了Arduino公司在电子行业中的发展历程和取得的成就。从最初的廉价微控制器解决方案,到如今的多样化主板和广泛应用,Arduino始终秉持着创新、开放和合作的精神,为电子行业的发展做出了重要贡献。

Bce Sud公司的发展小趣事

随着技术的成熟,Bce Sud开始积极拓展市场,与多家电子设备制造商建立了合作关系。通过与这些企业的紧密合作,Bce Sud的产品逐渐应用于智能手机、平板电脑等消费电子产品中。同时,公司还积极寻求与上下游企业的战略合作,共同推动产业链的升级与发展。

Crowd_Supply__Inc.公司的发展小趣事

随着电子行业的快速发展和市场竞争的加剧,Crowd Supply Inc.也面临着诸多挑战。为了保持竞争优势,公司不断调整战略方向,加大在新技术领域的投入。例如,公司近期开始关注物联网和人工智能等前沿技术的应用,通过整合社区资源和技术优势,成功开发出了一系列具有市场潜力的新产品。

雅特力(Artery)公司的发展小趣事

雅特力公司自成立以来,始终致力于技术创新和产品升级。在早期的发展阶段,公司便推出了一系列具有竞争力的电子产品,通过不断的技术突破,逐渐在市场中占据了一席之地。特别是在集成电路设计领域,雅特力凭借其高效能、低能耗的产品特性,赢得了众多客户的青睐。随着技术的不断进步,雅特力逐渐成为了电子行业的佼佼者,引领着市场的发展方向。

Frequency Management International公司的发展小趣事

FMI深知技术创新是企业发展的核心动力。因此,公司一直致力于在石英晶体和晶体振荡器领域进行技术研发和创新。通过不断的技术积累和优化,FMI成功开发出了一系列高性能、高稳定性的产品,如压控温度补偿晶体振荡器(VCTCXO)、压控晶体振荡器(VCXO)、温度补偿晶体振荡器(TCXO)等。这些产品的推出不仅丰富了FMI的产品线,还进一步提升了公司在行业内的竞争力。

AMD(超微)公司的发展小趣事

FMI深知质量是企业生存和发展的根本。因此,公司一直将质量管理放在首位,建立了完善的质量管理体系。从原材料采购到生产加工、成品检验等各个环节都严格把关,确保产品质量符合客户要求。同时,FMI还注重客户服务体验的提升,为客户提供及时、专业的技术支持和解决方案。这些努力使得FMI在客户心中树立了良好的口碑和形象。

问答坊 | AI 解惑

可编程定时/计数器8253在扬声器中的应用

定时/计数器都有定时或对外部事件计数的功能。通常,定时/计数器归纳起来一般有3种类型:  硬件计数器 可在简单软件控制下计数,特点是成本低,使用方便,但是专用性强,使用不广泛。  软件定时/计数器 特点是几乎没有硬件费用,但他占用cpu的 ...…

查看全部问答>

32个最热cpld_fpga网站

本帖最后由 paulhyde 于 2014-9-15 03:38 编辑 32个最热cpld_fpga网站  …

查看全部问答>

物联网------之------智能家居

       前提:“我们在家里安装了红外幕帘探头、门磁感应传感器、燃气泄漏报警器、烟雾报警器等各种设备,形成了一个移动视频智能系统。”        早上出门前,开启安防报警系 ...…

查看全部问答>

在proteus中能否调试编译c代码?

在proteus中能否调试编译c代码? …

查看全部问答>

能不能用VC,根据无线网SSID和自己填写的密码,迅速验证密码是否正确

英特尔的无线网卡,能不能用VC做一个程序,根据无线网SSID(网名)和自己填写的密码,迅速验证密码是否正确呀? 初步设计的界面如下 无线网卡的管理工具也可以验证,但是太慢了,而且每次只能验证最多4个密码。不好 不知这个问题是不是应该在 ...…

查看全部问答>

中国嵌入式系统产业联盟 “百家e坛”第三期顺利召开

本月11日,中国嵌入式系统产业联盟“百家e坛”嵌入式技术主题论坛第三期如期召 开,延续前两期活动的火爆场面,本期活动同样吸引了众多嵌入式技术爱好者的热情参与。 本期活动可谓是名家云集,三位主讲嘉宾都是嵌入式业界知名的技术专家,因此吸引 ...…

查看全部问答>

如何对ARM的IO进行操作

ARM芯片上有一些管脚没有寄存器对其进行控制,在WinCE驱动程序中,请问这样的管脚应该如何操作呢?如对扩展总线进行读写控制的nROE、nRWE,还有扩展的地址线RADDR(GPA有些管脚是RADDR,可以操作,但其它的应如何赋值并操作呢?)等。 …

查看全部问答>

弱问,关于网络驱动程序

首先,我是新手,没有接触过网卡驱动程序开发,仅看过windows上一个中间层的驱动代码。 我有些问题:    ndis仅仅是windows上的东西吗?    windows上开发一个驱动程序必须按照ndis吗?    网卡制造商如果仅有wi ...…

查看全部问答>

大批量产品须添加短信功能,征求解决方案

    我们的ODM产品需要增加一个短信提示功能。客户的需求是,采取C/S架构的通信。Client端是若干个GPRS终端,Server端是一台拥有公网IP的PC。要求c、s能够双向通信。     在和客户的构图中,目前提出有3种方案:   &n ...…

查看全部问答>

请问怎么把开关量的信号读进电脑?

请问怎么把开关量的信号读进电脑?…

查看全部问答>