comm.RicianChannel

Пропустите входной сигнал через многопутевой Rician, исчезающий канал

Описание

comm.RicianChannel Система object™ пропускает входной сигнал через многопутевой Rician, исчезающий канал. Для получения дополнительной информации об исчезающей обработке модели смотрите раздел Methodology for Simulating Multipath Fading Channels.

Пропускать входной сигнал через многопутевой Rician, исчезающий канал:

  1. Создайте comm.RicianChannel объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?

Создание

Описание

ricianchan = comm.RicianChannel создает выборочный частотой или плоский частотой многопутевой Rician, исчезающий Системный объект канала. Этот объект пропускает действительный или комплексный входной сигнал через многопутевой канал, чтобы получить поврежденный каналом сигнал.

пример

ricianchan = comm.RicianChannel(Name,Value) свойства наборов с помощью одних или нескольких аргументов name-value. Например, 'SampleRate',2 устанавливает частоту дискретизации входного сигнала на 2.

Свойства

развернуть все

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

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

Частота дискретизации входного сигнала в герц в виде положительной скалярной величины.

Типы данных: double

Дискретная задержка пути в секундах в виде скалярного или вектора-строки.

  • Когда вы устанавливаете PathDelays к скаляру канал является плоской частотой.

  • Когда вы устанавливаете PathDelays к вектору канал является выборочной частотой.

PathDelays и AveragePathGains свойства должны быть той же длиной.

Типы данных: double

Средние усиления дискретных путей в децибелах в виде скалярного или вектора-строки. AveragePathGains и PathDelays свойства должны быть той же длиной.

Типы данных: double

Нормируйте средние усиления пути в виде одного из этих логических значений:

  • 1 TRUE) — Процессы исчезновения нормированы так, чтобы общая степень усилений пути, усредняемых в зависимости от времени, составила 0 дБ.

  • 0 ложь) — Общая степень усилений пути не нормирована.

AveragePathGains свойство задает средние степени усилений пути.

Типы данных: логический

K-фактор Rician, исчезающего канал в виде положительной скалярной величины или 1 NP вектором из неотрицательных значений. N P является количеством дискретных задержек пути, заданных PathDelays свойство.

  • Когда вы устанавливаете KFactor к скаляру первый дискретный путь является процессом исчезновения Rician с K-фактором Rician KFactor. Любые остающиеся дискретные пути являются независимыми процессами Релеевского замирания.

  • Когда вы устанавливаете KFactor к вектору, дискретный путь, соответствующий положительному элементу KFactor вектор является процессом исчезновения Rician с K-фактором Rician, заданным тем элементом. Дискретный путь, соответствующий любым элементам с нулевым знаком KFactor вектор является процессами Релеевского замирания. По крайней мере один элемент должен быть ненулевым.

Типы данных: double

Эффекты Доплера для компонентов угла обзора многопутевого Rician, исчезающего канал в виде скалярного или вектора-строки. Модули находятся в герц. Это свойство должно быть одного размера с KFactor свойство.

  • Когда вы устанавливаете DirectPathDopplerShift к скаляру значение представляет эффект Доплера компонента угла обзора первого дискретного пути. Этот путь показывает процесс исчезновения Rician.

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

Типы данных: double

Начальная фаза для компонентов угла обзора многопутевого Rician, исчезающего канал в виде скалярного или вектора-строки. Модули исчисляются в радианах. Это свойство должно быть одного размера с KFactor свойство.

  • Когда вы устанавливаете DirectPathInitialPhase к скаляру значение представляет начальную фазу компонента угла обзора первого дискретного пути. Этот путь показывает процесс исчезновения Rician.

  • Когда вы устанавливаете DirectPathInitialPhase к вектору-строке, дискретный путь, соответствующий положительному элементу KFactor вектор является процессом исчезновения Rician. Соответствующий элемент DirectPathInitialPhase задает начальную фазу компонента угла обзора того дискретного пути.

Типы данных: double

Максимальный эффект Доплера для всех путей к каналу в виде неотрицательного скаляра. Модули находятся в герц.

Максимальный предел эффекта Доплера применяется к каждому пути к каналу. Когда вы устанавливаете это свойство на 0, канал остается статическим для целого входа. Можно использовать reset возразите функции, чтобы сгенерировать новую реализацию канала. MaximumDopplerShift значение свойства должно быть меньшим, чем SampleRate/10/fc для каждого пути. f c является фактором частоты среза пути. Для большинства Доплеровских типов спектра значение f c равняется 1. Для Гауссовых и bi-Gaussian Доплеровских типов спектра значение f c зависит от Доплеровских полей структуры спектра. Для получения дополнительной информации о том, как f c задан, смотрите раздел Cutoff Frequency Factor.

