FPGA实现OFDM通信—C语言实现N点FFT

时间:2025-11-02  作者:Diven  阅读:0

OFDM中调制使用IFFT,解调使用IFFT,在OFDM实现系统中,FFT和IFFT时必备的关键模块。在使用Xilinx的7系列FPGA(KC705)实现OFDM系统时,有以下几种选择:

FPGA实现OFDM通信—C语言实现N点FFT

(1)在Vivado中调用官方的FFT的IP核(AXI-Stream总线);

(2)在Vivado HLS中调用官方的FFT的IP核(内部FFT通信AXI-Stream总线),可以自己增加外部封装接口类型;

(3)Verilog编写FFT,很复杂,找到了一个1024点的并行流水线的,但是资源耗费太大,8192点时很难满足,不采用;

(4)使用HLS用C语言自己编写FFT,程序比较简单,开发快,但是我需要100M时钟下跑8192点FFT的时钟时序约束不够,跑不到100M;

最后还是选择使用HLS里面调用FFT的库,并且根据我们的项目需要,对其外部输入输出封装成一个AXI-Master接口,并且在Devcpp里面使用C语言实现(不考虑延时和资源消耗等)对比结果,发现基本一致。

本节主要讲Devcpp里的实现结果。

1.定义计算点数和复数类型

2.计算

(1)初始化蝶形因子;

(2)比特反转,变址运算;

(3)FFT蝶形循环计算;

(4)计算功率,输出结果;

3.结果验证

以100Hz的sin函数作为输入信号,幅值-1~1,输出功率最大值在p[100],趋近于1。

4.计算IFFT

(1)将输入的复数取共轭;

(2)调用FFT;

(3)对输出的数据取共轭;

完成。

最初始的sin信号如下:

经过FFT之后,对结果取共轭,并且缩小N点(8192)倍,再次调用FFT,对输出取共轭,得到IFFT结果如下:

​​

 


审核编辑:刘清

猜您喜欢

排阻作为重要的元器件,是限流、分压和信号匹配等关键配件。奥斯特(OST)作为业内知名的排阻品牌,优良的品质和稳定的性能,受到众多工程师和厂商的青睐。面对市场上众...
2014-12-28 18:13:30

贴片电阻,因其体积小巧、组装方便,已成为电子电路中不可或缺的元件。快速准确地识别其阻值和型号,对于电路设计和维修至关重要。本文将简要介绍贴片电阻的识别方法,并着...
2024-11-26 11:29:28

发光二极管(LED)是应用于各种照明和显示设备的半导体元件。正确地连接LED的正负极是确保其正常工作的关键。许多初学者在使用LED时常常会遇到如何区分正负极的问...
2025-04-04 05:31:39

你是否好奇过,手机充电器是如何将插座里的高电压电流变成适合手机电池的低电压电流的?答案就在小小的 DC-DC转换器 中。DC-DC转换器,顾名思义,是一种将直流...
2024-03-21 00:00:00

排母是电路设计中不可少的元件,了解其参数对于电路性能非常重要。排母的电流额定值是一个关键参数,决定了排母能够承载的最大电流,通常以安培(A)为单位。电压额定值同...
2018-03-21 00:00:00

隔热布主要有几种不同类型,每种类型在材料、性能和使用场景上各有差异。硅酸铝隔热布优良的耐高温性能而闻名,能够承受高达1000℃的温度,适合用于炉窑、锅炉等高温环...
2017-07-08 00:00:00

TERMINAL_30.48X12.1MM_TM是一种广泛应用于电子设备连接的终端元件,因其独特的规格和优越的性能,受到许多行业的青睐。本文将深入探讨该终端的特...
2025-03-07 08:13:03

当今电子设备日益普及的时代,稳定可靠的电源供应很重要。而DC-DC转换器和控制器作为电子系统中重要的一部分,正发挥着越来越重要的作用,为各种设备提供高效、稳定的...
2024-02-19 00:00:00

对于FPGA调试,主要以Intel FPGA为例,在win10 Quartus ii 17.0环境下进行仿真和调试,开发板类型EP4CE15F17。主要包括一下...
2020-03-29 11:37:00

还在为复杂的贴片电阻阻值计算而烦恼吗?这款在线贴片电阻阻值计算器将成为你的得力助手!无需繁琐的公式和计算,只需简单几步,即可快速精准地得到所需阻值。这款计算器操...
2025-04-14 15:02:08