首页 > 技术 > 内容

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

时间:2026-01-25  作者:Diven  阅读:0

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

(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结果如下:

​​

 


审核编辑:刘清

猜您喜欢


贴片电感是电子元器件中重要的组成部分,很多设备中都有应用。测量贴片电感的好坏,直接关系到设备的性能。本文将介绍如何测量贴片电感的好坏,帮助大家更好地使用。准备工...
2025-04-12 12:00:38
贴片电阻上的202并不是的阻值,而是表示的封装尺寸。202代表的是英制尺寸,即长宽分别为0.2英寸 x 0.02英寸,转换成公制大约是5.08mm x 1.27...
2024-11-29 10:26:03
NTC热敏电阻(Negative Temperature Coefficient Thermistor)是温度传感器,具有负温度系数特性,意味着其电阻值温度的升...
2025-04-14 10:01:45
现代制造和电子行业中,连接器的作用不可忽视。CONN_40X2MM_TM作为一种重要的连接器型号,因其优越的性能和广泛的应用而受到关注。本文将对CONN_40X...
2025-03-10 00:32:00
二极管是重要的半导体器件,应用于电子电路中。主要功能是允许电流在一个方向上流动,而阻止在相反方向的流动。二极管的应用非常,从简单的整流到复杂的信号处理,二极管在...
2025-03-31 04:31:07
电表笔是用于电气测试的便携式工具,主要用于测量电压、电流和电阻等电气参数。通常由一个带有测试探头的绝缘手柄和一个显示屏组成,方便用户实时读取测量结果。电表笔的工...
2025-07-04 00:00:00
肖特基二极管是特殊类型的二极管,其主要特点是具有较低的正向压降和快速的开关特性。近年来,随着电子设备对高效能和低功耗的需求不断增加,压降低的肖特基二极管逐渐成为...
2025-04-05 00:30:05
随着电子产品的不断发展,贴片电阻作为电子元件中的基础元件,被应用于各种电路设计中。准确测量贴片电阻的阻值,对于电路的调试和故障排查具有重要意义。万用表作为常用的...
2025-11-04 10:30:37