exponenta event banner

Многолучевой канал замирания в Simulink

Эта модель показывает, как использовать блок SISO Fading Channel из Communications Toolbox™ для моделирования многолучевых Rayleigh и Rician fading каналов, которые являются полезными моделями реальных явлений в беспроводной связи. Эти явления включают в себя эффекты многолучевого рассеяния, временную дисперсию и доплеровские сдвиги, которые возникают в результате относительного движения между передатчиком и приемником. Модель также показывает, как визуализировать характеристики канала, такие как импульсные и частотные характеристики, доплеровский спектр и коэффициенты усиления компонентов.

Модель и параметры

Примерная модель моделирует передачу QPSK по многолучевому каналу рэлеевского замирания и многолучевому каналу рисикского замирания. Оба блока каналов конфигурируются из блока библиотеки SISO Fading Channel. Параметры передачи и канала можно управлять с помощью переменных рабочего пространства.

modelname     = 'commmultipathfading';
rayleighBlock = [modelname '/Rayleigh Channel'];
ricianBlock   = [modelname '/Rician Channel'];
rayleighCD    = [modelname '/Rayleigh Constellation Diagram'];
pathGainBlock = [modelname '/Path Gains (dB)'];
open_system(modelname);

Следующие переменные управляют блоком «Источник битов». По умолчанию скорость передачи битов равна 10M b/s (5M sym/s), и каждый передаваемый кадр имеет длину 2000 бит (1000 символов).

bitRate  % Transmission rate (b/s)
bitsPerFrame  % Number of bits per frame
bitRate =

    10000000


bitsPerFrame =

        2000

Следующие переменные управляют блоками Rayleigh и Rician fading channel. По умолчанию каналы моделируются как четыре пути замирания, каждый из которых представляет кластер многолучевых компонентов, принимаемых с приблизительно той же задержкой.

delayVector  % Discrete path delays (s)
gainVector  % Average path gains (dB)
delayVector =

   1.0e-06 *

         0    0.2000    0.4000    0.8000


gainVector =

     0    -3    -6    -9

По соглашению задержка первого тракта обычно устанавливается равной нулю. Для последующих путей задержка в 1 микросекунду соответствует разности в длине пути 300 м. В некоторых наружных многолучевых средах отраженные пути могут быть на несколько километров длиннее кратчайшего пути. При указанных выше задержках пути последний путь на 240 м длиннее кратчайшего пути и, таким образом, поступает на 0,8 микросекунды позже.

Вместе задержки тракта и средние коэффициенты усиления тракта определяют профиль задержки канала. Обычно средний тракт увеличивается экспоненциально с задержкой (т.е. значения дБ линейно затухают), но конкретный профиль задержки зависит от среды распространения. В каждом канальном блоке мы также включили опцию нормализации средних коэффициентов усиления тракта так, чтобы их средний коэффициент усиления был 0 дБ с течением времени.

Следующая переменная управляет максимальным доплеровским сдвигом, который вычисляется как v * f/c, где v - мобильная скорость, f - несущая частота, и c - скорость света. Максимальный доплеровский сдвиг по умолчанию в модели составляет 200 Гц, что соответствует мобильной скорости 65 миль/ч (30 м/с) и несущей частоте 2 ГГц.

maxDopplerShift  % Maximum Doppler shift of diffuse components (Hz)
maxDopplerShift =

   200

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

LOSDopplerShift  % Doppler shift of line-of-sight component (Hz)
KFactor  % Ratio of specular power to diffuse power (linear)
LOSDopplerShift =

   100


KFactor =

    10

Блок SISO Fading Channel может визуализировать импульсную характеристику канала, частотную характеристику и доплеровский спектр во время работы модели. Чтобы вызвать его, установите Channel visualization параметр для требуемой характеристики (характеристик) канала перед запуском модели. Обратите внимание, что включение визуализации канала может замедлить моделирование.

Широкополосное или частотно-селективное замирание

По умолчанию интервал задержки (0,8 микросекунды) канала больше, чем входной период символа QPSK (0,2 микросекунды), и вызывает значительные межсимвольные помехи (ISI). Таким образом, результирующая частотная характеристика канала не является плоской и может иметь глубокие замирания по полосе пропускания сигнала 10M Гц. Поскольку уровень мощности изменяется по ширине полосы частот, его называют частотно-избирательным замиранием.

Установка Channel visualization параметр блока канала «Импульсная характеристика» показывает полосовую импульсную характеристику (желтые круги). Визуализация также показывает задержки и величины усиления основного пути замирания (розовые стебли), сгруппированные вокруг пика импульсной характеристики. Обратите внимание, что коэффициенты усиления тракта не равны Average path gains (dB) значение параметра, поскольку эффект Доплера вызывает колебания коэффициентов усиления во времени.

set_param(rayleighBlock,'Visualization','Impulse response');
set_param(modelname,'SimulationCommand','start');
set_param(modelname,'SimulationCommand','pause');

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

Аналогично, установка Channel visualization параметр «Frequency response» показывает частотную характеристику канала. Также можно задать Channel visualization «Импульсные и частотные характеристики» для отображения импульсных и частотных характеристик бок о бок. Можно видеть, что уровень мощности канала изменяется по всей полосе пропускания.

set_param(modelname,'SimulationCommand','stop');
set_param(rayleighBlock,'Visualization','Frequency response');
set_param(rayleighBlock,'SamplesToDisplay','50%');
set_param(modelname,'SimulationCommand','start');
set_param(modelname,'SimulationCommand','pause');

