Реконструируйте импульсную характеристику канала и выполните оценку временного смещения с использованием фильтров тракта модели канала кластерной линии задержки (CDL) с профилем задержки CDL-D из TR 38.901 Раздел 7.7.1.
Определите структуру конфигурации канала с помощью nrCDLChannel Системный объект. Использовать профиль задержки CDL-D, разброс задержки 10 нс и скорость UE 15 км/ч:
v = 15.0; % UE velocity in km/h fc = 4e9; % carrier frequency in Hz c = physconst('lightspeed'); % speed of light in m/s fd = (v*1000/3600)/c*fc; % UE max Doppler frequency in Hz cdl = nrCDLChannel; cdl.DelayProfile = 'CDL-D'; cdl.DelaySpread = 10e-9; cdl.CarrierFrequency = fc; cdl.MaximumDopplerShift = fd;
Сконфигурируйте передающую решетку как [M N P Mg Ng] = [2 2 2 1 1], представляющую 1 панель (Mg = 1, Ng = 1) с антенной решеткой 2 на 2 (M = 2, N = 2) и P = 2 углов поляризации. Сконфигурируйте антенную решетку приема как [M N P Mg Ng] = [1 1 2 1 1], представляющую одну пару кросс-поляризованных совместно расположенных антенн.
cdl.TransmitAntennaArray.Size = [2 2 2 1 1]; cdl.ReceiveAntennaArray.Size = [1 1 2 1 1];
Создайте случайный сигнал длительностью 1 субкадр с 8 антеннами.
SR = 15.36e6; T = SR * 1e-3; cdl.SampleRate = SR; cdlinfo = info(cdl); Nt = cdlinfo.NumTransmitAntennas; txWaveform = complex(randn(T,Nt),randn(T,Nt));
Передача входного сигнала по каналу.
[rxWaveform,pathGains] = cdl(txWaveform);
Получите фильтры трактов, используемые при фильтрации каналов.
pathFilters = getPathFilters(cdl);
Выполнение оценки смещения синхронизации с использованием nrPerfectTimingEstimate.
[offset,mag] = nrPerfectTimingEstimate(pathGains,pathFilters);
Постройте график величины импульсной характеристики канала.
[Nh,Nr] = size(mag); plot(0:(Nh-1),mag,'o:'); hold on; plot([offset offset],[0 max(mag(:))*1.25],'k:','LineWidth',2); axis([0 Nh-1 0 max(mag(:))*1.25]); legends = "|h|, antenna " + num2cell(1:Nr); legend([legends "Timing offset estimate"]); ylabel('|h|'); xlabel('Channel impulse response samples');
