ICIS 학부 연구생/통신시스템 설계

[ 통신시스템설계 ] 04 16QAM 송수신기

hanol02 2023. 7. 31. 16:46

 

my_function.zip
0.00MB
04 16QAM 송수신기.zip
0.00MB

 

 

 

==   Review    ==

 

01.  AWGN    vs    Multipath fading 

1. AWGN

  • 위성 채널, 유선 채널 모델에 사용
  • y(n) = x(n) + z(n)

2.  Fading

  • 송수신기 사이에 LOS가 확보되지 않은 무선 채널 모델
  • y(n) = h(n)x(n) + z(n)
  • 채널에 의해 constellation의 크기와 위상이 모두 왜곡된다.
  • 왜곡을 보상하기 위한 equalizer(등화기) 필요하다.
  • y(n)/h(n) = x(n)+z(n)/h(n)

3. AWGN보다 Fading이 더 성능이 나쁜 이유?

  • 곱해지는 fading 채널 계수 h(n)은 전체적인 신호를 심하게 왜곡시킨다.

  • h(n) < 1 이면 equalizer 출력 과정에서 잡음이 증폭된다.   →    성능이 아주 나빠짐
  • 이렇게 잡음이 증폭되는 현상이 자주 발생하므로 AWGN보다 fading 채널에서 성능이 더 나쁘다.

 

 

 

 

02. BER 그래프 읽기

  • BER 10^(-2)를 기준으로 FEC를 사용했을 때 약 8.5dB가 개선되었다.
  • 즉, FEC를 추가하면 같은 BER 성능에 도달하기 위해 더 낮은 SNR을 필요로한다.
  • ('같은 SNR로 더 낮은 BER을 얻을 수 있다' 와 같은 말)
  • 예를 들자면, FEC를 사용할 땐 SNR 5.5dB 정도면 음성통화가 가능하고, FEC를 사용하지 않을 땐 SNR 14dB이어야 음성통화가 가능하게 된다.

 

 

 

03. Gray Encoding

  • ①  =  1사분면 신호가 잡음(에러)에 의해 2사분면/4사분면 으로 퍼질 확률
  • ②  =  1사분면 신호가 잡음(에러)에 의해 3사분면 으로 퍼질 확률

∴ ①   >   ②

 

즉, 옆 사분면으로 넘어갈 확률이 더 크기 때문에
옆 사분면과 1bit씩 차이가 나도록,     ⒝ 대각선으로 넘어가면 2bit씩 차이가 나도록 설계  →  Gray Encoding

 

 

 

 

 

 

 

 

 

 

 

 


01. 16QAM 송수신기

 

1. 16 QAM 변조

: 1개의 복소수 심볼이 4bit를 가진다.

( BPSK: 1bit = 1 symbol    /    QPSK: 2bit = 1 symbol    /   16QAM: 4bit = 1 symbol )

 

 

 

 

 

2. 대역폭과 전송 속도

Q. 반송파 주파수가 1G일 때보다 10G일 때 전송 속도가 더 빠를까?
A. NO! 반송파 주파수는 그냥 주파수 자리(위치)를 나타내는 수일 뿐.

 

'전송 속도를 높이기 위해 반송파 주파수를 높인다' 라는 말은 틀린 말이다.

정확히 말하자면 높은 주파수로 갈수록 대역폭을 넓게 쓸 수 있는 주파수가 많아서 그래 보이는 것 뿐이다.

  • 대역폭 ∝ 초당 몇 개의 복소수를 보내는가
  • 전송속도를 높이려면 '중심주파수'가 아니라 '중심주파수로부터 얼마나 넓게 퍼져있는지'가 중요함

 

 

 

 

 

 

 

3. 16QAM 송신기

: 평균 신호전력을 1로 정규화(Nomarlizing)

정규화할 때 sqrt(10)을 해주는 이유

 

 

 

 

 

 

 

4. 16QAM 수신기

(1단계)   constellation 확장(정규화 풀어주기) - sqrt(10) 곱하는 과정

(2단계)   Symbol에 대한 Detection 수행

                수신신호 ↔ 성상도 사이 거리의 최솟값을 찾아 decision 내리기 (최솟값 = 제일 가깝다)

최솟값으로 decision

 

 

 


16QAM 송수신기 과정 정리

송신기 수신기
  1. binary data 생성
  2. FEC Encoding
  3. 16QAM 심볼 mapping  (Gray)
  4. Channel  (AWGN/Fading ..)
  1. Equalizer
  2. QAM16_demapper
    복조 circuit (최솟값 찾아 decision)
  3. FEC Decoding

 

 

 


 

 

 

02. MATLAB으로 16QAM 송수신기 구현하기

# functions

1. QAM16_mapper

: 16QAM 송신기

function y = QAM16_mapper(x)
% L = data bit x의 길이
L=length(x);

% 4 bit = 1 symbol이므로 symbol 담을 y의 크기 = 1/4
y=zeros(1,L/4);

