주요 콘텐츠

nrOFDMModulate

OFDM 변조 파형 생성

설명

[waveform,info] = nrOFDMModulate(carrier,grid)는 반송파 구성 파라미터 carrier를 사용하여 반송파 리소스 배열 grid의 직교 주파수 분할 다중화(OFDM) 변조를 수행하여 시간 영역 파형인 waveform을 생성합니다. 이 함수는 OFDM 정보를 포함한 구조체인 info도 반환합니다.

예제

[waveform,info] = nrOFDMModulate(grid,scs,initialNSlot)은 부반송파 간격 scs와 초기 슬롯 개수 initialNSlot을 사용하여 반송파 리소스 배열을 변조합니다.

[waveform,info] = nrOFDMModulate(___,Name,Value)는 위에 열거된 구문에 나와 있는 입력 인수 외에도, 하나 이상의 이름-값 쌍 인수를 사용하여 옵션을 지정합니다.

예제

예제

모두 축소

SRS(사운딩 기준 신호)가 포함된 리소스 배열의 OFDM 변조를 수행하여 파형을 생성합니다. 리소스 배열의 범위는 전체 프레임입니다.

반송파 리소스 배열에서 30kHz와 24개의 RB(Resource Block)의 부반송파 간격을 지정하여 반송파 구성 파라미터를 설정합니다.

carrier = nrCarrierConfig('SubcarrierSpacing',30,'NSizeGrid',24);

슬롯 주기성을 2로 설정하고 오프셋을 0으로 설정하여 SRS 파라미터를 구성합니다.

srs = nrSRSConfig('SRSPeriod',[2 0]);

지정한 반송파 구성에 대한 OFDM 정보를 얻습니다.

info = nrOFDMInfo(carrier);

각각의 슬롯 리소스 배열을 생성하고 이들을 결합하여 프레임 리소스 배열을 생성합니다.

grid = [];
for nslot = 0:(info.SlotsPerFrame - 1)
    carrier.NSlot = nslot;
    slotGrid = nrResourceGrid(carrier);
    ind = nrSRSIndices(carrier,srs);
    sym = nrSRS(carrier,srs);
    slotGrid(ind) = sym;
    grid = [grid slotGrid];
end

지정된 반송파 구성에 대해 리소스 배열에서 OFDM 변조를 수행합니다.

[waveform,info] = nrOFDMModulate(carrier,grid);

PDSCH(physical downlink shared channel) 복조 기준 신호(DM-RS) 심볼을 포함하는 리소스 배열의 OFDM 변조를 수행하여 파형을 생성합니다.

60kHz의 부반송파 간격을 지정하여 반송파 구성 파라미터를 설정합니다.

scs = 60;
carrier = nrCarrierConfig('SubcarrierSpacing',scs);

PDSCH DM-RS 심볼과 인덱스를 생성합니다.

p = 2;
pdsch = nrPDSCHConfig('NumLayers',p);
sym = nrPDSCHDMRS(carrier,pdsch);
ind = nrPDSCHDMRSIndices(carrier,pdsch);

PDSCH DM-RS 심볼을 포함하는 반송파 리소스 배열을 만듭니다.

grid = nrResourceGrid(carrier,p);
grid(ind) = sym;

부반송파 간격, 초기 슬롯 개수, 순환 전치 유형을 지정하여 OFDM 변조 파형을 생성합니다. OFDM 정보를 표시합니다.

initialNSlot = carrier.NSlot;
cpl = 'extended';
[waveform,info] = nrOFDMModulate(grid,scs,initialNSlot,'CyclicPrefix',cpl);
disp(info)
                   Nfft: 1024
             SampleRate: 61440000
    CyclicPrefixLengths: [256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256]
          SymbolLengths: [1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 … ] (1×48 double)
              Windowing: 36
           SymbolPhases: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
         SymbolsPerSlot: 12
       SlotsPerSubframe: 4
          SlotsPerFrame: 40

PDSCH DM-RS 심볼을 포함하는 리소스 배열의 OFDM 변조를 수행하여 파형을 생성합니다.

반송파 리소스 배열에서 106개의 RB를 지정하여 반송파 구성 파라미터를 설정합니다.

carrier = nrCarrierConfig('NSizeGrid',106);

PDSCH를 구성하고 대응되는 심볼과 인덱스를 생성합니다.