Типы данных: double

Доплеровский спектр формирует для всех путей к каналу в виде Доплеровской структуры спектра или 1 NP массивом ячеек Доплеровских структур спектра. Этими Доплеровскими структурами спектра должны быть выходные параметры формы, возвращенной из doppler функция. N P является количеством дискретных путей к задержке, заданных PathDelays свойство. MaximumDopplerShift свойство задает максимальное значение эффекта Доплера что DopplerSpectrum свойство разрешает, когда вы задаете Доплеровский спектр.

  • Когда вы устанавливаете DopplerSpectrum к одной Доплеровской структуре спектра все пути имеют заданный Доплеровский спектр того же самого.

  • Когда вы устанавливаете DopplerSpectrum к массиву ячеек Доплеровских структур спектра каждому пути задала Доплеровский спектр соответствующая структура в массиве ячеек.

Задайте опции для типа спектра при помощи specType введите к doppler функция. Если вы устанавливаете FadingTechnique свойство к 'Sum of sinusoids', необходимо установить DopplerSpectrum к doppler('Jakes').

Зависимости

Чтобы включить это свойство, установите MaximumDopplerShift свойство к положительной скалярной величине.

Типы данных: struct | cell

Фильтрация канала в виде одного из этих логических значений:

  • 1 TRUE) — Канал принимает входной сигнал и производит отфильтрованный выходной сигнал.

  • 0 ложь) — Объект не принимает входной сигнал, не производит отфильтрованного выходного сигнала, и выходные параметры только образовывают канал усиления пути. Необходимо задать длительность процесса исчезновения при помощи NumSamples свойство.

Типы данных: логический

Выведите усиления пути к каналу в виде логического 0 ложь) или 1 TRUE). Установите это свойство на true выводить усиления пути к каналу базового процесса исчезновения.

Зависимости

Чтобы включить это свойство, установите ChannelFiltering свойство к true.

Типы данных: логический

Количество отсчетов используется для длительности процесса исчезновения в виде неотрицательного целого числа.

Настраиваемый: да

Зависимости

Чтобы включить это свойство, установите ChannelFiltering свойство к false.

Типы данных: double

Выходные данные усиления пути вводят в виде 'double' или 'single'.

Зависимости

Чтобы включить это свойство, установите ChannelFiltering свойство к false.

Типы данных: char | string

Модель канала исчезающий метод в виде 'Filtered Gaussian noise' или 'Sum of sinusoids'.

Типы данных: char | string

Количество синусоид раньше моделировало процесс исчезновения в виде положительного целого числа.

Зависимости

Чтобы включить это свойство, установите FadingTechnique свойство к 'Sum of sinusoids'.

Типы данных: double

Источник, чтобы управлять временем начала процесса исчезновения в виде 'Property' или 'Input port'.

  • Когда вы устанавливаете InitialTimeSource к 'Property', установите начальное смещение времени при помощи InitialTime свойство.

  • Когда вы устанавливаете InitialTimeSource к 'Input port', задайте время начала процесса исчезновения при помощи inittime входной параметр. Входное значение может измениться в последовательных вызовах объекта.

Зависимости

Чтобы включить это свойство, установите FadingTechnique свойство к 'Sum of sinusoids'.

Типы данных: char | string

Начальное время возмещено для исчезающей модели в секундах в виде неотрицательного скаляра.

Когда mod(InitialTime/SampleRate) является ненулевым, начальное смещение времени окружено к самой близкой демонстрационной позиции.

Зависимости

Чтобы включить это свойство, установите FadingTechnique свойство к 'Sum of sinusoids' и InitialTimeSource свойство к 'Property'.

Типы данных: double

Источник потока случайных чисел в виде 'Global stream' или 'mt19937ar with seed'.

  • Когда вы задаете 'Global stream', объект использует текущий глобальный поток случайных чисел для нормально распределенной генерации случайных чисел. В этом случае, reset возразите, что функция сбрасывает только фильтры.

  • Когда вы задаете 'mt19937ar with seed', объект использует mt19937ar алгоритм для нормально распределенной генерации случайных чисел. В этом случае, reset возразите, что функция сбрасывает фильтры и повторно инициализирует поток случайных чисел к значению Seed свойство.

