itpp软解调

时间:2016-04-24 20:58:34

标签: c++

使用16-QAM和64-QAM调制时,我​​遇到了软解映射器功能(demodulate_soft_bits)的输出问题。 这是代码的一部分(64-QAM):

 cvec comple; 
Modulator_2D qam; 
ivec cont_d = "0:1:63";
vec qam_r = "-7 -7 -7 -7 -7 -7 -7 -7 -5 -5 -5 -5  -5 -5 -5 -5 -3 -3 -3 -3 -3 -3 -3 -3 -1 -1 -1 -1 -1 -1 -1 -1  1  1  1  1  1  1  1 1  3  3  3  3  3  3  3  3  5  5  5  5  5  5  5 5  7  7  7  7  7  7  7  7";
vec qam_i = "-7 -5 -3 -1  1  3  5  7 -7 -5 -3 -1   1  3  5  7 -7 -5 -3 -1  1  3  5  7 -7 -5 -3 -1  1  3  5  7 -7 -5 -3 -1  1  3  5 7 -7 -5 -3 -1  1  3  5  7 -7 -5 -3 -1  1  3  5 7 -7 -5 -3 -1  1  3  5  7";
comple.set_length(qam_i.length(),false); 
for(int i=0; i<qam_i.length(); i++)
comple(i) = std::complex<double>(qam_r(i)/sqrt((double)42),qam_i(i)/sqrt((double)42));
qam.set(comple, cont_d);  
temp = qam.demodulate_soft_bits( symb_recus,channel,1);

symb_recus是逼真的4x4 MIMO信道的输出

频道是频道增益

在输出端,我得到了一个与硬输出不对应的随机值,我也得到了一个0的连续值 exp:

temp :        [6.80 3.33 1.64 -14.27 -7.06 -3.51 0 0 0 0 0 0 -3.47 .....]
Hard output : [  0   1    0       1    1     1   1 1 0 0 1 1   0    ... ]
你可以帮我吗

0 个答案:

没有答案