주요 콘텐츠

nrOFDMInfo

OFDM 정보 얻기

설명

info = nrOFDMInfo(carrier)는 지정된 반송파 구성 파라미터에 대해 OFDM(직교 주파수 분할 다중화) 변조와 관련된 차원 정보를 제공합니다.

예제

info = nrOFDMInfo(nrb,scs)는 지정된 리소스 블록 개수 nrb와 부반송파 간격 scs에 대한 OFDM 정보를 제공합니다.

info = nrOFDMInfo(___,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);

60kHz의 부반송파 간격과 확장 순환 전치를 지정하여 반송파 구성 파라미터를 설정합니다.

scs = 60;
cpl = 'Extended';

리소스 블록 개수를 150으로 설정합니다.

OFDM 정보를 생성하고 표시합니다.

nrb = 150;
info = nrOFDMInfo(nrb,scs,'CyclicPrefix',cpl)
info = struct with fields:
                   Nfft: 4096
             SampleRate: 245760000
    CyclicPrefixLengths: [1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 1024 … ] (1×48 double)
          SymbolLengths: [5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 5120 … ] (1×48 double)
              Windowing: 116
           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

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

carrier = nrCarrierConfig('NSizeGrid',106);

지정된 샘플 레이트에 대한 OFDM 정보를 생성하고 표시합니다.

sr = 1e8;
info = nrOFDMInfo(carrier,'SampleRate',sr)
info = struct with fields:
                   Nfft: 3200
             SampleRate: 100000000
    CyclicPrefixLengths: [250 225 225 225 225 225 225 250 225 225 225 225 225 225]
          SymbolLengths: [3450 3425 3425 3425 3425 3425 3425 3450 3425 3425 3425 3425 3425 3425]
              Windowing: 112
           SymbolPhases: [0 0 0 0 0 0 0 0 0 0 0 0 0 0]
         SymbolsPerSlot: 14
       SlotsPerSubframe: 1
          SlotsPerFrame: 10

입력 인수

모두 축소

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

리소스 블록 개수로, 1에서 275 사이의 정수로 지정됩니다.

데이터형: double

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

데이터형: double

이름-값 인수

모두 축소

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

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

예: 'SampleRate','1e9'는 1×109Hz의 샘플 레이트를 지정합니다.

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

  • '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 정보로, 다음 필드를 포함하는 구조체로 반환됩니다.

필드설명
Nfft양의 정수FFT 점 개수
SampleRate양의 스칼라파형 샘플 레이트
CyclicPrefixLengths양의 정수로 구성된 1×N 벡터로, 여기서 N은 서브프레임에 있는 OFDM 심볼의 개수입니다.

각 OFDM 심볼의 순환 전치 길이(단위: 샘플)

SymbolLengths양의 정수로 구성된 1×N 벡터OFDM 심볼 길이(단위: 샘플)
Windowing양의 정수함수가 OFDM 심볼의 올림 코사인 윈도우 및 중첩을 적용하는 시간 영역 샘플 개수
SymbolPhases구간 [-π, π]의 숫자로 구성된 1×N 벡터

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

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

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

참고

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

이들 필드에 대한 자세한 내용은 Use Custom OFDM Sample Rate and Custom FFT Size 예제를 참조하십시오.

데이터형: 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.

확장 기능

모두 확장

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

버전 내역

R2020b에 개발됨

모두 확장