Типы данных: char | string

Начальный seed mt19937ar потокового алгоритма генератора случайных чисел в виде неотрицательного целого числа. Когда вы вызываете reset возразите функции, она повторно инициализирует mt19937ar поток случайных чисел к Seed значение.

Зависимости

Чтобы включить это свойство, установите RandomStream свойство к 'mt19937ar with seed'.

Типы данных: double

Визуализация канала в виде 'Off', 'Impulse response', 'Frequency response', 'Impulse and frequency responses', или 'Doppler spectrum'. Для получения дополнительной информации смотрите раздел Channel Visualization.

Зависимости

Чтобы включить это свойство, установите FadingTechnique свойство к 'Filtered Gaussian noise'.

Типы данных: char | string

Путь, используемый для отображения Доплеровского спектра в виде положительного целого числа в области значений [1, N P]. N P является количеством дискретных путей к задержке, заданных PathDelays свойство. Используйте это свойство выбрать дискретный путь, используемый в построении Доплеровского графика спектра.

Зависимости

Чтобы включить это свойство, установите Visualization свойство к 'Doppler spectrum'.

Типы данных: double

Процент выборок, чтобы отобразиться в виде '25%', '10%', '50%', или '100%'. Увеличение процента улучшает точность отображения за счет скорости симуляции.

Зависимости

Чтобы включить это свойство, установите Visualization свойство к 'Impulse response', 'Frequency response', или 'Impulse and frequency responses'.

Типы данных: char | string

Использование

Описание

пример

y = ricianchan(x) входной сигнал фильтров x через многопутевой Rician, исчезающий канал и, возвращает результат в y.

Чтобы включить этот синтаксис, установите ChannelFiltering свойство к true.

пример

y = ricianchan(x,inittime) задает время начала для процесса исчезновения.

Чтобы включить этот синтаксис, установите FadingTechnique свойство к 'Sum of sinusoids' и InitialTimeSource свойство к 'Input port'.

пример

[y,pathgains] = ricianchan(___) также возвращает усиления пути к каналу базового многопутевого процесса исчезновения Rician в pathgains использование любой из комбинаций входных аргументов в предыдущих синтаксисах.

Чтобы включить этот синтаксис, установите PathGainsOutputPort свойство к true.

пример

pathgains = ricianchan() возвращает усиления пути к каналу базового процесса исчезновения. В этом случае канал не требует никакого входного сигнала и действует как источник усилений пути.

Чтобы включить этот синтаксис, установите ChannelFiltering свойство к false.

pathgains = ricianchan(inittime) возвращает усиления пути к каналу базового процесса исчезновения, начинающегося в заданное начальное время. В этом случае канал не требует никакого входного сигнала и действует как источник усилений пути.

Чтобы включить этот синтаксис, установите FadingTechnique свойство к 'Sum of sinusoids', InitialTimeSource свойство к 'Input port', и ChannelFiltering свойство к false.

Входные параметры

развернуть все

Входной сигнал в виде вектора S-1 N, где N S является количеством отсчетов.

Типы данных: single | double
Поддержка комплексного числа: Да

Начальное время возмещено в секундах в виде неотрицательного скаляра.

Когда mod(inittime/SampleRate) является ненулевым, начальное смещение времени окружено к самой близкой демонстрационной позиции.

Типы данных: single | double

Выходные аргументы

развернуть все

Выходной сигнал, возвращенный как вектор S-1 N из комплексных чисел с той же точностью данных как входной сигнал x. N S является количеством отсчетов.

Выходные path усиления, возвращенные как матрица S-by-NP N. N S является количеством отсчетов. N P является количеством дискретных путей к задержке, заданных PathDelays свойство. pathgains содержит комплексные числа.

Когда вы устанавливаете ChannelFiltering свойство к false, тип данных этого выхода имеет ту же точность как входной сигнал x. Когда вы устанавливаете ChannelFiltering свойство к true, тип данных этого выхода задан OutputDataType свойство.

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

infoХарактеристическая информация об исчезающем объекте канала
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

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

Создайте Системный объект модулятора PSK, чтобы модулировать случайным образом сгенерированные данные.

pskModulator = comm.PSKModulator;
insig = randi([0,pskModulator.ModulationOrder-1],1024,1);
channelInput = pskModulator(insig);

