Пропустите входной сигнал через многопутевой Rician, исчезающий канал
comm.RicianChannel
Система object™ пропускает входной сигнал через многопутевой Rician, исчезающий канал. Для получения дополнительной информации об исчезающей обработке модели смотрите раздел Methodology for Simulating Multipath Fading Channels.
Пропускать входной сигнал через многопутевой Rician, исчезающий канал:
Создайте comm.RicianChannel
объект и набор его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?
создает выборочный частотой или плоский частотой многопутевой Rician, исчезающий Системный объект канала. Этот объект пропускает действительный или комплексный входной сигнал через многопутевой канал, чтобы получить поврежденный каналом сигнал.ricianchan
= comm.RicianChannel
свойства наборов с помощью одних или нескольких аргументов name-value. Например, ricianchan
= comm.RicianChannel(Name,Value)'SampleRate',2
устанавливает частоту дискретизации входного сигнала на 2.
Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release
функция разблокировала их.
Если свойство является настраиваемым, можно изменить его значение в любое время.
Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.
SampleRate
— Частота дискретизации входного сигнала
(значение по умолчанию) | положительная скалярная величинаЧастота дискретизации входного сигнала в герц в виде положительной скалярной величины.
Типы данных: double
PathDelays
— Дискретная задержка пути
(значение по умолчанию) | скаляр | вектор-строкаДискретная задержка пути в секундах в виде скалярного или вектора-строки.
Когда вы устанавливаете PathDelays
к скаляру канал является плоской частотой.
Когда вы устанавливаете PathDelays
к вектору канал является выборочной частотой.
PathDelays
и AveragePathGains
свойства должны быть той же длиной.
Типы данных: double
AveragePathGains
— Средние усиления дискретных путей
(значение по умолчанию) | скаляр | вектор-строкаСредние усиления дискретных путей в децибелах в виде скалярного или вектора-строки. AveragePathGains
и PathDelays
свойства должны быть той же длиной.
Типы данных: double
NormalizePathGains
— Нормируйте средние усиления путиtrue
или 1
(значение по умолчанию) | false
или 0
Нормируйте средние усиления пути в виде одного из этих логических значений:
1
TRUE
) — Процессы исчезновения нормированы так, чтобы общая степень усилений пути, усредняемых в зависимости от времени, составила 0 дБ.
0
ложь
) — Общая степень усилений пути не нормирована.
AveragePathGains
свойство задает средние степени усилений пути.
Типы данных: логический
KFactor
— K-фактор Rician, исчезающего канал
(значение по умолчанию) | положительная скалярная величина | 1 NP вектором из неотрицательных значенийK-фактор Rician, исчезающего канал в виде положительной скалярной величины или 1 NP вектором из неотрицательных значений. N P является количеством дискретных задержек пути, заданных PathDelays
свойство.
Когда вы устанавливаете KFactor
к скаляру первый дискретный путь является процессом исчезновения Rician с K-фактором Rician KFactor
. Любые остающиеся дискретные пути являются независимыми процессами Релеевского замирания.
Когда вы устанавливаете KFactor
к вектору, дискретный путь, соответствующий положительному элементу KFactor
вектор является процессом исчезновения Rician с K-фактором Rician, заданным тем элементом. Дискретный путь, соответствующий любым элементам с нулевым знаком KFactor
вектор является процессами Релеевского замирания. По крайней мере один элемент должен быть ненулевым.
Типы данных: double
DirectPathDopplerShift
— Эффекты Доплера для компонентов угла обзора
(значение по умолчанию) | скаляр | вектор-строкаЭффекты Доплера для компонентов угла обзора многопутевого Rician, исчезающего канал в виде скалярного или вектора-строки. Модули находятся в герц. Это свойство должно быть одного размера с KFactor
свойство.
Когда вы устанавливаете DirectPathDopplerShift
к скаляру значение представляет эффект Доплера компонента угла обзора первого дискретного пути. Этот путь показывает процесс исчезновения Rician.
Когда вы устанавливаете DirectPathDopplerShift
к вектору-строке, дискретный путь, соответствующий положительному элементу KFactor
вектор является процессом исчезновения Rician. Соответствующий элемент DirectPathDopplerShift
задает компонент угла обзора для эффекта Доплера того дискретного пути.
Типы данных: double
DirectPathInitialPhase
— Начальные фазы для компонентов угла обзора
(значение по умолчанию) | скаляр | вектор-строкаНачальная фаза для компонентов угла обзора многопутевого Rician, исчезающего канал в виде скалярного или вектора-строки. Модули исчисляются в радианах. Это свойство должно быть одного размера с KFactor
свойство.
Когда вы устанавливаете DirectPathInitialPhase
к скаляру значение представляет начальную фазу компонента угла обзора первого дискретного пути. Этот путь показывает процесс исчезновения Rician.
Когда вы устанавливаете DirectPathInitialPhase
к вектору-строке, дискретный путь, соответствующий положительному элементу KFactor
вектор является процессом исчезновения Rician. Соответствующий элемент DirectPathInitialPhase
задает начальную фазу компонента угла обзора того дискретного пути.
Типы данных: double
MaximumDopplerShift
— Максимальный эффект Доплера для всех путей к каналу
(значение по умолчанию) | неотрицательный скалярМаксимальный эффект Доплера для всех путей к каналу в виде неотрицательного скаляра. Модули находятся в герц.
Максимальный предел эффекта Доплера применяется к каждому пути к каналу. Когда вы устанавливаете это свойство на 0
, канал остается статическим для целого входа. Можно использовать reset
возразите функции, чтобы сгенерировать новую реализацию канала. MaximumDopplerShift
значение свойства должно быть меньшим, чем SampleRate
/10/fc для каждого пути. f c является фактором частоты среза пути. Для большинства Доплеровских типов спектра значение f c равняется 1. Для Гауссовых и bi-Gaussian Доплеровских типов спектра значение f c зависит от Доплеровских полей структуры спектра. Для получения дополнительной информации о том, как f c задан, смотрите раздел Cutoff Frequency Factor.
Типы данных: double
DopplerSpectrum
— Доплеровский спектр формирует для всех путей к каналуdoppler('Jakes')
(значение по умолчанию) | Доплеровская структура спектра | 1 NP массивом ячеек Доплеровских структур спектраДоплеровский спектр формирует для всех путей к каналу в виде Доплеровской структуры спектра или 1 NP массивом ячеек Доплеровских структур спектра. Этими Доплеровскими структурами спектра должны быть выходные параметры формы, возвращенной из doppler
функция. N P является количеством дискретных путей к задержке, заданных PathDelays
свойство. MaximumDopplerShift
свойство задает максимальное значение эффекта Доплера что DopplerSpectrum
свойство разрешает, когда вы задаете Доплеровский спектр.
Когда вы устанавливаете DopplerSpectrum
к одной Доплеровской структуре спектра все пути имеют заданный Доплеровский спектр того же самого.
Когда вы устанавливаете DopplerSpectrum
к массиву ячеек Доплеровских структур спектра каждому пути задала Доплеровский спектр соответствующая структура в массиве ячеек.
Задайте опции для типа спектра при помощи specType
введите к doppler
функция. Если вы устанавливаете FadingTechnique
свойство к 'Sum of sinusoids'
, необходимо установить DopplerSpectrum
к doppler('Jakes')
.
Чтобы включить это свойство, установите MaximumDopplerShift
свойство к положительной скалярной величине.
Типы данных: struct |
cell
ChannelFiltering
— Фильтрация каналаtrue
или 1
(значение по умолчанию) | false
или 0
Фильтрация канала в виде одного из этих логических значений:
1
TRUE
) — Канал принимает входной сигнал и производит отфильтрованный выходной сигнал.
0
ложь
) — Объект не принимает входной сигнал, не производит отфильтрованного выходного сигнала, и выходные параметры только образовывают канал усиления пути. Необходимо задать длительность процесса исчезновения при помощи NumSamples
свойство.
Типы данных: логический
PathGainsOutputPort
— Выведите усиления пути к каналуfalse
или 0
(значение по умолчанию) | true
или 1
Выведите усиления пути к каналу в виде логического 0
ложь
) или 1
TRUE
). Установите это свойство на true
выводить усиления пути к каналу базового процесса исчезновения.
Чтобы включить это свойство, установите ChannelFiltering
свойство к true
.
Типы данных: логический
NumSamples
— Количество отсчетов
(значение по умолчанию) | неотрицательное целое числоКоличество отсчетов используется для длительности процесса исчезновения в виде неотрицательного целого числа.
Настраиваемый: да
Чтобы включить это свойство, установите ChannelFiltering
свойство к false
.
Типы данных: double
OutputDataType
— Тип выходных данных усиления пути'double'
(значение по умолчанию) | 'single'
Выходные данные усиления пути вводят в виде 'double'
или 'single'
.
Чтобы включить это свойство, установите ChannelFiltering
свойство к false
.
Типы данных: char |
string
FadingTechnique
— Модель канала исчезающий метод'Filtered Gaussian noise'
(значение по умолчанию) | 'Sum of sinusoids'
Модель канала исчезающий метод в виде 'Filtered Gaussian noise'
или 'Sum of sinusoids'
.
Типы данных: char |
string
NumSinusoids
— Количество синусоид
(значение по умолчанию) | положительное целое числоКоличество синусоид раньше моделировало процесс исчезновения в виде положительного целого числа.
Чтобы включить это свойство, установите FadingTechnique
свойство к 'Sum of sinusoids'
.
Типы данных: double
InitialTimeSource
— Источник, чтобы управлять временем начала исчезающего процесса'Property'
(значение по умолчанию) | 'Input port'
Источник, чтобы управлять временем начала процесса исчезновения в виде 'Property'
или 'Input port'
.
Когда вы устанавливаете InitialTimeSource
к 'Property'
, установите начальное смещение времени при помощи InitialTime
свойство.
Когда вы устанавливаете InitialTimeSource
к 'Input port'
, задайте время начала процесса исчезновения при помощи inittime
входной параметр. Входное значение может измениться в последовательных вызовах объекта.
Чтобы включить это свойство, установите FadingTechnique
свойство к 'Sum of sinusoids'
.
Типы данных: char |
string
InitialTime
— Начальное время возмещено
(значение по умолчанию) | неотрицательный скалярНачальное время возмещено для исчезающей модели в секундах в виде неотрицательного скаляра.
Когда mod
(InitialTime
/SampleRate
) является ненулевым, начальное смещение времени окружено к самой близкой демонстрационной позиции.
Чтобы включить это свойство, установите FadingTechnique
свойство к 'Sum of sinusoids'
и InitialTimeSource
свойство к 'Property'
.
Типы данных: double
RandomStream
— Источник потока случайных чисел'Global stream'
(значение по умолчанию) | 'mt19937ar with seed'
Источник потока случайных чисел в виде 'Global stream'
или 'mt19937ar with seed'
.
Когда вы задаете 'Global stream'
, объект использует текущий глобальный поток случайных чисел для нормально распределенной генерации случайных чисел. В этом случае, reset
возразите, что функция сбрасывает только фильтры.
Когда вы задаете 'mt19937ar with seed'
, объект использует mt19937ar алгоритм для нормально распределенной генерации случайных чисел. В этом случае, reset
возразите, что функция сбрасывает фильтры и повторно инициализирует поток случайных чисел к значению Seed
свойство.
Типы данных: char |
string
Seed
— Начальный seed mt19937ar потока случайных чисел
(значение по умолчанию) | неотрицательное целое числоНачальный seed mt19937ar потокового алгоритма генератора случайных чисел в виде неотрицательного целого числа. Когда вы вызываете reset
возразите функции, она повторно инициализирует mt19937ar поток случайных чисел к Seed
значение.
Чтобы включить это свойство, установите RandomStream
свойство к 'mt19937ar with seed'
.
Типы данных: double
Visualization
— Визуализация канала'Off'
(значение по умолчанию) | 'Impulse response'
| 'Frequency response'
| 'Impulse and frequency responses'
| 'Doppler spectrum'
Визуализация канала в виде 'Off'
, 'Impulse response'
, 'Frequency response'
, 'Impulse and frequency responses'
, или 'Doppler spectrum'
. Для получения дополнительной информации смотрите раздел Channel Visualization.
Чтобы включить это свойство, установите FadingTechnique
свойство к 'Filtered Gaussian noise'
.
Типы данных: char |
string
PathsForDopplerDisplay
— Путь используется для отображения Доплеровского спектра
(значение по умолчанию) | положительное целое числоПуть, используемый для отображения Доплеровского спектра в виде положительного целого числа в области значений [1, N P]. N P является количеством дискретных путей к задержке, заданных PathDelays
свойство. Используйте это свойство выбрать дискретный путь, используемый в построении Доплеровского графика спектра.
Чтобы включить это свойство, установите Visualization
свойство к 'Doppler spectrum'
.
Типы данных: double
SamplesToDisplay
— Процент выборок, чтобы отобразиться
(значение по умолчанию) | '10%'
| '50%'
| '100%'
Процент выборок, чтобы отобразиться в виде '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'
.
[
также возвращает усиления пути к каналу базового многопутевого процесса исчезновения Rician в y
,pathgains
] = ricianchan(___)pathgains
использование любой из комбинаций входных аргументов в предыдущих синтаксисах.
Чтобы включить этот синтаксис, установите PathGainsOutputPort
свойство к true
.
возвращает усиления пути к каналу базового процесса исчезновения. В этом случае канал не требует никакого входного сигнала и действует как источник усилений пути.pathgains
= ricianchan()
Чтобы включить этот синтаксис, установите ChannelFiltering
свойство к false
.
возвращает усиления пути к каналу базового процесса исчезновения, начинающегося в заданное начальное время. В этом случае канал не требует никакого входного сигнала и действует как источник усилений пути.pathgains
= ricianchan(inittime
)
Чтобы включить этот синтаксис, установите FadingTechnique
свойство к 'Sum of sinusoids'
, InitialTimeSource
свойство к 'Input port'
, и ChannelFiltering
свойство к false
.
x
— Входной сигналВходной сигнал в виде вектора S-1 N, где N S является количеством отсчетов.
Типы данных: single
| double
Поддержка комплексного числа: Да
inittime
— Начальное время возмещено
| неотрицательный скалярНачальное время возмещено в секундах в виде неотрицательного скаляра.
Когда mod
(inittime
/SampleRate
) является ненулевым, начальное смещение времени окружено к самой близкой демонстрационной позиции.
Типы данных: single
| double
y
— Выходной сигналВыходной сигнал, возвращенный как вектор S-1 N из комплексных чисел с той же точностью данных как входной сигнал x
. N S является количеством отсчетов.
pathgains
— Выходные path усиленияВыходные path усиления, возвращенные как матрица S-by-NP N. N S является количеством отсчетов. N P является количеством дискретных путей к задержке, заданных PathDelays
свойство. pathgains
содержит комплексные числа.
Когда вы устанавливаете ChannelFiltering
свойство к false
, тип данных этого выхода имеет ту же точность как входной сигнал x
. Когда вы устанавливаете ChannelFiltering
свойство к true
, тип данных этого выхода задан OutputDataType
свойство.
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj
, используйте этот синтаксис:
release(obj)
comm.RicianChannel
info | Характеристическая информация об исчезающем объекте канала |
Произведите тот же многопутевой 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();
Покажите, что состояние канала обеспечено для прерывистых передач при помощи многопутевого 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')
Воспроизведите многопутевой 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')
Этот пример использует:
Вычислите и постройте эмпирическую и теоретическую кумулятивную функцию распределения (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')
Фактор частоты среза, f c, зависит от типа Доплеровского спектра.
Для любого Доплеровского типа спектра кроме Гауссова и bi-Gaussian, f c равняется 1.
Для a doppler
('Gaussian')
тип спектра, f c равняется NormalizedStandardDeviation
.
Для a doppler
('BiGaussian')
тип спектра:
Если PowerGains
(1) и
NormalizedCenterFrequencies
(2) значениями полей является оба
0
, затем f c равняется NormalizedStandardDeviation
(1).
Если PowerGains
(2) и
NormalizedCenterFrequencies
(1) значениями полей является оба
0
, затем f c равняется NormalizedStandardDeviation
(2).
Если NormalizedCenterFrequencies
значением поля является [0,0]
и NormalizedStandardDeviation
поле имеет два идентичных элемента, затем f c равняется NormalizedStandardDeviation
(1).
Во всех других случаях f c равняется 1.
comm.RicianChannel
Системный объект включает визуализацию импульсной характеристики канала, частотной характеристики и Доплеровского спектра.
Примечание
Отображенные и заданные местоположения усиления пути могут отличаться целых 5% входного шага расчета.
Скорость отображения визуализации контролируется комбинацией SamplesToDisplay
свойство и пункт меню scope Reduce Updates to Improve Performance найдены в Playback . Сокращение процента выборок, чтобы отобразиться и включение уменьшаемых обновлений могут ускорить рендеринг осциллографа визуализации.
Если вы закрываете осциллографы визуализации, вызовы Системного объекта выполняются на нормальной скорости.
Генерация кода доступна только, когда вы устанавливаете Visualization
свойство к 'Off'
.
Импульсная характеристика
Осциллограф импульсной характеристики отображает усиления пути, коэффициенты фильтра канала и интерполированные усиления пути. Усиления пути происходят в экземплярах времени, которые соответствуют заданному PathDelays
свойство и не может быть выровнено с входным временем выборки. Осциллограф использует коэффициенты фильтра канала, чтобы смоделировать канал. Коэффициенты интерполированы от фактических усилений пути и выравниваются с входным временем выборки. Усиления пути перекрывают коэффициенты фильтра для случаев, где усиления пути выравниваются со временем выборки. Интерполяция Sinc используется, чтобы соединить коэффициенты фильтра канала и показывается интерполированными усилениями пути. Эти точки используются только для целей отображения и не используются в последующей фильтрации канала. Для плоского исчезающего канала (один путь), не отображена sinc кривая интерполяции. Для всех графиков импульсной характеристики систему координат и демонстрационные числа показывают в верхнем левом углу осциллографа.
График импульсной характеристики совместно использует ту же панель инструментов и меню как dsp.ArrayPlot
Системный объект.
Когда заданные усиления пути выравниваются с частотой дискретизации, усилениями пути и содействующим перекрытием фильтра канала. В этом рисунке импульсная характеристика показывает, что усиления пути перекрывают коэффициенты фильтра.
Если заданные усиления пути не выравниваются с частотой дискретизации, усиления пути и коэффициенты фильтра канала не перекрываются. В этом рисунке одинаково распределяются коэффициенты фильтра. Поскольку усиления пути не выравниваются с частотой дискретизации, усиления пути не перекрываются с коэффициентами фильтра канала.
Этот рисунок показывает импульсную характеристику для плоского частотой канала, не отображая интерполированные усиления пути.
Частотная характеристика
Осциллограф частотной характеристики отображает многопутевой спектр Канала с релеевским замиранием путем взятия дискретного преобразования Фурье коэффициентов фильтра канала. График частотной характеристики совместно использует ту же панель инструментов и меню как dsp.SpectrumAnalyzer
Системный объект.
y - пределы по осям графика вычисляются на основе NormalizePathGains
и AveragePathGains
свойства comm.RicianChannel
Системный объект.
Эта таблица показывает другие выбранные настройки спектра по умолчанию. Можно изменить эти настройки от их значений по умолчанию при помощи Spectrum Settings в View .
Настройки спектра | Значение |
---|---|
Type в Main options |
|
Window length в Main options | Длина фильтра канала |
NFFT в Main options | 512 |
Window в Window options |
|
Units в Trace options |
|
Этот рисунок показывает график частотной характеристики для выборочного частотой канала.
Доплер Спектрум
Доплеровский график спектра отображает теоретический Доплеровский спектр и опытным путем решительные точки данных. Теоретические данные отображены как линия для случая нестатических каналов и как точка для статических каналов. Эмпирические данные показывают как * символы. Прежде чем эмпирический график обновляется, внутренний буфер должен быть абсолютно заполнен отфильтрованными Гауссовыми выборками. Эмпирический график является рабочим средним значением спектра, который вычисляется от каждого полного буфера. Для нестатических каналов количество входных выборок, которое необходимо перед следующим обновлением, отображено в верхнем левом углу графика. Количество отсчетов, которое необходимо, является функцией частоты дискретизации и максимального эффекта Доплера. Для статических каналов, текст "Reset fading channel for next update
"отображен.
[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.
Указания и ограничения по применению:
Чтобы сгенерировать код С, установите DopplerSpectrum
свойство к одной Доплеровской структуре спектра.
Генерация кода доступна только, когда вы устанавливаете Visualization
свойство к 'Off'
.
Смотрите системные объекты в Генерации кода MATLAB (MATLAB Coder).
comm.AWGNChannel
| comm.MIMOChannel
| comm.RayleighChannel
| comm.RayTracingChannel
| comm.ChannelFilter
| comm.WINNER2Channel
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.