nrChannelEstimate
실질적 채널 추정
구문
설명
[는 위에 열거된 구문에 나와 있는 입력 인수 외에도, 하나 이상의 이름-값 인수를 사용하여 옵션을 지정합니다.h,nVar,info] = nrChannelEstimate(___,Name=Value)
예제
물리 계층 셀 ID 번호 42에 대한 PBCH(physical broadcast channel) 복조 기준 신호(DM-RS) 심볼을 생성합니다. DM-RS 스크램블링 초기화의 시간 종속적인 부분은 0입니다.
ncellid = 42; ibar_SSB = 0; dmrsSym = nrPBCHDMRS(ncellid,ibar_SSB);
PBCH DM-RS에 대한 리소스 요소 인덱스를 가져옵니다.
dmrsInd = nrPBCHDMRSIndices(ncellid);
생성된 DM-RS 심볼을 포함하는 리소스 그리드를 만듭니다.
nrb = 20; scs = 15; carrier = nrCarrierConfig('NSizeGrid',nrb,'SubcarrierSpacing',scs); nTxAnts = 1; txGrid = nrResourceGrid(carrier,nTxAnts); txGrid(dmrsInd) = dmrsSym;
지정된 FFT 길이와 순환 전치 길이를 사용하여 리소스 그리드를 변조합니다.
ofdmInfo = nrOFDMInfo(carrier); txWaveform = nrOFDMModulate(carrier,txGrid);
지정된 속성을 사용하여 TDL-C 채널 모델을 만듭니다.
channel = nrTDLChannel;
channel.NumReceiveAntennas = 1;
channel.SampleRate = ofdmInfo.SampleRate;
channel.DelayProfile = 'TDL-C';
channel.DelaySpread = 100e-9;
channel.MaximumDopplerShift = 20;최대 채널 지연을 구합니다.
chInfo = info(channel); maxChDelay = chInfo.MaximumChannelDelay;
채널에서 지연된 샘플을 플러시하려면, 지연된 샘플의 최대 개수와 송신 안테나 개수만큼 송신된 파형의 끝에 0을 추가합니다. TDL-C 채널 모델을 통해 채워진 파형을 송신합니다.
[rxWaveform,pathGains] = channel([txWaveform; zeros(maxChDelay,nTxAnts)]);
DM-RS 심볼을 기준 심볼로 사용하여 송신에 대한 타이밍 오프셋을 추정합니다. 기준 심볼의 OFDM 변조에는 초기 슬롯 개수 0이 사용됩니다.
initialSlot = 0; offset = nrTimingEstimate(carrier,rxWaveform,txGrid);
추정된 타이밍 오프셋에 따라 수신 파형을 동기화합니다.
rxWaveform = rxWaveform(1+offset:end,:);
복조되고 동기화된 수신 파형을 포함하는 수신 리소스 그리드를 만듭니다.
cpFraction = 0.55;
rxGrid = nrOFDMDemodulate(carrier,rxWaveform,'CyclicPrefixFraction',cpFraction);실질적 채널 추정값을 구합니다.
H = nrChannelEstimate(rxGrid,dmrsInd,dmrsSym);
완벽한 채널 추정값을 구합니다.
pathFilters = getPathFilters(channel); H_ideal = nrPerfectChannelEstimate(carrier,pathGains,pathFilters,offset);
실질적 채널 추정값과 완벽한 채널 추정값을 비교합니다.
figure; subplot(1,2,1); imagesc(abs(H)); xlabel('OFDM Symbol'); ylabel('Subcarrier'); title('Practical Estimate Magnitude'); subplot(1,2,2); imagesc(abs(H_ideal)); xlabel('OFDM Symbol'); ylabel('Subcarrier'); title('Perfect Estimate Magnitude');

