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

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

В каждом разделе этого примера вы:

  • Создайте форму волны.

  • Передайте его через затухающий канал с добавленным шумом.

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

Передайте S1G сигнал через канал SISO TGah

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

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

Создайте объект строения S1G, а затем сгенерируйте сигнал S1G 2 МГц. Вычислите степень сигнала.

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

Пропустите сигнал через канал SISO TGah с шумом AWGN (ОСШ = 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 объект с ОСШ = 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 К, 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

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

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

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

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

Пропустите сигнал через канал SISO TGac с шумом AWGN (ОСШ = 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 объект с ОСШ = 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 К, 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 через канал TGn SISO

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

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

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

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

Пропустите сигнал через канал SISO TGn с шумом AWGN (ОСШ = 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 функция для добавления шума канала на уровне ОСШ 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 К, 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 Non-HT.

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

Создайте объект строения, отличный от HT, и сгенерируйте сигнал, отличный от HT.

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

Вычислите потери при распространении в свободном пространстве для расстояния разделения передатчика к приемнику 3 метра. Создайте объект канала 802.11g с максимальным доплеровским сдвигом на 3 Гц и задержкой пути RMS, равной двукратному шагу расчета. Напомним, что частота дискретизации модели канала равна полосе пропускания в этом примере. Создайте объект канала 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 функция для добавления шума канала на уровне ОСШ 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 К, 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 через канал TGac MIMO

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

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 TGac и канала AWGN. Напомним, что частота дискретизации модели канала равна полосе пропускания в этом примере. Отключите масштабные эффекты затухания.

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 функция для добавления шума канала на уровне ОСШ 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 К, 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., H. Sampath, S. Vermani, et al. Дополнение к модели канала TGac. Версия 12. IEEE 802.11-09/0308r12, март 2010.

См. также

| | | |

Похожие темы