Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

genqammod

일반 QAM(직교 진폭 변조)

설명

예제

y = genqammod(x,const)는 메시지 신호 x에 대해 QAM의 복소 포락선을 반환합니다. 입력값 const는 변조를 위한 신호 매핑을 지정합니다.

예제

모두 축소

가우스 잡음이 있는 상태에서 비사각형 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

Figure Scatter Plot contains an axes object. The axes object with title Scatter plot, xlabel In-Phase, ylabel Quadrature contains 2 objects of type line. One or more of the lines displays its values using only markers This object represents Channel 1.

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

육각형 성상도를 표현하는 점을 만듭니다.

inphase = [1/2 1 1 1/2 1/2 2 2 5/2];
quadr = [0 1 -1 2 -2 1 -1 0];
inphase = [inphase;-inphase]; inphase = inphase(:);
quadr = [quadr;quadr]; quadr = quadr(:);
const = inphase + 1i*quadr;

성상도를 플로팅합니다.

h = scatterplot(const);

Figure Scatter Plot contains an axes object. The axes object with title Scatter plot, xlabel In-Phase, ylabel Quadrature contains a line object which displays its values using only markers. This object represents Channel 1.

입력 데이터 심볼을 생성합니다. 이 성상도를 사용하여 심볼을 변조합니다.

x = [3 8 5 10 7];
y = genqammod(x,const);

변조된 신호 y를 복조합니다.

z = genqamdemod(y,const);

변조된 신호를 동일한 Figure에 플로팅합니다.

hold on;
scatterplot(y,1,0,'ro',h);
legend('Constellation','Modulated signal');
hold off;

Figure Scatter Plot contains an axes object. The axes object with title Scatter plot, xlabel In-Phase, ylabel Quadrature contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent Constellation, Modulated signal.

복조된 데이터와 원래 시퀀스 간의 심볼 오류 개수를 확인합니다.

numErrs = symerr(x,z)
numErrs = 0

입력 인수

모두 축소

메시지 신호로, 스칼라, 벡터, 행렬 또는 숫자형 값으로 구성된 3차원 배열로 지정됩니다. 메시지 신호는 0에서 length(const)–1 사이의 정수로 구성되어야 합니다. x가 여러 행을 갖는 행렬인 경우 함수는 열을 개별적으로 처리합니다.

데이터형: double | single | fi | int8 | int16 | uint8 | uint16

신호 매핑으로, 복소수 벡터로 지정됩니다.

데이터형: double | single | fi | int8 | int16 | uint8 | uint16
복소수 지원 여부:

출력 인수

모두 축소

복소 포락선으로, 스칼라, 벡터, 행렬 또는 숫자형 값으로 구성된 3차원 배열로 반환됩니다. y의 길이는 입력값 x의 길이와 같습니다.

데이터형: double | single | fi | int8 | int16 | uint8 | uint16

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2006a 이전에 개발됨