发射机全部采用定点数,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,后面是对应的星座点,从而验证结果正确