exponenta event banner

Модели каналов WLAN

Этот пример демонстрирует прохождение сигналов WLAN S1G, VHT, HT и не-HT формата через соответствующие модели канала замирания. При моделировании линии связи WLAN жизнеспособные варианты моделирования канала включают модели TGah, TGn и TGac от WLAN Toolbox™ и аддитивные модели белого гауссова шума (AWGN) и 802.11g от Communications Toolbox™. В этом примере достаточно установить частоту дискретизации модели канала так, чтобы она соответствовала полосе пропускания канала, потому что к сигналу не применяется фильтрация на входе и скорость избыточной дискретизации равна 1.

В каждом разделе этого примера выполняется следующее:

  • Создайте форму сигнала.

  • Передача по каналу замирания с добавлением шума.

  • Используйте анализатор спектра для отображения сигнала до и после его прохождения через шумный канал замирания.

Прохождение сигнала S1G через канал TGah SISO

Создайте битовый поток для использования при формировании формы сигнала формата WLAN S1G.

bits = randi([0 1],1000,1);

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

s1g = wlanS1GConfig;
preChS1G = wlanWaveformGenerator(bits,s1g);

Передача сигнала через канал SISO TGah с шумом AWGN (SNR = 10 дБ) и приемник с показателем шума 9 дБ. Напомним, что частота дискретизации модели канала равна полосе пропускания в этом примере. Задайте значения свойств с помощью пар имя-значение.

Создайте объект канала TGah. Задайте частоту выборки модели канала и полосу пропускания канала, включите потерю тракта и затенение и используйте профиль задержки Model-D.

cbw = s1g.ChannelBandwidth;
fs = 2e6; % Channel model sampling frequency equals the channel bandwidth
tgahChan = wlanTGahChannel('SampleRate',fs,'ChannelBandwidth',cbw, ...
    'LargeScaleFadingEffect','Pathloss and shadowing', ...
    'DelayProfile','Model-D');

Создание AWGN Channel объект с SNR = 10 дБ. Определите мощность сигнала в ваттах, учитывая масштабный затухающий патлосс TGah.

preChSigPwr_dB = 20*log10(mean(abs(preChS1G)));
sigPwr = 10^((preChSigPwr_dB-tgahChan.info.Pathloss)/10);

chNoise = comm.AWGNChannel('NoiseMethod','Signal to noise ratio (SNR)',...
    'SNR',10,'SignalPower', sigPwr);

Передайте сигнал S1G через канал SISO TGah и добавьте шум канала AWGN.

postChS1G = chNoise(tgahChan(preChS1G));

Создать другое AWGN Channel объект для добавления шума приемника.

rxNoise = comm.AWGNChannel('NoiseMethod','Variance', ...
    'VarianceSource','Input port');

Пропустите сигнал S1G через приемник. Выберите соответствующую дисперсию шума nVar для установки уровня шума приемника. Здесь уровень шума приемника основан на дисперсии шума для приемника с показателем шума 9 дБ. nVar = kTBF, где k - постоянная Больцмана, T - температура окружающей среды 290 K, B - полоса пропускания, F - показатель шума приемника.

nVar = 10^((-228.6 + 10*log10(290) + 10*log10(fs) + 9)/10);

rxS1G = rxNoise(postChS1G,nVar);

Отображение анализатора спектра с предканальными и послеканальными колебаниями. Использовать SpectralAverages = 10 для уменьшения шума в изображенных сигналах.

title = '2 MHz S1G Waveform Before and After TGah Channel';
saScope = dsp.SpectrumAnalyzer('SampleRate',fs,'ShowLegend',true,...
    'AveragingMethod','Exponential','ForgettingFactor',0.99,'Title',title,...
    'ChannelNames',{'Before','After'});
saScope([preChS1G,rxS1G])

Потери в тракте составляют приблизительно 50 дБ разделения между формой сигнала до и после его прохождения через канал TGah. Потери в тракте обусловлены расстоянием между передатчиками и приемниками по умолчанию, равным 3 метрам, и эффектами затенения. Изменение уровня сигнала показывает частотную избирательность профиля задержки по частотному спектру.

