Matched Filter, 정합 필터

원본 신호를 알고 있을 때, 수신된 신호에서 어느 부분이 원본 신호 부분인지 찾아낼 때 사용


Matched Filter는 수신된 신호 중 원본 신호가 위치한 곳에서 최대가 된다.


목적은 두 신호의 유사도를 구하는 게 아니라 원본 신호 지점에서 SNR(Signal-to-Ratio)를 최대로 만드는 것임 (중요)

그래서 Cross-Correlation과 유사하지만 다르다고 하는 것임. Cross-Correlation은 두 신호 A와 B의 유사도를 구하는 것이다.


Matched Filter의 구현은 한 쪽 신호를 뒤집어서 두 개를 Convolution한다. 그러면 두 신호가 최대로 유사한 지점에서 최대값을 가지게 됨.

(링크에서 Matched Filter 파트의 그림을 참고할 것: http://blog.naver.com/PostView.nhn?blogId=moony6463&logNo=220072038153)

유사도랑은 조금 느낌이 다르다고 볼 수 있음.


원본 신호를 파괴한다고 보는 시각도 있음. 형태를 변형해서 분석하는 것이기 때문. 추가 설명하자면 위 링크에서도 나오지만

- 아날로그 시스템에서는 파형의 원래 모양을 복원하는 것이 목적인 반면에

- 디지털 시스템에서는 파형의 모양에는 관심없고, 걍 0과 1만 알면 된다.

디지털은 파형 모양과 상관 없이 그냥 0,1을 판별하기만 하면 된다. 따라서 Matched Filter는 디지털 시스템의 그런 목적에 부합한다고 할 수 있다.

라인 플러스 2차 시험에 응시한 후기를 남겨본다.

강남 멀티캠퍼스 건물에서 시험을 봤다. 삼성에서 운영하는 컴퓨터학원(?)이라는 듯 싶다.


1층의 안내 종이를 보아하니, 강의실이 한 30개 가까이 되었고 각 방마다 25명 정원인 것으로 보아

이번 2차 시험은 700명 정도로 추려낸 것 같다. 근데 서울권만 700명이고 지방은 별도로 시험봤을 수도 있다.




코딩시험 120분 + 필기 90분 시험을 보았다.


먼저 코딩은 4문제가 나왔다. 배점은 [20,25,25,30]. 난이도는 중상인 듯.

알고리즘 대회 수준까지는 아니고, 그렇다고 아무 연습 없이 가면 절대 못푸는 수준.


역시나 문제 저작권 때문에 대강만 말해보면...

- infix 수식 계산 문제 (stack을 이용한 문제. postfix로 변환해서 계산하면 쉽다)

- 주어진 문자열의 substring 중에서, 조건에 맞는 것 중 가장 긴 길이를 구하는 문제 (greedy 접근법을 써야 한다)

- 3번 개같은거 말로 설명안됨 -_-;; (컴퓨터그래픽스에서 배운 translation, rotation, scaling 느낌인데, 하여간 좀 다름)

- 최단 경로 찾는 문제인데, 조건이 살짝 성가심 (A*나 IDA*를 쓰면 될 것 같은데, 시간이 없어서 못풀었다)


하필 infix->postfix 방법이 가물가물해서 도출하느라 시간을 너무 많이 썼다.

결국 2문제밖에 못품ㅜㅜ 하나 거의 다 풀었는데...




필기는 서술형 5문제 + 빈칸 채우기 3문제였다.

서술형은 주어진 코드의 출력 쓰기 문제와 암호학, 컴네, GC, Thread&Mutex 관련으로 나왔다.


빈칸 채우기 유형은 이미 대부분의 코드가 주어진 상태에서 빈 칸이 뚫려있고 그 곳에 내용을 채우는 식이었다.

문제 주제로는 Max-Heap과 Tree Inorder, 그리고 Compare-and-Swap (CAS) 관련 문제가 나왔다.


정말 다행히도 셋 다 공부했던 내용이라 일단 채워넣긴 했는데, 코드가 일반적인 버전이 아니고 공부했던거랑 다르게 생겨서

코드의 구조와 원리를 이해하느라 좀 머리를 써야했다.




여튼 시험이 끝났으니 이제는 합격을 바라는수밖에ㅜㅜ

코딩 2문제밖에 못푼 건 너무 아쉽다. 3문제면 무난하게 합격할 것 같은데...

9.29(토)에 라인 1차 코딩테스트, 필기테스트(온라인)를 봤습니다.

시험 시간은 코딩 10:00~12:00(120분), 필기 12:10~13:10(60분).



이번 공채는 사람을 많이 뽑는다는 소문이 있던데, 그래서인지 2시간에 4문제가 주어졌습니다. (작년엔 5문제였던거로)

문제 배점은 [10,30,30,30] 이었고 아마 60점 넘으면 통과일 것 같습니다.


문제 난이도는 그다지 어렵지 않았습니다. 4문제 전부 Python 코드 30줄 이내로 풀 수 있는 문제였습니다.

상세 내용은 저작권이 있어서 대략 느낌만 보자면...

- Stack을 이용해 방문 노드를 기록하고, 노드 재방문 시 해당 지점 반환하기

- 주어진 쿼리 String을 파싱해서 그에 따른 적절한 동작 시행


(근데... 시험 도중에 테스트서버가 다운돼서 코딩테스트가 취소됐다는 것... 필기테스트로만 진행한다는...것...)



필기는 20문제가 주어졌는데, 1시간이 빠듯했습니다. 객관식, 단답형, O/X 세 유형으로 나왔습니다.

- 단답형: 주어진 코드의 결과가 무엇인가, 주어진 코드에서 특정 함수는 몇 번 실행되는가 등

- 객관식: 이 개념에 대해 맞는 설명을 모두 고르시오, 주어진 코드에 빵꾸 뚫어놓고 여기에 적합한 코드를 고르시오.

- O/X: 주어진 설명이 맞는지 틀린지 고르시오.


출제 범위가 데이터베이스부터 네트워크, 컴퓨터구조까지 엄청 넓은데, 그 마저도 살짝 Deep 한 개념들을 물어봅니다.

문제 하나하나가 수준이 꽤나 높습니다. 기본적인 내용은 안물어봅니다. (결국 누가누가 구글 빨리 찾나)


결국 20문제 중 17문제밖에 못풀었는데 (그것도 확신이 없음) 하필 코딩테스트가 취소돼서...

필기에서 걸러지지 않을까 매우 걱정이네요. 1차 발표는 3일 뒤에 납니다. 부디 합격하길ㅎㅎ;;




(2018.10.05 추가) 일단은 합격했네요. 이제 2차 시험을 준비...

+ Recent posts