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

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

​​

 


审核编辑:刘清

猜您喜欢

保险丝作为重要的安全保护元件,有着着不可替代的作用。CJH保险丝作为市场上较为知名的品牌,其产品线丰富,涵盖多种型号和规格,满足不同客户的需求。市面上也存在多种...
2022-09-02 16:56:30

蓝色贴片电阻的大小通常用四位数字表示,例如0603、0805、1206等。这四位数字并非直接代表毫米尺寸,而是指英寸尺寸的代码。 0603表示长0.06英寸,宽...
2024-11-29 10:26:05

0603贴片电阻是一种尺寸小巧(0.06英寸长,0.03英寸宽),应用广泛的电子元件。 它们用于控制电路中的电流,在各种电子设备中都能找到它们的身影。 快速了解...
2025-04-14 15:02:17

日常生活中,电池作为重要的电源设备,被应用于各种电子产品中。正确判断电池的正负极对于设备的正常运作非常重要。传统方法可能需要使用多用电表等工具,而使用发光二极管...
2025-04-09 16:30:06

1、引 言随着可编程逻辑器件的发展,FPGA的应用已经越来越广泛,且用可编程逻辑器件代替传统的普通集成电路已成为一种发展的趋势。可编程逻辑器件FPGA以其高集...
2021-01-04 10:36:00

贴片电阻上的「01x」标识并非直接表示阻值,而是代表阻值代码。其中「01」代表有效数字,而「x」代表乘数。要确定具体的阻值,需要查阅贴片电阻的阻值代码表。通常情...
2024-11-26 11:29:53


把被测位移变化转变为线圈自感系数变化的传感器称作自感式位移传感器。因为自感系数常称作电感系数,所以自感式位移传感器也常称作电感式位移传感器。具体来说,当线圈通...
2024-03-20 16:55:00

贴片电阻上的「01C」标记并非直接指示其尺寸大小,而是代表其阻值。要理解「01C」的含义,我们需要了解贴片电阻的阻值标识方法。「01C」采用的是三位数代码标注法...
2024-11-26 11:29:21

瓷片电容是常见的电容器。在电路中起着重要的作用。了解瓷片电容读数很重要。本文将详细介绍瓷片电容的读数方法。瓷片电容的基本概念瓷片电容是电容器的。由陶瓷材料制成。...
2025-04-13 02:30:36