Прохождение сигнала VHT через канал SISO TGac

Создайте битовый поток для использования при формировании формы сигнала формата VHT WLAN.

bits = randi([0 1],1000,1);

Создайте объект конфигурации VHT и создайте форму сигнала VHT 80 МГц. Вычислите мощность сигнала.

vht = wlanVHTConfig;
preChVHT = wlanWaveformGenerator(bits,vht);

Передача сигнала через канал TGac SISO с шумом AWGN (SNR = 10 дБ) и приемник с показателем шума 9 дБ. Напомним, что частота дискретизации модели канала равна полосе пропускания в этом примере. Установка параметров с помощьюName,Value пар.

Создайте объект канала TGac. Задайте частоту выборки модели канала и полосу пропускания канала, включите потерю тракта и затенение и используйте профиль задержки Model-D.

cbw = vht.ChannelBandwidth;
fs = 80e6; % Channel model sampling frequency equals the channel bandwidth
tgacChan = wlanTGacChannel('SampleRate',fs,'ChannelBandwidth',cbw, ...
    'LargeScaleFadingEffect','Pathloss and shadowing', ...
    'DelayProfile','Model-D');

Создание AWGN Channel объект с SNR = 10 дБ. Определите мощность сигнала в ваттах, учитывая масштабный затухающий патлосс TGac.

preChSigPwr_dB = 20*log10(mean(abs(preChVHT)));
sigPwr = 10^((preChSigPwr_dB-tgacChan.info.Pathloss)/10);

chNoise = comm.AWGNChannel('NoiseMethod','Signal to noise ratio (SNR)',...
    'SNR',10,'SignalPower', sigPwr);

Передайте сигнал VHT через канал SISO TGac и добавьте шум канала AWGN.

postChVHT = chNoise(tgacChan(preChVHT));

Создать другое AWGN Channel объект для добавления шума приемника.

rxNoise = comm.AWGNChannel('NoiseMethod','Variance', ...
    'VarianceSource','Input port');

Пропустите сигнал VHT через приемник. Выберите соответствующую дисперсию шума nVar для установки уровня шума приемника. Здесь уровень шума приемника основан на дисперсии шума для приемника с показателем шума 9 дБ. nVar = kTBF, где k - постоянная Больцмана, T - температура окружающей среды 290 K, B - полоса пропускания, F - показатель шума приемника.

nVar = 10^((-228.6 + 10*log10(290) + 10*log10(fs) + 9)/10);

rxVHT = rxNoise(postChVHT,nVar);

Отображение анализатора спектра с предканальными и послеканальными колебаниями. Использовать SpectralAverages = 10 для уменьшения шума в изображенных сигналах.

title = '80 MHz VHT Waveform Before and After TGac Channel';
saScope = dsp.SpectrumAnalyzer('SampleRate',fs,'ShowLegend',true,...
    'AveragingMethod','Exponential','ForgettingFactor',0.99,'Title',title,...
    'ChannelNames',{'Before','After'});
saScope([preChVHT,rxVHT])

Потери в тракте составляют приблизительно от 50 до 60 дБ разделения между формой сигнала до и после его прохождения через канал TGac. Потери в тракте обусловлены расстоянием между передатчиками и приемниками по умолчанию, равным 3 метрам, и эффектами затенения. Изменение уровня сигнала показывает частотную избирательность профиля задержки по частотному спектру.

Прохождение сигнала HT через канал SISO TGn

Создайте битовый поток для использования при формировании формы сигнала формата WLAN HT.

bits = randi([0 1],1000,1);

Создайте объект конфигурации HT и создайте форму сигнала HT.

ht = wlanHTConfig;
preChHT = wlanWaveformGenerator(bits,ht);

Пропустить сигнал через канал SISO TGn с шумом AWGN (SNR = 10 дБ) и приемник с показателем шума 9 дБ. Напомним, что частота дискретизации модели канала равна полосе пропускания в этом примере. Установка параметров с помощьюName,Value пар.

Создайте объект канала TGn. Задайте частоту выборки модели канала и полосу пропускания канала, включите потерю тракта и затенение и используйте профиль задержки Model-F.

