Эта модель показывает, как использовать блок SISO Fading Channel из Communications Toolbox™ для симуляции многолучевых каналов Релея и Райса с замираниями, которые являются полезными моделями явлений реального мира в беспроводной связи. Эти явления включают многолучевые эффекты рассеяния, дисперсию во времени и доплеровские сдвиги, которые возникают из-за относительного движения между передатчиком и приемником. Модель также показывает, как визуализировать характеристики канала, такие как импульсная и частотные характеристики, Допплеровский спектр и усиления компонента.
Модель примера моделирует передачу QPSK по многолучевому Каналу с релеевским замиранием и многолучевому каналу Райса с замираниями. Оба блоков канала сконфигурированы из библиотечного блока SISO с замираниями канала. Вы можете управлять параметрами передачи и канала через переменные рабочей области.
modelname = 'commmultipathfading'; rayleighBlock = [modelname '/Rayleigh Channel']; ricianBlock = [modelname '/Rician Channel']; rayleighCD = [modelname '/Rayleigh Constellation Diagram']; pathGainBlock = [modelname '/Path Gains (dB)']; open_system(modelname);
Следующие переменные управляют блоком «Bit Source». По умолчанию скорость передачи битов составляет 10M b/s (5M sym/s), и каждый переданная система координат имеет длину 2000 бит (1000 символов).
bitRate % Transmission rate (b/s) bitsPerFrame % Number of bits per frame
bitRate = 10000000 bitsPerFrame = 2000
Следующие переменные управляют блоками канала Релея и Райса с замираниями. По умолчанию каналы моделируются как четыре пути с замираниями, каждый из которых представляет собой кластер многолучевых компонентов, принятых с одной и той же задержкой.
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
Следующие переменные применяются к блоку канала Райса с замираниями. Доплеровский сдвиг компонента линии зрения обычно меньше, чем максимальный доплеровский сдвиг 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%'.
Для той же спецификации канала теперь мы отображаем спектр Доплера для его первого дискретного пути, который является статистической характеристикой процесса затухания. Блок канала производит периодические измерения Допплеровского спектра (синие звезды). Со временем с большим количеством выборок, обработанных блоком, среднее значение этого измерения лучше аппроксимирует теоретический Допплеровский спектр (желтая кривая).
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);
Блок канала Райса с замираниями моделирует распространение линии зрения в дополнение к диффузному многолучевому рассеянию. Это приводит к меньшему изменению величины усиления пути. Чтобы сравнить изменения между каналами Релея и Райса, мы повторно конфигурируем блоки канала, чтобы смоделировать задержку с одним путем и использовать блок Time Scope, чтобы просмотреть их усиления пути с течением времени. Обратите внимание, что величина колеблется в области значений приблизительно 5 дБ для канала Райса с замираниями по сравнению с приблизительно 15 дБ для канала с релеевским замиранием. Для канала Райса с замираниями это изменение будет дополнительно уменьшаемо путем увеличения 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);