Создайте многопутевой Rician, исчезающий Системный объект канала, задав метод генерации случайных чисел как my19937ar алгоритм и seed случайных чисел как 73.

ricianchan = comm.RicianChannel( ...
    'SampleRate',1e6, ...
    'PathDelays',[0.0 0.5 1.2]*1e-6, ...
    'AveragePathGains',[0.1 0.5 0.2], ...
    'KFactor',2.8, ...
    'DirectPathDopplerShift',5.0, ...
    'DirectPathInitialPhase',0.5, ...
    'MaximumDopplerShift',50, ...
    'DopplerSpectrum',doppler('Bell', 8), ...
    'RandomStream','mt19937ar with seed', ...
    'Seed',73, ...
    'PathGainsOutputPort',true);

Отфильтруйте модулируемые данные при помощи многопутевого Rician, исчезающего Системный объект канала.

[RicianChanOut1,RicianPathGains1] = ricianchan(channelInput);

Установите Системный объект использовать глобальный поток для генерации случайных чисел.

release(ricianchan);
ricianchan.RandomStream = 'Global stream';

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

rng(73)

Отфильтруйте модулируемые данные при помощи многопутевого Rician, исчезающего Системный объект канала снова.

[RicianChanOut2,RicianPathGains2] = ricianchan(channelInput);

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

isequal(RicianChanOut1,RicianChanOut2)
ans = logical
   1

isequal(RicianPathGains1,RicianPathGains2)
ans = logical
   1

Отобразите импульсные и частотные характеристики выборочного частотой многопутевого Rician, исчезающего канал, который сконфигурирован, чтобы отключить фильтрацию канала.

Задайте переменные симуляции. Задайте задержки пути и усиления при помощи настройки B-канала пешехода ITU.

fs = 3.84e6;                                  % Sample rate in Hz
pathDelays = [0 200 800 1200 2300 3700]*1e-9; % in seconds
avgPathGains = [0 -0.9 -4.9 -8 -7.8 -23.9];   % dB
kfact = 10;                                   % Rician K-factor
fD = 50;                                      % Max Doppler shift in Hz

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

ricianChan = comm.RicianChannel('SampleRate',fs, ...
    'PathDelays',pathDelays, ...
    'AveragePathGains',avgPathGains, ...
    'KFactor',kfact, ...
    'MaximumDopplerShift',fD, ...
    'ChannelFiltering',false, ...
    'Visualization','Impulse and frequency responses');

Визуализируйте ответ канала путем выполнения многопутевого Rician, исчезающего Системный объект канала без входного сигнала. График импульсной характеристики позволяет вам идентифицировать отдельные пути и их соответствующие коэффициенты фильтра. График частотной характеристики показывает выборочную частотой природу B-канала пешехода ITU.

ricianChan();

Figure Frequency Response contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object contains 2 objects of type text, line. This object represents Channel 1.

Figure Impulse Response contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object contains 3 objects of type stem, text. These objects represent Path Gain, Channel Filter Coefficient.

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

Установите свойства канала.

fs = 1000;               % Sample rate in Hz
pathDelays = [0 2.5e-3]; % In seconds
pathPower = [0 -6];      % In dB
fD = 5;                  % Maximum Doppler shift in Hz
ns = 1000;               % Number of samples
nsdel = 100;             % Number of samples for delayed paths

Задайте непрерывный отрезок времени и три прерывистых сегмента времени, по которым можно построить и просмотреть ответ канала. Просмотрите непрерывный ответ канала с 1000 выборками, которые запускают во время 0 и три ответа канала с 100 выборками, которые время от времени запускаются 0.1, 0.4, и 0,7 секунды, соответственно.

to0 = 0.0;
to1 = 0.1;
to2 = 0.5;
to3 = 0.8;
t0 = (to0:ns-1)/fs;      % Transmission 0
t1 = to1+(0:nsdel-1)/fs; % Transmission 1
t2 = to2+(0:nsdel-1)/fs; % Transmission 2
t3 = to3+(0:nsdel-1)/fs; % Transmission 3

Создайте плоский частотой многопутевой Rician, исчезающий Системный объект, задав частоту дискретизации на 1 000 Гц, сумма синусоид, исчезающая метод, отключенная фильтрация канала и количество отсчетов, чтобы просмотреть. Задайте начальное значение так, чтобы результаты могли быть повторены. Используйте InitialTime по умолчанию установка свойства так, чтобы исчезающий канал был симулирован со времени 0.

