AWGN 채널의 일반 QAM 변조에 대한 심볼 레이트 추정하기
가우스 잡음이 있는 상태에서 비사각형 16진 성상도를 사용하여 데이터를 송수신합니다. 잡음이 포함된 성상도의 산점도 플롯을 표시하고 두 개의 서로 다른 SNR에 대해 심볼 오류율(SER)을 추정합니다.
전화선 모뎀용 V.29 표준을 기반으로 16-QAM 성상도를 만듭니다.
c = [-5 -5i 5 5i -3 -3-3i -3i 3-3i 3 3+3i 3i -3+3i -1 -1i 1 1i]; sigpower = pow2db(mean(abs(c).^2)); M = length(c);
랜덤 심볼을 생성합니다.
data = randi([0 M-1],2000,1);
genqammod
함수를 사용하여 데이터를 변조합니다. 사용자 지정 성상도가 사각형이 아니므로 일반적인 QAM 변조가 필요합니다.
modData = genqammod(data,c);
신호를 SNR이 20dB인 AWGN 채널에 통과시킵니다.
rxSig = awgn(modData,20,sigpower);
수신된 신호와 기준 성상도 c
의 산점도 플롯을 표시합니다.
h = scatterplot(rxSig); hold on scatterplot(c,[],[],'r*',h) grid hold off
genqamdemod
함수를 사용하여 수신된 신호를 복조합니다. 심볼 오류의 개수와 SER을 확인합니다.
demodData = genqamdemod(rxSig,c); [numErrors,ser] = symerr(data,demodData)
numErrors = 4
ser = 0.0020
SNR이 10dB인 AWGN 채널을 사용하여 송신 및 복조 과정을 반복합니다. 감소된 SNR에 대한 SER을 확인합니다. 예상대로 SNR이 감소하면 성능이 저하됩니다.
rxSig = awgn(modData,10,sigpower); demodData = genqamdemod(rxSig,c); [numErrors,ser] = symerr(data,demodData)
numErrors = 457
ser = 0.2285