fs = 20e6; % Channel model sampling frequency equals the channel bandwidth
tgnChan = wlanTGnChannel('SampleRate',fs,'LargeScaleFadingEffect', ...
    'Pathloss and shadowing','DelayProfile','Model-F');

Пропускают сигнал HT через канал TGn. Используйте awgn функция для добавления шума канала на уровне SNR 10 дБ.

postChHT = awgn(tgnChan(preChHT),10,'measured');

Создание AWGN Channel объект для добавления шума приемника.

rxNoise = comm.AWGNChannel('NoiseMethod','Variance', ...
    'VarianceSource','Input port');

Пропустите сигнал HT через приемник. Выберите соответствующую дисперсию шума nVar для установки уровня шума приемника. Здесь шум приемника основан на дисперсии шума для приемника с показателем шума 9 дБ. nVar = kTBF, где k - постоянная Больцмана, T - температура окружающей среды 290 K, B - полоса пропускания, F - показатель шума приемника.

nVar = 10^((-228.6 + 10*log10(290) + 10*log10(fs) + 9)/10);

rxHT = rxNoise(postChHT, nVar);

Отображение анализатора спектра с предканальными и послеканальными колебаниями. Использовать SpectralAverages = 10 для уменьшения шума в изображенных сигналах.

title = '20 MHz HT Waveform Before and After TGn Channel';
saScope = dsp.SpectrumAnalyzer('SampleRate',fs,'ShowLegend',true,...
    'AveragingMethod','Exponential','ForgettingFactor',0.99,'Title',title,...
    'ChannelNames',{'Before','After'});
saScope([preChHT,postChHT])

Потери в тракте составляют приблизительно от 50 до 60 дБ разделения между формой сигнала до и после его прохождения через канал TGn. Потери в тракте обусловлены расстоянием между передатчиками и приемниками по умолчанию, равным 3 метрам, и эффектами затенения. Изменение уровня сигнала показывает частотную избирательность профиля задержки по частотному спектру.

Прохождение сигнала без HT через канал 802.11g

Создайте битовый поток для использования при формировании формы сигнала формата WLAN не-HT.

bits = randi([0 1],1000,1);

Создайте объект конфигурации без HT и создайте форму сигнала без HT.

nht = wlanNonHTConfig;
preChNonHT = wlanWaveformGenerator(bits,nht);

Вычислите потери в тракте свободного пространства для расстояния между передатчиками и приемниками 3 метра. Создайте объект канала 802.11g с максимальным доплеровским сдвигом 3 Гц и среднеквадратичной задержкой пути, равной удвоенному времени выборки. Напомним, что частота дискретизации модели канала равна полосе пропускания в этом примере. Создайте объект канала AWGN.

dist = 3;
fc = 2.4e9;
pathLoss = 10^(-log10(4*pi*dist*(fc/3e8)));
fs = 20e6; % Channel model sampling frequency equals the channel bandwidth
maxDoppShift = 3;
trms = 2/fs;
ch802 = comm.RayleighChannel('SampleRate',fs,'MaximumDopplerShift',maxDoppShift,'PathDelays',trms);

Передача сигнала без HT через канал 802.11g. Используйте awgn функция для добавления шума канала на уровне SNR 10 дБ.

postChNonHT = awgn(ch802(preChNonHT),10,'measured');

Создание AWGN Channel объект для добавления шума приемника.

rxNoise = comm.AWGNChannel('NoiseMethod','Variance', ...
    'VarianceSource','Input port');

Пропускайте сигнал без HT через приемник. Выберите соответствующую дисперсию шума, nVar, для установки уровня шума приемника. Здесь шум приемника основан на дисперсии шума для приемника с показателем шума 9 дБ. nVar = kTBF, где k - постоянная Больцмана, T - температура окружающей среды 290 K, B - полоса пропускания, F - показатель шума приемника.

nVar = 10^((-228.6 + 10*log10(290) + 10*log10(fs) + 9)/10);

rxNonHT = rxNoise(postChNonHT, nVar)* pathLoss;

Отображение анализатора спектра с предканальными и послеканальными колебаниями. Использовать SpectralAverages = 10 для уменьшения шума в изображенных сигналах.