ricianchan1 = comm.RicianChannel('SampleRate',fs, ...
    'MaximumDopplerShift',fD, ...
    'RandomStream','mt19937ar with seed', ...
    'Seed',17, ...
    'FadingTechnique','Sum of sinusoids', ...
    'ChannelFiltering',false, ...
    'NumSamples',ns);

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

ricianchan2 = clone(ricianchan1);
ricianchan2.InitialTimeSource = 'Input port';
ricianchan2.NumSamples = nsdel;

Сохраните усиление пути выход для непрерывного ответа канала при помощи ricianchan1 возразите и для прерывистых задержанных ответов канала при помощи ricianchan2 объект с начальными смещениями времени, обеспеченными как входные параметры.

pg0 = ricianchan1();
pg1 = ricianchan2(to1);
pg2 = ricianchan2(to2);
pg3 = ricianchan2(to3);

Сравните количество отсчетов, обработанное двумя каналами при помощи info объектная функция. ricianchan1 объект обработал 1 000 выборок, в то время как ricianhan2 объект обработал только 300 выборок.

G = info(ricianchan1);
H = info(ricianchan2);
[G.NumSamplesProcessed H.NumSamplesProcessed]
ans = 1×2

        1000         300

Преобразуйте усиления пути в децибелы.

pathGain0 = 20*log10(abs(pg0));
pathGain1 = 20*log10(abs(pg1));
pathGain2 = 20*log10(abs(pg2));
pathGain3 = 20*log10(abs(pg3));

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

plot(t0,pathGain0,'r--')
hold on
plot(t1,pathGain1,'b')
plot(t2,pathGain2,'b')
plot(t3,pathGain3,'b')
grid
xlabel('Time (s)')
ylabel('Path Gain (dB)')
legend('Continuous','Discontinuous','location','nw')
title('Continuous and Discontinuous Transmission Path Gains')

Figure contains an axes object. The axes object with title Continuous and Discontinuous Transmission Path Gains contains 4 objects of type line. These objects represent Continuous, Discontinuous.

Воспроизведите многопутевой Rician, исчезающий канал выход при помощи ChannelFilterCoefficients свойство возвращено info объектная функция comm.RicianChannel Системный объект.

Создайте многопутевой Rician, исчезающий Системный объект канала, задав два пути. Сгенерируйте данные, чтобы пройти через канал.

ricianchan = comm.RicianChannel( ...
    'SampleRate',1000, ...
    'PathDelays',[0 1e-3], ...
    'AveragePathGains',[0 -2], ...
    'PathGainsOutputPort',true)
ricianchan = 
  comm.RicianChannel with properties:

                SampleRate: 1000
                PathDelays: [0 1.0000e-03]
          AveragePathGains: [0 -2]
        NormalizePathGains: true
                   KFactor: 3
    DirectPathDopplerShift: 0
    DirectPathInitialPhase: 0
       MaximumDopplerShift: 1.0000e-03
           DopplerSpectrum: [1x1 struct]
          ChannelFiltering: true
       PathGainsOutputPort: true

  Show all properties

data = randi([0 1],600,1);

Передайте данные через канал. Присвойте ChannelFilterCoefficients значение свойства к переменной coeff.

[chanout1,pg] = ricianchan(data);
chaninfo = info(ricianchan)
chaninfo = struct with fields:
           ChannelFilterDelay: 0
    ChannelFilterCoefficients: [2x2 double]
          NumSamplesProcessed: 600

coeff = chaninfo.ChannelFilterCoefficients;

Вычислите дробный задержанный входной сигнал в местоположениях задержки пути, сохраненных в coeff.

Np = length(ricianchan.PathDelays);
fracdelaydata = zeros(size(data,1),Np);
for ii = 1:Np
    fracdelaydata(:,ii) = filter(coeff(ii,:),1,data);
end

Примените усиления пути и суммируйте результаты для всех путей.

chanout2 = sum(pg .* fracdelaydata,2);

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

isequal(chanout1,chanout2)
ans = logical
   1

Вычислите и постройте эмпирическую и теоретическую функцию плотности вероятности (PDF) для канала Rician с одним путем.

Инициализируйте параметры и создайте Системный объект канала Rician, который не применяет фильтрацию канала.

Ns = 1.92e6;
Rs = 1.92e6;
dopplerShift = 2000;
KFactor = -3;                  % In dB
KFactorLin = 10.^(KFactor/10); % Linear units

