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)
4. 16QAM 수신기
(1단계) constellation 확장(정규화 풀어주기) - sqrt(10) 곱하는 과정
(2단계) Symbol에 대한 Detection 수행
수신신호 ↔ 성상도 사이 거리의 최솟값을 찾아 decision 내리기 (최솟값 = 제일 가깝다)
16QAM 송수신기 과정 정리
송신기 | 수신기 |
|
|
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 잡음 삽입 |
![]() |
# 실습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 |
'ICIS 학부 연구생 > 통신시스템 설계' 카테고리의 다른 글
[ 통신시스템설계 ] 05-(2) Convolutional Code MATLAB (0) | 2023.08.04 |
---|---|
[ 통신시스템설계 ] 05-(1) ECC(Error Correcting Codes 역사 소개 (0) | 2023.08.03 |
[ 통신시스템설계 ] 05-(0) 채널코딩 기본 (0) | 2023.08.03 |
[ 통신시스템설계 ] 03 채널 및 QPSK 수신 (0) | 2023.07.18 |
[ 통신시스템설계 ] 02. BPSK/QPSK 변조기법 (0) | 2023.07.11 |