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

时间:2025-06-12  作者: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结果如下:

​​

 


审核编辑:刘清

猜您喜欢

电阻器作为基础且关键的元件,其性能直接影响着电子设备的稳定性和寿命。升功率电阻因其能够承受较大功率负载,应用于电源、电机控制、功率放大等领域。ROYALOHM(...
2020-03-10 01:50:30

绝缘胶带/胶布主要优势有哪些?绝缘胶带,作为常见的电工材料,应用于电气设备的绝缘保护和维修。其主要优势体现在以下几个方面:绝缘性能优越。绝缘胶带采用高质量的聚氯...
2018-06-15 00:00:00

在PCB焊接过程中,端子的参数对电路的性能和可靠性非常重要。端子的材质通常包括铜、镀锡或镀金,这直接影响到其导电性和抗氧化能力。端子的尺寸和形状也非常重要,常见...
2024-05-27 00:00:00

474贴片电阻,这个小小的元件在电子电路中是重要的配件。那么,474究竟代表多少欧姆的阻值呢?其实,474是一种简洁的编码方式,代表着47x10^4Ω,也就是4...
2024-11-29 10:25:55

电池管理系统 (BMS) 是电动汽车、储能系统等应用中重要的一部分,负责监控电池状态、保护电池安全并延长电池寿命。对于许多人来说,了解 BMS 的价格是决定是否...
2024-09-01 00:00:00

近年来,在数字通信、网络、视频和图像处理领域,FPGA已经成为高性能数字信号处理系统的关键元件.FPGA的逻辑结构不仅包括查找表、寄存器、多路复用器、存储器,而...
2020-09-24 20:11:00

SIP13(SessionInitiationProtocol13)是一个在现代通信中扮演重要角色的协议,它用于在网络中发起、维护和终止实时会话。随着互联网技术...
2025-02-24 15:24:35



发光二极管(LED,Light Emitting Diode)是能够将电能转化为光能的半导体器件,应用于照明、显示、指示等多个领域。随着科技的进步,LED因其高...
2025-04-06 22:30:03