입력 인수
수신된 리소스 그리드로, K×L×R 복소수 배열로 지정됩니다.
K는 부반송파 개수로 NRB × 12와 같으며, 여기서 NRB는 1 ~ 275 범위의 리소스 블록 개수입니다.
L은 슬롯 또는 기준 그리드에 있는 OFDM 심볼의 개수입니다.
기준 심볼
refSym을 사용하여nrChannelEstimate함수를 호출하는 경우, L은 확장 순환 전치의 경우 12이고 일반 순환 전치의 경우 14입니다.'이름-값 쌍 인수를 사용하여 순환 전치 길이를 설정하십시오.CyclicPrefix'기준 리소스 그리드
refGrid를 사용하여nrChannelEstimate함수를 호출하는 경우, L은 기준 그리드의 OFDM 심볼 개수인 N과 같아야 합니다.
R은 수신 안테나 개수입니다.
데이터형: single | double
복소수 지원 여부: 예
기준 심볼 인덱스로, 정수 행렬로 지정됩니다. 행 개수는 리소스 요소 개수와 같습니다. 모든 인덱스를 하나의 열에 지정하거나 여러 열에 분산하여 지정할 수 있습니다. refInd와 refSym의 요소 개수는 동일해야 하지만 차원 수는 다를 수 있습니다. 이 함수는 refInd와 refSym을 기준 그리드에 매핑하기 전에 다음과 같이 열 벡터로 형태를 변경합니다: refGrid(refInd(:)) = refSym(:).
refInd의 요소는 K×L×P 리소스 배열을 인덱싱하는, 1부터 시작하는 선형 인덱스입니다.
K는 부반송파 개수로 NRB × 12와 같으며, 여기서 NRB는 1 ~ 275 범위의 리소스 블록 개수입니다. K는
rxGrid의 첫 번째 차원과 같아야 합니다.L은 슬롯에 있는 OFDM 심볼의 개수입니다. L은 확장 순환 전치의 경우 12이고 일반 순환 전치의 경우 14입니다.
'이름-값 쌍 인수를 사용하여 순환 전치 길이를 설정하십시오.CyclicPrefix'P는
refInd의 값 범위에서 유추되는 기준 신호 포트의 개수입니다.
데이터형: double
기준 심볼로, 복소수 행렬로 지정됩니다. 행 개수는 리소스 요소 개수와 같습니다. 모든 심볼을 하나의 열에 지정하거나 여러 열에 분산하여 지정할 수 있습니다. refInd와 refSym의 요소 개수는 동일해야 하지만 차원 수는 다를 수 있습니다. 이 함수는 refInd와 refSym을 기준 그리드에 매핑하기 전에 다음과 같이 열 벡터로 형태를 변경합니다: refGrid(refInd(:)) = refSym(:).
데이터형: single | double
복소수 지원 여부: 예
미리 정의된 기준 그리드로, K×N×P 복소수 배열로 지정됩니다. refGrid는 여러 슬롯에 걸쳐 있을 수 있습니다.
K는 부반송파 개수로 NRB × 12와 같으며, 여기서 NRB는 1 ~ 275 범위의 리소스 블록 개수입니다.
N은 기준 그리드에 있는 OFDM 심볼의 개수입니다.
P는 기준 신호 포트의 개수입니다.
데이터형: single | double
복소수 지원 여부: 예
특정 OFDM 뉴머롤로지를 위한 반송파 구성 파라미터로, nrCarrierConfig 객체로 지정됩니다. 함수는 이 입력값의 CyclicPrefix 속성만 사용합니다.
이름-값 인수
선택적 인수 쌍을 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
기준 신호에 대한 CDM(코드 분할 다중화) 배열로, 음이 아닌 정수로 구성된 1×2 배열 [FD TD]로 지정됩니다. 배열 요소 FD와 TD는 각각 주파수 영역(FD-CDM)과 시간 영역(TD-CDM)에서의 CDM 역확산 길이를 지정합니다. 요소의 값이 1이면 CDM이 지정되지 않습니다.
예: CDMLengths=[2 1]은 FD-CDM2를 지정하고 TD-CDM을 지정하지 않습니다.
예: CDMLengths=[1 1]은 직교 역확산을 지정하지 않습니다.
데이터형: double
보간 전 평균화 윈도우로, 음이 아닌 홀수 정수로 구성된 1×2 배열 [F T]로 지정됩니다. 배열 요소 F와 T는 함수가 보간 전 평균화를 수행하는, 주파수 영역과 시간 영역에서의 인접 기준 심볼 개수를 각각 지정합니다. F 또는 T가 0인 경우, 함수는 잡음 분산 추정값 nVar을 기반으로 추정된 신호 대 잡음비(SNR)로부터 평균화 값을 결정합니다.
데이터형: double
출력 인수
실질적 채널 추정값으로, K×L×R×P 복소수 배열로 반환됩니다. K×L×R은 수신된 리소스 그리드 rxGrid의 크기입니다. P는 기준 신호 포트의 개수입니다.
h는 rxGrid로부터 데이터형을 상속합니다.
데이터형: double | single
잡음 분산 추정값으로, 음이 아닌 스칼라로 반환되거나, (PRGBundleSize이 비어 있지 않은 경우) 음이 아닌 숫자로 구성된 NPRG×1 열 벡터로 반환됩니다. (R2025a 이후) NPRG는 PRGBundleSize 입력값에 기반하여 송신된 PRG 개수입니다.
nVar은 수신된 기준 심볼에 대한 가산성 백색 가우스 잡음(AWGN)의 분산 측정값입니다.
데이터형: double
추가 정보로, 필드 AveragingWindow가 포함된 구조체로 반환됩니다.
| 파라미터 필드 | 값 | 설명 |
|---|---|---|
AveragingWindow | 1×2 배열 NPRG×2 배열 (R2025a 이후) | 보간 전 평균화 윈도우로, 1×2 배열로 반환되거나, ( 배열 행은 [F T] 형식이며, 여기서 F와 T는 각각 주파수 영역과 시간 영역에서 인접한 기준 심볼의 개수를 나타냅니다. |
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
nrChannelEstimate 함수는 GPU 배열 입력값을 지원하지만 다음과 같은 사용법 관련 참고 및 제한 사항이 있습니다.
이 함수는 GPU 배열을 받고 GPU 배열을 반환하지만 GPU에서 실행되지는 않습니다.
자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2019b에 개발됨nrChannelEstimate 함수는 다음을 수행할 수 있습니다.
Interpolation이름-값 입력 인수를'off'로 설정하여 보간을 끕니다. 보간을 끄면, 함수가 모든 포트에 걸쳐 각 수신 안테나에 대해refInd또는refGrid입력값에 의해 지정된 기준 심볼 위치에 대해서만 채널 추정값을 반환합니다. 함수는 그 외 다른 그리드 위치에 대해서는 0을 반환합니다.PRGBundleSize이름-값 입력 인수를 비어 있지 않은 값으로 설정하여 서브대역 채널 추정을 활성화합니다. 이 경우 함수는 송신된 PRG 개수에 따라nVar및info출력값을 반환합니다.
nrChannelEstimate 함수가 GPU 배열을 추가로 지원합니다. 자세한 내용은 GPU 배열 항목을 참조하십시오.
C/C++ 코드 생성 시, 이름-값 인수를 컴파일타임 상수로 지정해야 하는 제한 사항이 제거되었습니다.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- 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)