Этот пример демонстрирует прохождение сигналов WLAN S1G, VHT, HT и не-HT формата через соответствующие модели канала замирания. При моделировании линии связи WLAN жизнеспособные варианты моделирования канала включают модели TGah, TGn и TGac от WLAN Toolbox™ и аддитивные модели белого гауссова шума (AWGN) и 802.11g от Communications Toolbox™. В этом примере достаточно установить частоту дискретизации модели канала так, чтобы она соответствовала полосе пропускания канала, потому что к сигналу не применяется фильтрация на входе и скорость избыточной дискретизации равна 1.
В каждом разделе этого примера выполняется следующее:
Создайте форму сигнала.
Передача по каналу замирания с добавлением шума.
Используйте анализатор спектра для отображения сигнала до и после его прохождения через шумный канал замирания.
Создайте битовый поток для использования при формировании формы сигнала формата 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 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 метрам, и эффектами затенения. Изменение уровня сигнала показывает частотную избирательность профиля задержки по частотному спектру.
Создайте битовый поток для использования при формировании формы сигнала формата 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. Используйте функция для добавления шума канала на уровне SNR 10 дБ.awgn
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 метрам, и эффектами затенения. Изменение уровня сигнала показывает частотную избирательность профиля задержки по частотному спектру.
Создайте битовый поток для использования при формировании формы сигнала формата 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. Используйте функция для добавления шума канала на уровне SNR 10 дБ.awgn
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 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. Используйте функция для добавления шума канала на уровне SNR 10 дБ.awgn
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 г.
wlanHTConfig | wlanNonHTConfig | wlanTGacChannel | wlanTGnChannel | wlanVHTConfig