Как показано на графиках визуализации канала, можно также управлять процентом входных выборок, которые должны быть визуализированы, путем изменения Percentage of samples to display параметр блока канала. Как правило, чем меньше процент, тем быстрее выполняется модель. Как только откроется рисунок визуализации, щелкните значок Playback и выключить Reduce Updates to Improve Performance или Reduce Plot Rate to Improve Performance возможность дальнейшего повышения точности отображения. Опция включена по умолчанию для более быстрого моделирования. Чтобы просмотреть отклик канала для каждой входной выборки, снимите этот флажок и установите Percentage of samples to display до '100%'.

MultipathFadingChannelSimulinkExample

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

set_param(modelname,'SimulationCommand','stop');
set_param(rayleighBlock,'Visualization','Doppler spectrum');
set_param(modelname,'StopTime','3');
set_param(modelname,'SimulationCommand','start');
set_param(modelname,'SimulationCommand','pause');

while get_param(modelname,'SimulationTime') < 2
    set_param(modelname,'SimulationCommand','continue');
    pause(1);
    set_param(modelname,'SimulationCommand','pause');
end

Открывая диаграмму созвездия, следующую за блоком канала Рэлея, можно увидеть влияние широкополосного замирания на сигнальное созвездие. Для замедления динамики канала в целях визуализации снижаем максимальный доплеровский сдвиг до 5 Гц. По сравнению с входным сигналом канала QPSK можно наблюдать явные искажения в выходном сигнале канала, обусловленные ISI от временной дисперсии широкополосного сигнала.

set_param(modelname,'SimulationCommand','stop');
maxDopplerShift = 5;
set_param(rayleighBlock,'Visualization','Off');
set_param(rayleighCD,'openScopeAtSimStart','on')
sim(modelname,0.2);

Узкополосное или частотно-плоское замирание

Когда ширина полосы слишком мала для сигнала, чтобы разрешить отдельные компоненты, частотная характеристика является приблизительно плоской из-за минимальной временной дисперсии и очень малой ISI от импульсной характеристики. Этот вид многолучевого замирания часто называют узкополосным замиранием или частотно-плоским замиранием.

Чтобы наблюдать эффект, мы теперь уменьшаем полосу пропускания сигнала с 10M b/s (5M sym/s) до 1M b/s (500K sym/s), так что интервал задержки (0,8 микросекунды) канала значительно меньше, чем период символа QPSK (2 микросекунды). Фактически все задержанные компоненты объединяются с одной задержкой (в данном случае с нулем).

bitRate = 1e6  % 50 kb/s transmission
bitRate =

     1000000

Мы можем визуально проверить это поведение узкополосного замирания, установив Channel visualization параметр «Импульсные и частотные характеристики» для блока канала Рэлея, а затем выполнение модели.

close_system(rayleighCD);
set_param(rayleighCD,'openScopeAtSimStart','off')
maxDopplerShift = 200; % Change back to the original value
set_param(rayleighBlock,'Visualization','Impulse and frequency responses');
set_param(modelname,'SimulationCommand','start');
set_param(modelname,'SimulationCommand','pause');

Для упрощения и ускорения моделирования узкополосные каналы замирания часто моделируются как однопутный канал замирания. То есть многолучевая модель замирания переопределяет узкополосный канал замирания. Следующие настройки соответствуют узкополосному каналу замирания с полностью плоской частотной характеристикой.

set_param(modelname,'SimulationCommand','stop');
delayVector = 0;  % Single fading path with zero delay
gainVector = 0;  % Average path gain of 0 dB
set_param(modelname,'SimulationCommand','start');
set_param(modelname,'SimulationCommand','pause');

Теперь мы возвращаемся к нашему исходному четырехпутному каналу замирания и наблюдаем, как узкополосное замирание вызывает затухание сигнала и поворот фазы, открывая диаграмму созвездия, следующую за блоком канала Рэлея. В дополнение к затуханию и вращению можно увидеть некоторое искажение сигнала из-за небольшого количества ISI в выходном сигнале канала. Искажение намного меньше, чем для широкополосного канала.

set_param(modelname,'SimulationCommand','stop');
delayVector = [0 2 4 8]*1e-7; % Change back to original value
gainVector = (0:-3:-9); % Change back to original value
maxDopplerShift = 5; % Reduce to slow down channel dynamics
set_param(rayleighBlock,'Visualization','Off');
set_param(rayleighCD,'openScopeAtSimStart','on')
sim(modelname,0.15);

Рисик угасающий

Rician fading channel block моделирует распространение линии визирования в дополнение к диффузному многолучевому рассеянию. Это приводит к меньшему изменению величины усиления траектории. Для сравнения вариаций между каналами Рэлея и Райсика, мы переконфигурируем блоки каналов, чтобы смоделировать однопутную задержку и использовать блок временной области для просмотра их выигрышей от пути во времени. Заметим, что величина колеблется в диапазоне приблизительно 5 дБ для канала замирания Rician по сравнению с приблизительно 15 дБ для канала замирания Rayleigh. Для канала с замиранием Rician эта вариация будет дополнительно уменьшена за счет увеличения коэффициента K (в настоящее время установленный равным 10).

delayVector = 0;  % Single fading path with zero delay
gainVector = 0;  % Average path gain of 0 dB
maxDopplerShift = 200; % Change back to the original value
close_system(rayleighCD);
set_param(rayleighCD,'openScopeAtSimStart','off')
set_param(pathGainBlock,'OpenAtSimulationStart','on');
sim(modelname,0.1);

Очистка

close_system(modelname,0);