title = '20 MHz Non-HT Waveform Before and After 802.11g Channel';
saScope = dsp.SpectrumAnalyzer('SampleRate',fs,'ShowLegend',true,...
    'AveragingMethod','Exponential','ForgettingFactor',0.99,'Title',title,...
    'ChannelNames',{'Before','After'});
saScope([preChNonHT,rxNonHT])

Потери в тракте свободного пространства составляют приблизительно от 50 до 60 дБ разделения между формой сигнала до и после его прохождения через канал 802.11g. Потеря тракта является результатом заданного расстояния между передатчиком и приемником, равного 3 метрам, и эффектов затенения. Изменение уровня сигнала показывает частотную избирательность профиля задержки по частотному спектру.

Прохождение сигнала VHT через канал MIMO TGac

Создайте битовый поток для использования при формировании формы сигнала формата VHT WLAN.

bits = randi([0 1],1000,1);

Создайте многопользовательский объект конфигурации VHT и создайте форму сигнала VHT. Установите количество передающих антенн равным четырем. Установите количество пространственно-временных потоков и количество приемных антенн в 3. Поскольку количество передающих антенн не равно количеству пространственно-временных потоков, пространственное отображение не является прямым. Задайте для пространственного сопоставления значение Адамар.

ntx = 4;
nsts = 3;
nrx = 3;
vht = wlanVHTConfig('NumTransmitAntennas',ntx, ...
    'NumSpaceTimeStreams',nsts,'SpatialMapping','Hadamard');
preChVHT = wlanWaveformGenerator(bits,vht);

Создание объектов канала MIMO и AWGN TGac. Напомним, что частота дискретизации модели канала равна полосе пропускания в этом примере. Отключить крупномасштабные эффекты замирания.

cbw = vht.ChannelBandwidth;
fs = 80e6; % Channel model sampling frequency equals the channel bandwidth
tgacChan = wlanTGacChannel('SampleRate',fs,'ChannelBandwidth',cbw,...
    'NumTransmitAntennas',ntx,'NumReceiveAntennas',nrx);
tgacChan.LargeScaleFadingEffect = 'None';

Передача сигнала VHT через канал TGac. Используйте awgn функция для добавления шума канала на уровне SNR 10 дБ.

postChVHT = awgn(tgacChan(preChVHT),10,'measured');

Создание AWGN Channel объект для добавления шума приемника.

rxNoise = comm.AWGNChannel('NoiseMethod','Variance', ...
    'VarianceSource','Input port');

Передача многопользовательского сигнала VHT через шумный канал TGac. Выберите соответствующую дисперсию шума nVar для установки уровня AWGN. Здесь уровень AWGN основан на дисперсии шума для приемника с показателем шума 9 дБ. nVar = kTBF, где k - постоянная Больцмана, T - температура окружающей среды 290 K, B - полоса пропускания, F - показатель шума приемника.

nVar = 10^((-228.6 + 10*log10(290) + 10*log10(fs) + 9)/10);

rxVHT = rxNoise(postChVHT,nVar);

Отображение анализатора спектра, показывающего множество потоков после добавления эффектов канала. Использовать SpectralAverages = 10 для уменьшения шума в изображенных сигналах.

title = '80 MHz VHT 4x3 MIMO Waveform After TGac Channel';
saScope = dsp.SpectrumAnalyzer('SampleRate',fs,'ShowLegend',true,...
    'AveragingMethod','Exponential','ForgettingFactor',0.99,'Title',title,...
    'ChannelNames',{'RX1','RX2','RX3'});
saScope(rxVHT)

Наложенные сигналы показывают изменение канала TGac между принятыми потоками.

Ссылки

[1] Erceg, V., L. Schumacher, P. Kyritsi, et al. Модели каналов TGn. Версия 4. IEEE 802.11-03/940r4, май 2004 года.

[2] Breit, G., Х. Сэмпэт, С. Вермани, и др. Дополнение к модели канала TGac. Версия 12. IEEE 802.11-09/0308r12, март 2010 г.

См. также

| | | |

Связанные темы