test_cdma_rx


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

CDMAの受信機を構築する。
print機能を標準出力させると負荷が重くうまく復号できないので、
リダイレクトでファイルに出力させてやる。
送受1対1の受信結果
M系列 by glfsr (系列長15)
in[22]=0.000000, out[22]=0.000000
in[23]=0.000000, out[23]=0.000000
in[24]=0.000000, out[24]=0.000000
in[25]=1.000000, out[25]=1.000000
in[26]=1.000000, out[26]=1.000000
//↑ここまでは誤り
//ここからはちゃんと復号できている!
in[27]=0.000000, out[27]=0.000000
in[28]=0.000000, out[28]=0.000000
in[29]=0.000000, out[29]=0.000000
in[30]=1.000000, out[30]=1.000000
in[31]=1.000000, out[31]=1.000000
in[32]=1.000000, out[32]=1.000000
in[33]=1.000000, out[33]=1.000000
in[34]=0.000000, out[34]=0.000000
in[35]=1.000000, out[35]=1.000000
in[36]=0.000000, out[36]=0.000000
in[37]=1.000000, out[37]=1.000000
in[38]=1.000000, out[38]=1.000000
in[39]=0.000000, out[39]=0.000000
in[40]=0.000000, out[40]=0.000000
in[41]=1.000000, out[41]=1.000000
-----------1周期----------
in[42]=0.000000, out[42]=0.000000
in[43]=0.000000, out[43]=0.000000
in[44]=0.000000, out[44]=0.000000
in[45]=1.000000, out[45]=1.000000
in[46]=1.000000, out[46]=1.000000
in[47]=1.000000, out[47]=1.000000
in[48]=1.000000, out[48]=1.000000
in[49]=0.000000, out[49]=0.000000
in[50]=1.000000, out[50]=1.000000
in[51]=0.000000, out[51]=0.000000
in[52]=1.000000, out[52]=1.000000
in[53]=1.000000, out[53]=1.000000
in[54]=0.000000, out[54]=0.000000
in[55]=0.000000, out[55]=0.000000
in[56]=1.000000, out[56]=1.000000
-----------2周期----------
in[57]=0.000000, out[57]=0.000000
in[58]=0.000000, out[58]=0.000000
in[59]=0.000000, out[59]=0.000000
in[60]=1.000000, out[60]=1.000000
in[61]=1.000000, out[61]=1.000000
in[62]=1.000000, out[62]=1.000000
in[63]=1.000000, out[63]=1.000000
 
M系列 by lfsr (系列長15:x^4 + x^3 + 1)
in[19]=1.000000, out[19]=1.000000←誤り(本当は0)
in[20]=1.000000, out[20]=1.000000←誤り(本当は0)
in[21]=1.000000, out[21]=1.000000←誤り(本当は0)
------------スタート----------------
in[22]=0.000000, out[22]=0.000000←誤り(本当は1)
in[23]=1.000000, out[23]=1.000000
in[24]=0.000000, out[24]=0.000000←誤り(本当は1)
in[25]=1.000000, out[25]=1.000000
in[26]=0.000000, out[26]=0.000000
in[27]=1.000000, out[27]=1.000000
in[28]=0.000000, out[28]=0.000000
in[29]=0.000000, out[29]=0.000000←誤り(本当は1)
in[30]=1.000000, out[30]=1.000000
in[31]=0.000000, out[31]=0.000000
in[32]=0.000000, out[32]=0.000000
in[33]=1.000000, out[33]=1.000000
in[34]=0.000000, out[34]=0.000000
in[35]=0.000000, out[35]=0.000000 
in[36]=0.000000, out[36]=0.000000
 -----------1周期----------
in[37]=1.000000, out[37]=1.000000
in[38]=1.000000, out[38]=1.000000
in[39]=1.000000, out[39]=1.000000
in[40]=1.000000, out[40]=1.000000
in[41]=0.000000, out[41]=0.000000
in[42]=1.000000, out[42]=1.000000
in[43]=0.000000, out[43]=0.000000
in[44]=0.000000, out[44]=0.000000←誤り(本当は1)
in[45]=1.000000, out[45]=1.000000
in[46]=0.000000, out[46]=0.000000
in[47]=0.000000, out[47]=0.000000
in[48]=1.000000, out[48]=1.000000
in[49]=0.000000, out[49]=0.000000
in[50]=0.000000, out[50]=0.000000
in[51]=0.000000, out[51]=0.000000
 -----------2周期----------