p = 4;
pdsch = nrPDSCHConfig('NumLayers',p);
sym = nrPDSCHDMRS(carrier,pdsch);
ind = nrPDSCHDMRSIndices(carrier,pdsch);

반송파 리소스 배열을 생성하여 PDSCH 심볼에 매핑합니다.

grid = nrResourceGrid(carrier,p,'OutputDataType','single');
grid(ind) = sym;

샘플 레이트를 지정하여 OFDM 변조 파형을 생성합니다.

sr = 1e8;
[waveform,info] = nrOFDMModulate(carrier,grid,'SampleRate',sr);

입력 인수

모두 축소

특정 OFDM 뉴머롤로지를 위한 반송파 구성 파라미터로, nrCarrierConfig 객체로 지정됩니다. 다음 객체 속성만이 이 함수와 관련이 있습니다.

반송파 리소스 배열로, 크기가 K×N×P인 복소수 값 배열로 지정됩니다.

  • K는 부반송파 개수입니다.

  • N은 OFDM 심볼 개수입니다.

  • P는 송신 안테나 개수입니다.

데이터형: single | double
복소수 지원 여부:

부반송파 간격(단위: kHz)으로, 15, 30, 60, 120, 240, 480 또는 960으로 지정됩니다.

데이터형: double

초기 슬롯 개수로, 0부터 시작하며 음이 아닌 정수로 지정됩니다. 함수는 initialNSlot mod S의 값을 사용하여 OFDM 변조에 적합한 순환 전치 길이를 선택합니다. 여기서 S는 서브프레임당 슬롯 수입니다.

데이터형: double

이름-값 인수

모두 축소

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: 'CyclicPrefix','extended'는 확장 순환 전치 길이를 지정합니다.

순환 전치 길이로, 다음 값 중 하나로 지정됩니다.

  • 'normal' — 일반 순환 전치를 지정하려면 이 값을 사용합니다. 이 옵션은 슬롯 내 14개의 OFDM 심볼에 대응합니다.

  • 'extended' — 확장 순환 전치를 지정하려면 이 값을 사용합니다. 이 옵션은 슬롯 내 12개의 OFDM 심볼에 대응합니다. TS 38.211 Section 4.2에 명시된 뉴머롤로지의 경우, 확장 순환 전치 길이는 60kHz의 부반송파 간격에만 적용됩니다.

참고

carrier 입력값을 지정하는 경우, carrier 입력값의 CyclicPrefix 속성을 사용하여 순환 전치 길이를 지정하십시오. 이 이름-값 쌍 인수는 carrier 입력값과 함께 사용할 수 없습니다.

데이터형: char | string

고속 푸리에 변환(FFT) 점의 개수로, 'Nfft'와 함께 127보다 큰 음이 아닌 정수 또는 []이 쉼표로 구분되어 지정됩니다. 지정하는 값은 정수 값 순환 전치 길이와 최대 점유율 100%의 결과를 생성해야 합니다. 점유율은 (12 × NRB)/Nfft의 값으로 정의되며, 여기서 NRB는 리소스 블록의 개수입니다.

이 입력값을 지정하지 않거나 'Nfft',[]을 지정할 경우 함수는 127보다 큰 정수 값을 이 입력값의 디폴트 값으로 설정합니다. 실제 디폴트 값은 다른 입력값에 따라 달라집니다.

  • SampleRate 입력값을 지정하지 않거나 'SampleRate',[]을 지정할 경우 함수는 다음 조건을 충족하는 Nfft를 설정합니다.

    • Nfft는 2의 정수 거듭제곱입니다.

    • Nfft는 최대 점유율 85%의 결과를 생성합니다.

  • SampleRate 입력값을 지정할 경우 함수는 다음 조건을 충족하는 Nfft를 설정합니다.

    • Nfft는 정수 값 순환 전치 길이를 생성합니다.

    • Nfftgcd (Nfft × SCS, SampleRate)의 값을 최대화하며, 여기서 SCScarrier.SubcarrierSpacing 속성 또는 scs 입력값으로 지정됩니다.

자세한 내용은 OFDM 샘플 레이트 및 FFT 크기 구성 항목을 참조하십시오.

데이터형: double

파형 샘플 레이트로, 'SampleRate'와 함께 양의 스칼라 또는 []이 쉼표로 구분되어 지정됩니다.

