본문 바로가기
programming language/MATLAB

MATLAB [디지털 통신] EYE PATTERN

by __observer__ 2011. 3. 9.
반응형

오늘은 EYE PATTERN 에 대해 알아 보려 합니다. 


학부 때 EYE PATTERN 이란 걸 보고 이게 뭘까 ~ 정말 도무지 감이 안 왔던 기억이 있습니다.


EYE PATTERN 이란 특정 시간 구간 동안 들어오는 신호의 파형을 계속 겹쳐서 나타낸 것뿐입니다.


보통 EYE PATTERN을 그릴 때는 2 심볼 구간 동안 표시를 하곤 하죠.


오늘 EYE PATTERN을 하기 전에 BPSK 에 모르시는 분들은 아래 글을 읽고 오시기 바랍니다.

2011/03/08 - [잡담,잡다] - [디지털 통신] BPSK, QPSK

 

그리고 Raised cosine filter 에 대해서는 아래 글을 참조해 주세요.

2011/03/02 - [MATLAB] - [디지털 통신] Raised Cosine Filter

 


그럼 이제 matlab 코딩을 시작 해 보죠. BPSK 신호의 송수신을 예로 들어서 설명해 보겠습니다. 잡음은 고려하지 않겠습니다.


  • 먼저 Square root raised filter 를 만듭니다. 8 oversamplegroup delay 3심볼, roll off 0.2 인 필터를 만들겠습니다.

Sqrt_r_filter= rcosine(1e6, 8e6, 'sqrt', 0.2, 3);



  • 비트를 만듭니다. 여기선 5000 비트를 만들겠습니다.


bits=randi([0 1], 5000, 1);



  • 비트 0은 -1로 비트 1은 1로 Mapping 해줍니다.


Mapped_signal=bits*2-1;



  • 8 oversample 이므로 8배upsample 을 합니다. upsample 이란 중간에 0을 채워 넣는 겁니다.

Upsampled_signal=upsample(Mapped_signal, 8);


  • Tx filtering 을 수행합니다.

Tx_signal=filter(Sqrt_r_filter,1, Upsampled_signal);



  • 수신 단에서는 Rx filtering 을 수행합니다.


Rx_signal=filter(Sqrt_r_filter,1, Tx_signal);

  

이제 신호의 송수신은 다 됐습니다.

근데 위에서도 말했듯이 EYE PATTERN 을 보기 위해서는 특정 구간으로 겹쳐서 그려야 합니다.

따라서 위의 수신 신호 Rx_signal 을 적절히 구성만 해주면 됩니다.


2 심볼 구간 동안의 EYE PATTERN을 보기 위한 2 심볼은 8*2 = 16 샘플 입니다.

그리고 Rx_signal 의 1부터 48번째까지의 값은 delay 값 일명 쓰레기 값입니다. 이는 필터의 delay 가 3 심볼이니깐 8*3에다 Tx , Rx 필터 통과니깐 또 *2 를 해서 48 이라는 숫자가 나오는 겁니다.


이제 다음과 같이 매트릭스를 구성합니다.

 

Rx_signal1=Rx_signal(49);

Rx_signal_cutted=Rx_signal(50:end);

N_column=floor(length(Rx_signal_cutted)/16);

Rx_signalmatrix=reshape(Rx_signal_cutted(1:16*N_column),16,N_column);

 


아래 코드의 빨간색 부분은 이전 신호의 온 타임 지점을 반복시켜 주기 위한 것입니다.


Rx_signalmatrix_all=[[Rx_signal1 Rx_signalmatrix(end,1:end-1)] ;Rx_signalmatrix];

 

이제 그림을 그려줍니다.


figure, plot(Rx_signalmatrix_all,'b'), grid on

 

결과는 다음과 같습니다.

 

그럼 ~ 맨~ 처음 만들었던 필터에서 roll off 를 바꿔가며 위에서 진행한 실험을 똑같이 해 봅니다.


roll off 가 0.5 일 때

 

roll off 가 0.7 일 때

 

roll off 가 1 일 때

 

쭉~ 보니깐 roll off 가 올라갈수록 그림이 깔끔해 지죠? roll off 가 올라갈수록 EYE 는 점점 더 열리게 되 므로 신호 품질은 더 좋아지는 겁니다.


하지만 공학이란 게 어디까지나 트레이드 오프가 있는 거니깐~ roll off가 높아진다고 무조건 좋은 건 아닙니다. roll off 가 높아질수록 BW(대역폭) 을 더 이용하게 되는 겁니다.

   

EYE PATTERN 이란 게 직접 시뮬레이션 해 보면 별거 아닌데 처음에 보면 이해가 어렵습니다. 이 글을 보시는 분들도 위 코드대로 직접 시뮬레이션 한번 해 보시기 바랍니다.


반응형

댓글