uwb radar 신호 움직이는 물체 위치 측정 예제

 본 포스트는 uwb radar 신호에서 움직이는 물체의 위치를 측정하는 예제를 싣고 있다. csv파일로 저장된 radar 신호를 읽어, python으로 구현하였다.


움직이는 물체 측정 원리

저장된 uwb radar 신호와 uwb radar 송출 signature 신호와의 상관관계 분석을 위해 Cross Correlation을 사용한 후, Background Subtraction을 사용하여 배경 신호와 움직이는 물체의 신호를 분리해 낸다. 그 후 CA-CFAR를 사용하여 threshold를 생성해 움직이는 물체의 위치를 측정한다. 


def main():    
    csvfile = open('uwb_signal.csv')
    if csvfile is None:
        return
    
    bg = bgs(bg_stack_cnt=20,alpha=0.2)
    xcorrel = crosscorrelation(signature)
    cfar = cacfar(window_size=50,guard_size=50,pfa=1e-7,scale=20)
    
    painter = cdrawsignal((20,3))
    uwb_signal = csv.reader(csvfile)
    
    for line in uwb_signal:
        frame = [float(x) for x in line]
        frame = frame[100:950]
        # cross correlation
        xframe = xcorrel.do(frame)
        # background subtraction...
        moving = bg.update(xframe)
        # threshold
        threshold = cfar.get_thresholds(moving)
        
        painter.draw(frame=xframe[0:800], moving=moving[0:800],threshold=threshold[0:800])
        
    csvfile.close()


움직이는 물체 위치 측정

cross correlation을 거친 uwb radar 신호, 움직이는 물체의 신호, Threshold는 아래와 같다.  붉은색의 Threshold 보다 큰 파란색의 움직이는 신호 위치에 움직이는 물체가 있다고 볼 수 있다.


관련 글

UWB Radar 거리 측정 원리
cross-correlation을 사용한 신호 상관 관계 테스트 및 source code
신호에서 배경 제거(background subtraction)를 통한 움직이는 물체의 위치 검출
간단한 cfar 알고리즘에 대해

댓글

  1. 안녕하세요! uwb 관련해서 졸업논문을 작성하고 있는 학생입니다. 코드를 보다가 궁금한 점이 몇가지 있어 연락드리고 싶습니다. 혹시 가능할까요?

    답글삭제
    답글
    1. 안녕하세요. 궁금하신 점은 댓글로 부탁드립니다. 감사합니다.

      삭제

댓글 쓰기

이 블로그의 인기 게시물

windows에서 간단하게 크롬캐스트(Chromecast)를 통해 윈도우 화면 미러링 방법

간단한 cfar 알고리즘에 대해

바로 프로젝트 적용 가능한 FIR Filter (low/high/band pass filter )를 c나 python으로 만들기

간단한 칼만 필터(Kalman Filter) 소스 코드와 사용 예제

python winsound를 이용한 윈도우 환경에서 소리 재생 예제