やっとの事でWimaxのプリアンブルから相関させてプリアンブルの
インデックスやセルID、セグメントが出せました。以下の通り。
PreambleIndex=56
CellID=24
Segment=1
多分会ってるハズ。『GNU Octave』と『Python Numpy』の両方で
同じ計算結果なのでね。以下計算コードの一部
import numpy as np
def detect_preamble(sig_in, preamble_freq):
pr_corr = []
sig_in_freq = np.fft.fft(sig_in,1024)
#DC remove in freq
sig_in_freq = sig_in_freq - sig_in_freq.mean()
#相関行列計算
for preamble in preamble_freq:
#debug test code
#tmp = np.corrcoef(sig_in_freq ,preamble)[0,1]
#tmp = np.correlate(sig_in_freq, preamble,"full")
#tmp = sum(np.abs(np.real(tmp)) + np.abs(np.imag(tmp)))
tmp = np.sum(ut.hermitian(preamble) * sig_in_freq)
tmp = np.sum(np.abs(np.real(tmp)) + np.abs(np.imag(tmp)))
pr_corr.append(tmp)
#debug
#print(pr_corr)
max_val = max(pr_corr)
PN_index = pr_corr.index(max_val)
#debug
#print(max_val)
#preamble_idx = PN_index -1
preamble_idx = PN_index
# Find IDcell and segment
if preamble_idx < 96:
id_cell = np.mod(preamble_idx, 32)
segment = np.floor(preamble_idx/32)
else:
id_cell = preamble_idx-96
segment = np.mod(preamble_idx-96, 3)
#debug
print('preamble_idx:',preamble_idx)
print('id_cell:',id_cell)
print('segment:',segment)
return preamble_idx, id_cell, segment
0 件のコメント:
コメントを投稿