for n=1:1:L/4
    four_bit=x(4*n-3:4*n);      % 네 비트씩 자르기
    if four_bit == [ 0 0 0 0 ]           % x에서 읽어들인 data가 0000 이면
        y(n)=-3-3j;                      % 복소수 심볼 y(n) 지정
    elseif four_bit == [ 0 0 0 1 ]
        y(n)=-3-1j;
    elseif four_bit == [ 0 0 1 0 ]
        y(n)=-3+3j;
    elseif four_bit == [ 0 0 1 1 ]
        y(n)=-3+1j;
    elseif four_bit == [ 0 1 0 0 ]
        y(n)=-1-3j;
    elseif four_bit == [ 0 1 0 1 ]
        y(n)=-1-1j;
    elseif four_bit == [ 0 1 1 0 ]
        y(n)=-1+3j;
    elseif four_bit == [ 0 1 1 1 ]
        y(n)=-1+1j;
    elseif four_bit == [ 1 0 0 0 ]
        y(n)=3-3j;
    elseif four_bit == [ 1 0 0 1 ]
        y(n)=3-1j;
    elseif four_bit == [ 1 0 1 0 ]
        y(n)=3+3j;
    elseif four_bit == [ 1 0 1 1 ]
        y(n)=3+1j;
    elseif four_bit == [ 1 1 0 0 ]
        y(n)=1-3j;
    elseif four_bit == [ 1 1 0 1 ]
        y(n)=1-1j;
    elseif four_bit == [ 1 1 1 0 ]
        y(n)=1+3j;
    elseif four_bit == [ 1 1 1 1 ]
        y(n)=1+1j;
    end
end
y=y/sqrt(10);       % 정규화

end

 

 

2. QAM16_demapper

: 16QAM 수신기

function x_hat = QAM16_demapper(r)
L=length(r);
x_hat=zeros(1,4*L);

% 1. constellation 확장
% 경계를 명확하게 만들기 위해 정규화 다시 풀어주기 (생략 가능)
r=r*sqrt(10);

% 2. 수신된 복소수에 대해 성상도와의 거리를 구한 뒤 가장 가까운 성상도로 decision
bits=[0 0 0 0;
    0 0 0 1; 
    0 0 1 0; 
    0 0 1 1; 
    0 1 0 0; 
    0 1 0 1; 
    0 1 1 0; 
    0 1 1 1; 
    1 0 0 0; 
    1 0 0 1; 
    1 0 1 0; 
    1 0 1 1; 
    1 1 0 0; 
    1 1 0 1; 
    1 1 1 0; 
    1 1 1 1;];         % 신호
const=[-3-3j; -3-1j; -3+3j; -3+1j; -1-3j; -1-1j; -1+3j; -1+1j; 3-3j; 3-1j; 3+3j; 3+1j; 1-3j; 1-1j; 1+3j; 1+1j;]; % 성상도

for n=1:L
    d=abs(const-r(n));  % 수신신호 r과 성상도 const와의 거리
    [Y,I]=min(d);    % Y에는 거리 최솟값이, I에는 최솟값 거리의 배열 위치가 저장됨
    x_hat(4*n-3:4*n)=bits(I,1:end); % decision한 위치 I에서의 신호 반환
end
end

 

 

16QAM 변조된 신호 16 QAM 변조 신호에 AWGN 잡음 삽입
왼쪽: 16QAM 변조한 신호 / 오른쪽: 16QAM 변조된 신호에 AWGN 잡음 삽입

 

 

# 실습3    16QAM 사용했을 때 AWGN/fading 채널 비교

  • AWGN(SNR 0:2:20)  /  fading(0:3:30)
  • without FEC / FEC R=3
AWGN fading

 

 

 

 

# 추가 실습    QPSK  vs  16QAM

  • AWGN 잡음 삽입
  • SNR = 0:2:20
  • Repetition 3의 FEC를 추가하여 AWGN BER 그리기
QPSK 16QAM

 

Q. QPSK가 16QAM보다 BER 성능이 더 좋은 이유?

 

대역폭 ∝ 초당 몇 개의 복소수를 보내는가

QPSK 16QAM
if 대역폭이 20M
=  초당 20M symbol을 보낼 수 있음
=  초당 20M*2(bit)=40M bit를 보낼 수 있음
즉, QPSK의 전송속도: 40M bit/s
if 대역폭이 20M
-  초당 20M symbol을 보낼 수 있음
-  초당 20M*4(bit)=80M bit를 보낼 수 있음
즉, 16QAM의 전송속도: 80M bit/s
같은 대역폭을 쓸 때 QPSK보다 16QAM이 전송속도는 더 빠르다.
하지만 그만큼 한 심볼에 더 많은 양의 data bit를 실어 보내기 때문에 오류가 발생할 확률은 16QAM이 더 높다.
(BER 성능은 QPSK가 더 좋은 이유)

따라서,      전송속도    QPSK < 16QAM
                    오류성능    QPSK > 16QAM 

통신시스템설계 개념정리.pdf
2.31MB