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