in[52]=1.000000, out[52]=1.000000
in[53]=1.000000, out[53]=1.000000
in[54]=1.000000, out[54]=1.000000
in[55]=1.000000, out[55]=1.000000
in[56]=0.000000, out[56]=0.000000
in[57]=1.000000, out[57]=1.000000
in[58]=0.000000, out[58]=0.000000
in[59]=1.000000, out[59]=1.000000
in[60]=1.000000, out[60]=1.000000
in[61]=0.000000, out[61]=0.000000
in[62]=0.000000, out[62]=0.000000
in[63]=1.000000, out[63]=1.000000
in[64]=0.000000, out[64]=0.000000
in[65]=0.000000, out[65]=0.000000
in[66]=0.000000, out[66]=0.000000
 -----------3周期----------
in[67]=1.000000, out[67]=1.000000
in[68]=1.000000, out[68]=1.000000
in[69]=1.000000, out[69]=1.000000
in[70]=1.000000, out[70]=1.000000
in[71]=0.000000, out[71]=0.000000
in[72]=1.000000, out[72]=1.000000
in[73]=0.000000, out[73]=0.000000
in[74]=1.000000, out[74]=1.000000
in[75]=1.000000, out[75]=1.000000
in[76]=0.000000, out[76]=0.000000
in[77]=0.000000, out[77]=0.000000
in[78]=1.000000, out[78]=1.000000
in[79]=0.000000, out[79]=0.000000
in[80]=0.000000, out[80]=0.000000
in[81]=0.000000, out[81]=0.000000
 -----------4周期----------
in[82]=1.000000, out[82]=1.000000 
in[83]=1.000000, out[83]=1.000000
in[84]=1.000000, out[84]=1.000000
in[85]=1.000000, out[85]=1.000000
in[86]=0.000000, out[86]=0.000000
in[87]=1.000000, out[87]=1.000000
in[88]=0.000000, out[88]=0.000000
in[89]=1.000000, out[89]=1.000000
in[90]=1.000000, out[90]=1.000000 
in[91]=0.000000, out[91]=0.000000
in[92]=0.000000, out[92]=0.000000
in[93]=1.000000, out[93]=1.000000
in[94]=0.000000, out[94]=0.000000
in[95]=0.000000, out[95]=0.000000
in[96]=0.000000, out[96]=0.000000 
 -----------同軸ケーブルを2個にしても同じ感じ----------
in[29]=0.000000, out[29]=0.000000←誤り(本当は1)
in[30]=1.000000, out[30]=1.000000
in[31]=1.000000, out[31]=1.000000
noutput_items = 16
in[0]=1.000000, out[0]=1.000000
in[1]=0.000000, out[1]=0.000000
in[2]=1.000000, out[2]=1.000000
in[3]=0.000000, out[3]=0.000000
in[4]=1.000000, out[4]=1.000000
in[5]=1.000000, out[5]=1.000000
in[6]=0.000000, out[6]=0.000000
in[7]=0.000000, out[7]=0.000000
in[8]=1.000000, out[8]=1.000000
in[9]=0.000000, out[9]=0.000000
in[10]=0.000000, out[10]=0.000000
in[11]=0.000000, out[11]=0.000000
1なのに0になって誤っているのが多い。lfsrの方が誤りが多い。計算量が多いせいか?

