comm.RicianChannel

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

Описание

comm.RicianChannel Система object™ пропускает входной сигнал через многопутевой Rician, исчезающий канал. Для получения дополнительной информации об исчезающей обработке модели смотрите Методологию для Симуляции Многопутевых Исчезающих Каналов.

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

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

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

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

Создание

Описание

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

пример

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

Нормируйте средние усиления пути к 0 дБ в виде логического 1 TRUE) или 0 ложь).

  • Когда NormalizePathGains true, процессы исчезновения нормированы так, чтобы общая степень усилений пути, усредняемых в зависимости от времени, составила 0 дБ.

  • Когда NormalizePathGains false, общая степень усилений пути не нормирована.

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

Rician K - фактор в виде положительной скалярной величины или вектора-строки из неотрицательных значений. Вектор должен быть той же длиной как PathDelays значение свойства.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Зависимости

Чтобы включить это свойство, установите MaximumDopplerShift свойство к положительному значению. MaximumDopplerShift свойство задает максимальное значение эффекта Доплера, разрешенное при определении Доплеровского спектра.

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

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

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

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

Зависимости

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

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

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

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

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

Зависимости

Это свойство применяется когда FadingTechnique свойство к 'Sum of sinusoids'.

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

Начальное смещение времени, в секундах, для исчезающей модели в виде неотрицательного скаляра. InitialTime должен быть больше времени окончания последней системы координат. InitialTime окружен к самой близкой демонстрационной позиции, когда это не кратное 1/SampleRate.

Зависимости

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

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

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

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

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

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

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

Зависимости

Это свойство применяется, когда вы устанавливаете RandomStream свойство к 'mt19937ar with seed'.

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

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

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

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

Описание

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

[y,pathgains] = rayleighchan(x) возвращает усиления пути к каналу базового многопутевого процесса исчезновения Rician в pathgains. Чтобы включить этот синтаксис устанавливает PathGainsOutputPort набор свойств к 1 TRUE).

___ = rayleighchan(x,itime) данные о передачах через многопутевой Rician, исчезающий канал, начинающийся в начальное время, заданы itime. Чтобы включить этот синтаксис, установите FadingTechnique свойство к 'Sum of sinusoids' и InitialTimeSource свойство к 'Input port'.

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

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

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

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

Начальное время в секундах в виде неотрицательного скаляра. itime введите должен быть больше времени окончания последней системы координат. Когда itime не кратное 1/SampleRate, это окружено к самой близкой демонстрационной позиции.

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

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

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

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

Усиления пути, возвращенные как массив S-by-NP N. N S является количеством выборок. N P является количеством дискретных путей к задержке, то есть, длины PathDelays значение свойства. pathgains содержит комплексные числа с той же точностью как входной сигнал x.

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

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

release(obj)

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

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

Примеры

свернуть все

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

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

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

Создайте многопутевой 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, исчезающий канал, и отобразить его импульсные и частотные характеристики.

Установите частоту дискретизации на 3,84 МГц. Задайте задержки пути и усиления при помощи настройки B-канала пешехода ITU. Установите K-фактор Rician на 10 и максимальный эффект Доплера к 50 Гц.

fs = 3.84e6; % Hz
pathDelays = [0 200 800 1200 2300 3700]*1e-9; % sec
avgPathGains = [0 -0.9 -4.9 -8 -7.8 -23.9]; % dB
fD = 50; % Hz

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

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

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

x = randi([0 1],1000,1);
y = ricianChan(x);

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

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

fs = 1000; % Sample rate (Hz)
pathDelays = [0 2.5e-3]; % Path delays (s)
pathPower = [0 -6]; % Path power (dB)
fD = 5; % Maximum Doppler shift (Hz)
ns = 1000; % Number of samples
nsdel = 100; % Number of samples for delayed paths

Задайте полное время симуляции и в три раза сегменты, для которых должны быть переданы данные. В этом случае канал симулирован в течение 1 с с частотой дискретизации на 1 000 Гц. Одна последовательность текущих данных с 1000 выборками передается во время 0. Три пакета с 100 выборочными данными время от времени передаются 0,1 с, 0,5 с и 0,8 с, соответственно.

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

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

d0 = randi([0 1],ns,1);
d1 = randi([0 1],nsdel,1);
d2 = randi([0 1],nsdel,1);
d3 = randi([0 1],nsdel,1);

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

ricianchan1 = comm.RicianChannel('SampleRate',fs, ...
    'MaximumDopplerShift',5, ...
    'RandomStream','mt19937ar with seed', ...
    'Seed',17, ...
    'FadingTechnique','Sum of sinusoids', ...
    'PathGainsOutputPort',true);

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

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

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

[~,pg0] = ricianchan1(d0);

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

[~,pg1] = ricianchan2(d1,to1);
[~,pg2] = ricianchan2(d2,to2);
[~,pg3] = ricianchan2(d3,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 (sec)')
ylabel('Path Gain (dB)')
legend('Continuous','Discontinuous','location','nw')
title('Continuous and Discontinuous Transmission Path Gains')

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

Создайте многопутевой 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]

  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

Больше о

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

Ссылки

[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
Для просмотра документации необходимо авторизоваться на сайте