chan = comm.RicianChannel( ...
    'SampleRate',Rs, ...
    'PathDelays',0, ...
    'KFactor',KFactorLin, ...
    'AveragePathGains',0, ...
    'MaximumDopplerShift',dopplerShift, ...
    'ChannelFiltering',false, ...
    'NumSamples',Ns, ...
    'FadingTechnique','Sum of sinusoids');

Вычислите и постройте эмпирическую и теоретическую PDF для канала Rician.

figure;
hold on;

% Empirical PDF plot
gain = chan();
pd = fitdist(abs(gain),'Kernel','BandWidth',.01);
r = 0:.1:3;
y = pdf(pd,r);
plot(r,y)

% Theoretical PDF plot
s = sqrt(KFactorLin)/sqrt(KFactorLin+1);
sigma = sqrt(1/2)/sqrt(KFactorLin+1);
exp_pdf_amplitude = pdf('Rician',r,s,sigma);
plot(r,exp_pdf_amplitude')
legend('Empirical','Theoretical')
title('Empirical and Theoretical PDF Curves')

Figure contains an axes object. The axes object with title Empirical and Theoretical PDF Curves contains 2 objects of type line. These objects represent Empirical, Theoretical.

Вычислите и постройте эмпирическую и теоретическую кумулятивную функцию распределения (CDF) для канала Rician с одним путем.

Инициализируйте параметры и создайте Системный объект канала Rician, который не выполняет фильтрацию канала.

Ns = 1.92e6;
Rs = 1.92e6;
dopplerShift = 2000;
KFactor = -3;                  % In dB
KFactorLin = 10.^(KFactor/10); % Linear units

chan = comm.RicianChannel( ...
    'SampleRate',Rs, ...
    'PathDelays',0, ...
    'KFactor',KFactorLin, ...
    'AveragePathGains',0, ...
    'MaximumDopplerShift',dopplerShift, ...
    'ChannelFiltering',false, ...
    'NumSamples',Ns, ...
    'FadingTechnique','Sum of sinusoids');

Вычислите и постройте эмпирический и теоретический CDF для канала Rician. Вычислите эмпирический CDF при помощи усилений пути.

% Empirical CDF plot
g = chan();
ecdf(abs(g));
hold on;

% Theoretical CDF plot
r = 0:.1:3;
s = sqrt(KFactorLin)/sqrt(KFactorLin+1);
sigma = sqrt(1/2)/sqrt(KFactorLin+1);
exp_cdf_amplitude = cdf('Rician',r,s,sigma);
plot(r,exp_cdf_amplitude')
legend('Emp','Theor')
title('Empirical and Theoretical CDF Curves')

Figure contains an axes object. The axes object with title Empirical and Theoretical CDF Curves contains 2 objects of type stair, line. These objects represent Emp, Theor.

Больше о

развернуть все

Ссылки

[1] Oestges, Клод и Бруно Клерккс. Радиосвязи MIMO: От Реального Распространения до Пространственно-временного Проекта Кода. 1-й редактор Бостон, MA: Elsevier, 2007.

[2] Correia, Луис М. и европейское Сотрудничество в области Научно-технического Исследования (Организация), редакторы Мобильные Широкополосные Мультимедийные Сети: Методы, Модели и Инструменты для 4G. 1-й редактор Амстердам  ; Бостон: Нажатие Elsevier/Academic, 2006.

[3] Kermoal, J.P., Л. Шумахер, К.И. Педерсен, П. Модженсен и Ф. Фредериксен. “Стохастическая Модель Канала Радио MIMO с Экспериментальной Валидацией”. Журнал IEEE на Выбранных областях в Коммуникациях 20, № 6 (август 2002): 1211–26. https://doi.org/10.1109/JSAC.2002.801223.

[4] Jeruchim, Мишель К., Филип Балабан и К. Сэм Шэнмугэн. Симуляция Систем связи. Второй выпуск. Бостон, MA: Спрингер УС, 2000.

[5] Patzold, M., Cheng-Сянцзян Ван и Б. Хогстэд. “Две Новых Суммы основанных на синусоидах Методов для Эффективной Генерации Нескольких Некоррелированых Форм волны Релеевского замирания”. Транзакции IEEE на Радиосвязях 8, № 6 (июнь 2009): 3122–31. https://doi.org/10.1109/TWC.2009.080769.

Расширенные возможности

Введенный в R2013b