M系列 by lfsr(系列長31:x^5 + x^3 + x^2 + x^1 + 1)
in[100]=0.000000, out[100]=0.000000
in[101]=1.000000, out[101]=1.000000
in[102]=0.000000, out[102]=0.000000
in[103]=0.000000, out[103]=0.000000
in[104]=1.000000, out[104]=1.000000
in[105]=1.000000, out[105]=1.000000
in[106]=1.000000, out[106]=1.000000
in[107]=1.000000, out[107]=1.000000
in[108]=1.000000, out[108]=1.000000
in[109]=0.000000, out[109]=0.000000
in[110]=1.000000, out[110]=1.000000
in[111]=1.000000, out[111]=1.000000
in[112]=1.000000, out[112]=1.000000
in[113]=0.000000, out[113]=0.000000
in[114]=0.000000, out[114]=0.000000
in[115]=0.000000, out[115]=0.000000
in[116]=1.000000, out[116]=1.000000
in[117]=0.000000, out[117]=0.000000
in[118]=1.000000, out[118]=1.000000
in[119]=0.000000, out[119]=0.000000
in[120]=1.000000, out[120]=1.000000
in[121]=1.000000, out[121]=1.000000
in[122]=0.000000, out[122]=0.000000
in[123]=1.000000, out[123]=1.000000
in[124]=0.000000, out[124]=0.000000
in[125]=0.000000, out[125]=0.000000
in[126]=0.000000, out[126]=0.000000
in[127]=0.000000, out[127]=0.000000 
系列長を大きくすると復元できない!

  • Gold系列 by lfsr
mask1 = 61 #x^5 + x^3 + x^2 + x^1 + 1
seed1 = 1
mask2 = 37 #x^5 + x^2 + 1
seed2 = 1
mask3 = 61 #x^5 + x^3 + x^2 + x^1 + 1
seed3 = 32
mask4 = 37 #x^5 + x^2 + 1
seed4 = 32
自己相関(上からseedを1ずつずらした値)
1
0.225
-0.025649
-0.025649
0.225
0.239395
0.239395
0.225
-0.025649
0.239395
0.239395
0.239395
0.239395
0.225
-0.025649
0.225
-0.025649
0.239395
0.239395
0.226301
-0.290694
0.225
-0.025649
0.239395
0.239395
-0.025649
0.225
-0.025649
 0.225
0.239395
0.239395

符号長15のM系列じゃないと遅れない!?

符号長15の系列じゃないと今んとこ成功していない。
これだと1個しかないからマルチユーザで検証できない。。→とりあえず一方だけ長い系列にして干渉用にしてしまえばよい。
↓同じ符号でマルチユーザするとぐちゃぐちゃになる。
in[17]=0.000000, out[17]=0.000000
in[18]=1.000000, out[18]=1.000000
in[19]=1.000000, out[19]=1.000000
in[20]=0.000000, out[20]=0.000000
in[21]=0.000000, out[21]=0.000000
in[22]=0.000000, out[22]=0.000000
in[23]=0.000000, out[23]=0.000000
in[24]=0.000000, out[24]=0.000000
in[25]=0.000000, out[25]=0.000000
in[26]=0.000000, out[26]=0.000000
in[27]=1.000000, out[27]=1.000000
in[28]=1.000000, out[28]=1.000000
in[29]=0.000000, out[29]=0.000000
in[30]=1.000000, out[30]=1.000000
in[31]=0.000000, out[31]=0.000000
in[32]=1.000000, out[32]=1.000000
in[33]=1.000000, out[33]=1.000000
in[34]=0.000000, out[34]=0.000000
in[35]=0.000000, out[35]=0.000000
in[36]=1.000000, out[36]=1.000000
in[37]=0.000000, out[37]=0.000000
M=15とM=31を混ぜたけどかなりきつい
in[2]=0.000000, out[2]=0.000000
in[3]=0.000000, out[3]=0.000000
in[4]=0.000000, out[4]=0.000000
in[5]=1.000000, out[5]=1.000000
in[6]=1.000000, out[6]=1.000000
in[7]=1.000000, out[7]=1.000000
in[8]=1.000000, out[8]=1.000000
in[9]=0.000000, out[9]=0.000000
in[10]=1.000000, out[10]=1.000000
in[11]=0.000000, out[11]=0.000000
in[12]=0.000000, out[12]=0.000000←誤り(本当は1)
in[13]=1.000000, out[13]=1.000000
in[14]=0.000000, out[14]=0.000000
in[15]=0.000000, out[15]=0.000000
in[16]=0.000000, out[16]=0.000000←誤り(本当は1)
in[17]=1.000000, out[17]=1.000000←誤り(本当は0)
in[18]=1.000000, out[18]=1.000000←誤り(本当は0)
in[19]=1.000000, out[19]=1.000000←誤り(本当は0)

ソースコード