본문 바로가기

이직로그/DSP

빔포밍 시뮬레이션 8 - padding 위치 tuning

 

with open("paddinglist.txt",'r') as f:
    lines = f.readlines()

paddinglist = [int(line.strip()) for line in lines]
paddinglist.insert(0,0)

텍스트 파일로 뽑아온 뒤에 뭔가 이상해서 아래와 같은 코드를 짜봤다.

paddingNum = len(paddinglist)

print(paddingNum)

for i in range(paddingNum-1):
    dp = paddinglist[i+1] - paddinglist[i]
    if dp< 1000:
        print(i,paddinglist[i],dp)

1. paddinglist의 길이가 너무 김(343 이어야할거같은데)

2. 패딩이 아직도 중복으로 나옴

 

for i in range(paddingNum-1):
    dp = paddinglist[i+1] - paddinglist[i]
    if dp< 1000:
        print(i,paddinglist[i]/1556,dp)
        
        '''
103 103.97300771208226 42
104 104.0 2
105 104.0012853470437 2
107 104.98264781491002 8
108 104.98778920308483 1
109 104.98843187660668 1
110 104.98907455012854 1
111 104.98971722365039 2
112 104.99100257069409 2
113 104.99228791773778 2
114 104.99357326478149 2
115 104.9948586118252 2
116 104.9961439588689 2
117 104.99742930591259 1
118 104.99807197943444 1
119 104.9987146529563 1
226 211.9935732647815 10
332 317.9948586118252 8
        
        '''

1556으로 나눠보니 거의 105프레임에 가까운 값 105 프레임은 왜 문제가 많을까...

count = 0
print('delete wrong panel')
while True:
    if count < paddingNum: break
    if paddinglist[count+1] - paddinglist[count] <= 100:
        del paddinglist[count+1]
    else: count+=1
print('result:')
for i in range(paddingNum-1):
    if paddinglist[i+1] - paddinglist[i]<100:
        print(i)

잘못된 구간을 삭제함으로서 이제 제대로 된 padding만 남았다.