Задержите эффекты профиля и люминесцентного освещения

Этот пример демонстрирует удар изменения профиля задержки TGac, и это показывает, как люминесцентное освещение влияет на ответ времени канала.

Задержите эффекты профиля

Создайте объект настройки VHT. Установите частоту дискретизации на 80 МГц.

vht = wlanVHTConfig;
fs = 80e6;

Сгенерируйте случайные двоичные данные и создайте форму волны передачи с помощью объектов настройки.

d = randi([0 1],8*vht.PSDULength,1);
txSig = wlanWaveformGenerator(d,vht);

Создайте объект канала TGac. Установите профиль задержки на 'Model-A', который соответствует плоскому исчезновению. Отключите крупномасштабные исчезающие эффекты.

tgacChan = wlanTGacChannel('SampleRate',fs, ...
    'ChannelBandwidth',vht.ChannelBandwidth, ...
    'DelayProfile','Model-A', ...
    'LargeScaleFadingEffect','None');

Передайте переданную форму волны через канал TGac.

rxSigA = tgacChan(txSig);

Установите профиль задержки на 'Model-C'. Модель-C соответствует многопутевому каналу, имеющему 14 отличных путей с распространением задержки RMS на 30 нс. Максимальное распространение задержки составляет 200 нс, который соответствует пропускной способности когерентности 2,5 МГц.

release(tgacChan)
tgacChan.DelayProfile = 'Model-C';

Передайте форму волны через канал модели-C.

rxSigC = tgacChan(txSig);

Создайте спектр анализатор и используйте его, чтобы визуализировать спектр полученных сигналов.

saScope = dsp.SpectrumAnalyzer('SampleRate',fs, ...
    'ShowLegend',true,'ChannelNames',{'Model-A','Model-C'}, ...
    'SpectralAverages',10);
saScope([rxSigA rxSigC])

Как ожидалось частотная характеристика сигнала модели-A является плоской через пропускную способность на 80 МГц. С другой стороны частотная характеристика модели-C варьируется, потому что ее пропускная способность когерентности намного меньше, чем пропускная способность канала.

Флуоресцентные эффекты

Выпустите канал TGac и установите его профиль задержки на 'Model-D'. Отключите эффект люминесцентного освещения.

release(tgacChan)
tgacChan.DelayProfile = 'Model-D';
tgacChan.FluorescentEffect = false;

Чтобы лучше проиллюстрировать эффекты Доплера люминесцентного освещения, измените пропускную способность и частоту дискретизации канала. Сгенерируйте тестовую форму волны из всех единиц.

tgacChan.ChannelBandwidth = 'CBW20';
fs = 20e6;
tgacChan.SampleRate = fs;

txSig = ones(5e5,1);

Чтобы гарантировать воспроизводимость, установите глобальный генератор случайных чисел на фиксированное значение.

rng(37)

Передайте форму волны через канал TGac.

rxSig0 = tgacChan(txSig);

Включите эффект люминесцентного освещения. Сбросьте генератор случайных чисел и передайте форму волны через канал.

release(tgacChan)
tgacChan.FluorescentEffect = true;
rng(37)
rxSig1 = tgacChan(txSig);

Определите ось времени и задержку фильтра канала.

t = ((1:size(rxSig0,1))'-1)/fs;
fDelay = tgacChan.info.ChannelFilterDelay;

Постройте величину полученных сигналов при объяснении задержки фильтра канала.

plot(t(fDelay+1:end),[abs(rxSig0(fDelay+1:end)) abs(rxSig1(fDelay+1:end))])
xlabel('Time (s)')
ylabel('Magnitude (V)')
legend('Fluorescent Off','Fluorescent On','location','best')

Люминесцентное освещение вводит Доплеровский компонент в дважды частоте сети (120 Гц в США).

Подтвердите, что peaks разделяется приблизительно 0,0083 с (инверсия 120 Гц) путем измерения расстояния между вторым и третьим peaks.

[~,loc] = findpeaks(abs(rxSig1(1e5:4e5)));
peakTimes = loc/fs;
peakSeparation = diff(peakTimes)
peakSeparation =

    0.0085