实时光OFDM发射机verilog设计

来源:互联网 发布:python中的caffe包 编辑:程序博客网 时间:2024/06/06 17:42


发射机全部采用定点数,14位,16路并行

首先在做星座图映射时,要把映射的点做功率归一化,将它们转化成定点二进制数。

matlab 提供了很方便的函数供我们使用,下面是一个小例子

head=quantizer([14,12]);  

num2bin(head,0.5) ;

ans =
00100000000000


映射完后,就要在对应的子载波上插0或者导频。所有的设计为了保持时序的一致性,采用的是流水线设计。

所有子载波都加了对应数据后,接下来做埃尔米特对称,最后将它们送入ifft核,输出的数据如下面仿真图所示,虚部都接近0,说明仿真正确。


为了更进一步验证数据是否正确,我们将IFFT后的数据保存到一个文本文件,代码如下

handle = $fopen("data_ifft.txt","w");//打开文件

$fdisplay(handle,"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",
data3outre1,data3outim1,
 data3outre2,data3outim2,
 data3outre3,data3outim3,
 data3outre4,data3outim4,
 data3outre5,data3outim5,
 data3outre6,data3outim6,
 data3outre7,data3outim7,
 data3outre8,data3outim8,
 data3outre9,data3outim9,
 data3outre10,data3outim10,
 data3outre11,data3outim11,
 data3outre12,data3outim12,
 data3outre13,data3outim13,
 data3outre14,data3outim14,
 data3outre15,data3outim15,
 data3outre16,data3outim16);//写数据

之后用matlab将这些数据做FFT,看是否和IFFT之前的数据是否一致,也可以归一化后,看星座图是否一致。

matlab处理后数据如下



前面两个子载波是0,后面是对应的星座点,从而验证结果正确

0 0