Многопутевой исчезающий канал

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

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

Модель в качестве примера симулирует передачу QPSK по многопутевому Каналу с релеевским замиранием и многопутевому Rician, исчезающему канал. Оба блоки канала сконфигурированы от 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, бит/с (5M sym/s) и каждый переданный кадр 2 000 битов длиной (1 000 символов).

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

    10000000


bitsPerFrame =

        2000

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

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, исчезающему блок канала. Эффект Доплера компонента угла обзора обычно меньше, чем максимальный эффект Доплера (выше) и зависит от направления мобильного телефона перемещения относительно направления пути угла обзора. 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 параметр к 'Импульсной характеристике' показывает bandlimited импульсную характеристику (желтые круги). Визуализация также показывает задержки и величины базовых исчезающих усилений пути (розовые основы) кластеризируемый вокруг пика импульсной характеристики. Обратите внимание на то, что усиления пути не равняются Average path gains (dB) значение параметров, потому что эффект Доплера заставляет усиления колебаться в зависимости от времени.

tic
set_param(rayleighBlock, 'Visualization', 'Impulse response');
set_param(modelname, 'SimulationCommand', 'start');
set_param(modelname, 'SimulationCommand', 'pause');
t1 = toc;
fprintf('g1963419 Instrumentation 1-of-9: %f seconds\n', t1);
g1963419 Instrumentation 1-of-9: 2.905936 seconds

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

Точно так же установка Channel visualization параметр к 'Частотной характеристике' показывает частотную характеристику канала. Можно также установить Channel visualization к 'Импульсным и частотным характеристикам', чтобы отобразить и импульсные и частотные характеристики рядом друг с другом. Вы видите, что уровень мощности канала варьируется через целую пропускную способность.

tic
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');
t2 = toc;
fprintf('g1963419 Instrumentation 2-of-9: %f seconds\n', t2);
g1963419 Instrumentation 2-of-9: 3.381414 seconds

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

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

tic
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');
t3 = toc;
fprintf('g1963419 Instrumentation 3-of-9: %f seconds\n', t3);

while get_param(modelname, 'SimulationTime') < 2
    tic
    set_param(modelname, 'SimulationCommand', 'continue');
    pause(1);
    set_param(modelname, 'SimulationCommand', 'pause');
    t4 = toc;
    fprintf('\tg1963419 Instrumentation 4-of-9: %f seconds\n', t4);
end
g1963419 Instrumentation 3-of-9: 2.327418 seconds
	g1963419 Instrumentation 4-of-9: 1.017118 seconds
	g1963419 Instrumentation 4-of-9: 1.016783 seconds
	g1963419 Instrumentation 4-of-9: 1.010452 seconds
	g1963419 Instrumentation 4-of-9: 1.015471 seconds
	g1963419 Instrumentation 4-of-9: 1.017118 seconds
	g1963419 Instrumentation 4-of-9: 1.011373 seconds
	g1963419 Instrumentation 4-of-9: 1.010845 seconds
	g1963419 Instrumentation 4-of-9: 1.016707 seconds
	g1963419 Instrumentation 4-of-9: 1.013793 seconds
	g1963419 Instrumentation 4-of-9: 1.017164 seconds
	g1963419 Instrumentation 4-of-9: 1.014444 seconds
	g1963419 Instrumentation 4-of-9: 1.021644 seconds
	g1963419 Instrumentation 4-of-9: 1.013202 seconds
	g1963419 Instrumentation 4-of-9: 1.028909 seconds
	g1963419 Instrumentation 4-of-9: 1.013345 seconds
	g1963419 Instrumentation 4-of-9: 1.015105 seconds
	g1963419 Instrumentation 4-of-9: 1.015374 seconds
	g1963419 Instrumentation 4-of-9: 1.016129 seconds
	g1963419 Instrumentation 4-of-9: 1.016212 seconds
	g1963419 Instrumentation 4-of-9: 1.016134 seconds
	g1963419 Instrumentation 4-of-9: 1.019734 seconds
	g1963419 Instrumentation 4-of-9: 1.019984 seconds
	g1963419 Instrumentation 4-of-9: 1.015683 seconds
	g1963419 Instrumentation 4-of-9: 1.014896 seconds

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

tic
set_param(modelname, 'SimulationCommand', 'stop');
maxDopplerShift = 5;
set_param(rayleighBlock, 'Visualization', 'Off');
set_param(rayleighCD, 'openScopeAtSimStart', 'on')
sim(modelname, 0.2);
t5 = toc;
fprintf('g1963419 Instrumentation 5-of-9: %f seconds\n', t5);
g1963419 Instrumentation 5-of-9: 3.987486 seconds

Узкополосная связь или плоское частотой исчезновение

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

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

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

     1000000

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

tic
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');
t6 = toc;
fprintf('g1963419 Instrumentation 6-of-9: %f seconds\n', t6);
g1963419 Instrumentation 6-of-9: 5.226513 seconds

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

tic
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');
t7 = toc;
fprintf('g1963419 Instrumentation 7-of-9: %f seconds\n', t7);
g1963419 Instrumentation 7-of-9: 4.771171 seconds

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

tic
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);
t8 = toc;
fprintf('g1963419 Instrumentation 8-of-9: %f seconds\n', t8);
g1963419 Instrumentation 8-of-9: 1.231638 seconds

Исчезновение Rician

Рикиэн, исчезающий распространение угла обзора моделей блока канала, кроме того, чтобы рассеять многопутевое рассеивание. Это приводит к меньшему изменению величины усилений пути. Чтобы сравнить изменение между каналами Рейли и Рикиэна, мы реконфигурировали блоки канала, чтобы смоделировать задержку одно пути и использовать блок Time Scope, чтобы просматривать их усиления пути в зависимости от времени. Обратите внимание на то, что величина колеблется приблизительно область значений на 5 дБ для Рикиэна, исчезающего канал, по сравнению с аппроксимированными 15 дБ для Канала с релеевским замиранием. Для Рикиэна, исчезающего канал, это изменение далее уменьшалось бы путем увеличения K-фактора (в настоящее время набор к 10).

tic
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);
t9 = toc;
fprintf('g1963419 Instrumentation 9-of-9: %f seconds\n', t9);
g1963419 Instrumentation 9-of-9: 2.087564 seconds

% Cleanup
close_system(modelname, 0);