genqammod
일반 QAM(직교 진폭 변조)
설명
예제
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
일반 QAM 변조 및 복조
육각형 성상도를 표현하는 점을 만듭니다.
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);
입력 데이터 심볼을 생성합니다. 이 성상도를 사용하여 심볼을 변조합니다.
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;
복조된 데이터와 원래 시퀀스 간의 심볼 오류 개수를 확인합니다.
numErrs = symerr(x,z)
numErrs = 0
입력 인수
const
— 신호 매핑
복소수 벡터
신호 매핑으로, 복소수 벡터로 지정됩니다.
데이터형: double
| single
| fi
| int8
| int16
| uint8
| uint16
복소수 지원 여부: 예
출력 인수
세부 정보
배열 지원
genqammod 함수는 숫자형 배열, dlarray
(Deep Learning Toolbox) 또는 gpuArray
(Parallel Computing Toolbox)로 표현된 입력 신호를 지원합니다. 입력값이 dlarray
와 gpuArray
의 조합으로 지정된 경우, GPU에서 반환되는 행렬은 dlarray
객체입니다.
배치 관측값의 개수(NB)는 지원되는 모든 데이터형의 입력값에 대해 선택적으로 추가할 수 있는 차원입니다.
X
— 입력 데이터는 3차원 배열일 수 있으며, NSym×NChan×NB 배열로 지정됩니다.
NSym은 심볼 개수입니다. NChan은 채널 개수입니다.
dlarray
객체를 지원하는 Communications Toolbox™ 기능 목록은 AI를 사용한 무선 통신 항목을 참조하십시오.
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
GPU 배열
Parallel Computing Toolbox™를 사용해 GPU(그래픽스 처리 장치)에서 실행하여 코드 실행 속도를 높일 수 있습니다.
이 함수는 GPU 배열 입력을 지원합니다. 자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)