이 입력값을 지정하지 않거나 'SampleRate',[]을 지정할 경우 함수는 이 입력값을 Nfft × SCS의 값으로 설정합니다.

  • Nfft'Nfft' 입력의 값입니다.

  • SCS는 부반송파 간격입니다. 사용하는 함수 구문에 따라, SCScarrier.SubcarrierSpacing 속성 또는 scs 입력값으로 지정됩니다.

자세한 내용은 OFDM 샘플 레이트 및 FFT 크기 구성 항목을 참조하십시오.

데이터형: double

함수가 OFDM 심볼의 올림 코사인 윈도우 및 중첩을 적용하는 시간 영역 샘플 개수로, 'Windowing'과 함께 음이 아닌 정수 또는 []이 쉼표로 구분되어 지정됩니다.

이 입력값을 지정하지 않거나 'Windowing',[]을 지정할 경우 함수는 이 입력값을 TS 38.101-1 Annex F.5.3 및 F.5.4, TS 38.101-2 Annex F.5.3 및 F.5.4, TS 38.104 Annex B.5.2 및 C.5.2에 명시된 대로 오류 벡터 크기(EVM) 테스트에 영향을 주지 않는 최댓값 E로 설정합니다. Efloor((NCPW) × info.NfftNFFT, nominal)의 값과 같으며, 여기서 NCP, W, NFFT, nominal은 각각 "Cyclic prefix length", "EVM window length", "FFT size"로 레이블이 지정된 테이블 열의 값입니다.

데이터형: double

반송 주파수(단위: Hz)로, 'CarrierFrequency'와 함께 실수가 쉼표로 구분되어 지정됩니다. 이 입력값은 TS 38.211 Section 5.4에 명시된 f0에 대응합니다.

데이터형: double

출력 인수

모두 축소

OFDM 변조 파형으로, 크기가 T×P인 복소수 값 행렬로 반환됩니다.

  • T는 파형의 시간 영역 샘플 개수입니다.

  • P는 송신 안테나 개수입니다.

데이터형: single | double
복소수 지원 여부:

OFDM 정보로, 다음 필드를 포함하는 구조체로 반환됩니다.

필드설명
Nfft양의 정수FFT 점 개수
SampleRate양의 스칼라파형 샘플 레이트
CyclicPrefixLengths양의 정수로 구성된 1×N 벡터로, 여기서 N은 서브프레임에 있는 OFDM 심볼의 개수입니다.각 OFDM 심볼의 순환 전치 길이(단위: 샘플)
SymbolLengths양의 정수로 구성된 1×N 벡터OFDM 심볼 길이(단위: 샘플)
Windowing양의 정수함수가 OFDM 심볼의 올림 코사인 윈도우 및 중첩을 적용하는 시간 영역 샘플 개수
SymbolPhases구간 [-π, π]의 스칼라로 구성된 1×N 벡터

각 OFDM 심볼의 위상 보상(단위: 라디안)

이 함수는 TS 38.211 Section 5.4[4]에 명시된 대로 각 OFDM 심볼의 위상 항을 고려하기 위해 변조 시 이 보상을 적용합니다. 복조 시 nrOFDMDemodulate 함수가 이 위상 보상을 반전시킵니다.

SymbolsPerSlot양의 정수슬롯의 OFDM 심볼 개수
SlotsPerSubframe양의 정수1ms 서브프레임의 슬롯 개수
SlotsPerFrame양의 정수10ms 프레임의 슬롯 개수

참고

CyclicPrefixLengths, SymbolLengths, Windowing 구조체 필드의 샘플 개수는 OFDM 심볼 생성 중에 사용되는, 크기가 Nfft인 IFFT의 샘플 레이트에 적용됩니다. 그러나 SampleRate 이름-값 인수가 임의의 샘플 레이트를 지정하는 경우 IFFT 샘플 레이트는 파형 샘플 레이트와 다를 수 있습니다.

데이터형: struct

참고 문헌

[1] 3GPP TS 38.101-1. “NR; User Equipment (UE) radio transmission and reception; Part 1: Range 1 Standalone.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

[2] 3GPP TS 38.101-2. “NR; User Equipment (UE) radio transmission and reception; Part 2: Range 2 Standalone.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

[3] 3GPP TS 38.104. “NR; Base Station (BS) radio transmission and reception.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

[4] 3GPP TS 38.211. “NR; Physical channels and modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

확장 기능

모두 확장

버전 내역

R2020b에 개발됨

모두 확장