test_cdma_rx

「test_cdma_rx」の編集履歴(バックアップ)一覧に戻る

test_cdma_rx - (2011/07/11 (月) 09:55:30) のソース

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)

*ソースコード
-[[test_cdma_rx.py>http://www35.atwiki.jp/space_escalator/pages/68.html]]
----