Пропустите входной сигнал через многолучевой канал Райса с замираниями
The comm.RicianChannel
Система object™ фильтрует входной сигнал через многолучевой канал Райса с замираниями. Для получения дополнительной информации о замираниях при обработке модели см. «Методология симуляции многолучевых каналов с замираниями».
Чтобы фильтровать входной сигнал с помощью многолучевого канала Райса с замираниями:
Создайте comm.RicianChannel
Объекту и установите его свойства.
Вызывайте объект с аргументами, как будто это функция.
Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».
создает частотно-избирательный или частотно-плоский многолучевой канал Райса с замираниями Системного объекта. Этот объект фильтрует действительный или комплексный входной сигнал через многолучевой канал, чтобы получить сигнал с нарушением канала.ricianlchan
= comm.RicianChannel
устанавливает свойства с помощью одного или нескольких аргументов пары "имя-значение". Заключайте каждое имя свойства в кавычки. Для примера, ricianlchan
= comm.RicianChannel(Name,Value)comm.RicisChannel (
устанавливает скорость выборки входного сигнала равную 2.'SampleRate
',2)
Если не указано иное, свойства являются нетронутыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируются, когда вы вызываете их, и release
функция разблокирует их.
Если свойство настраивается, можно изменить его значение в любой момент.
Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Использование Системных объектов.
SampleRate
- Скорость выборки входного сигнала1
(по умолчанию) | положительная скалярная величинаСкорость выборки входного сигнала в Гц, задается как положительная скалярная величина.
Типы данных: double
PathDelays
- Дискретная задержка пути0
(по умолчанию) | скалярный вектор | строкуДискретная задержка пути в секундах, заданная как скаляр или вектор-строка.
Когда PathDelays
является скаляром, канал плоский по частоте.
Когда PathDelays
является вектором, канал является частотно-избирательным.
Типы данных: double
AveragePathGains
- Среднее значение дискретных путей0
(по умолчанию) | скалярный вектор | строкуСреднее усиление дискретных путей в децибелах, заданное как скаляр или вектор-строка. AveragePathGains
должен быть того же размера, что и PathDelays
свойство.
Типы данных: double
NormalizePathGains
- Нормализуйте среднее усиление пути до 0 дБtrue
или 1
(по умолчанию) | false
или 0
Нормализуйте среднее усиление пути до 0 дБ, заданное как логическое 1
(true
) или 0
(false
).
Когда NormalizePathGains
является true
процессы затухания нормированы так, что общая степень усилений пути, усредненная с течением времени, составляет 0 дБ.
Когда NormalizePathGains
является false
общая степень усилений пути не нормирована.
Типы данных: logical
KFactor
- Райс K -фактор3
(по умолчанию) | положительная скалярная величина | вектор-строка неотрицательных значенийРайс K -фактор, заданный как положительный скаляр или вектор-строка неотрицательных значений. Вектор должен быть такой же длины, как и PathDelays
значение свойства.
Когда KFactor
является скаляром, первый дискретный путь является процессом Райса с замираниями с Райсом K -фактором KFactor
. Любые оставшиеся дискретные пути являются независимыми процессами Релеевского замирания.
Когда KFactor
является вектором-строкой, дискретным путем, соответствующим положительному элементу KFactor
вектор является процессом Райса с замираниями с Ricis K -factor, заданным этим элементом. Дискретный путь, соответствующий любым нулевым элементам KFactor
вектор являются релеевскими замираниями. По крайней мере, одно значение элемента должно быть ненулевым.
Типы данных: double
DirectPathDopplerShift
- Доплеровский сдвиг0
(по умолчанию) | скалярный вектор | строкуДопплеровский сдвиг компонентов линии видимости многолучевого канала Райса с замираниями, заданный как скаляр или вектор-строка. Модули указаны в герцах. The DirectPathDopplerShift
свойство должно быть того же размера, что и KFactor
свойство.
Когда DirectPathDopplerShift
является скаляром, значение представляет доплеровский сдвиг компонента линии видимости первого дискретного пути. Этот путь показывает процесс Райса с замираниями.
Когда DirectPathDopplerShift
является вектором-строкой, дискретным путем, соответствующим положительному элементу KFactor
вектор является процессом Райса с замираниями. Соответствующий элемент DirectPathDopplerShift
задает доплеровский сдвиг компонента Doppler линии видимости этого дискретного пути.
Типы данных: double
DirectPathInitialPhase
- Начальная фаза0
(по умолчанию) | скалярный вектор | строкуНачальная фаза компонентов линии визирования многолучевого канала Райса с замираниями, заданная как скаляр или вектор-строка. Модули указаны в радианах. The DirectPathInitialPhase
свойство должно быть того же размера, что и KFactor
свойство.
Когда DirectPathInitialPhase
является скаляром, значение представляет начальную фазу компонента линии видимости первого дискретного пути. Этот путь показывает процесс Райса с замираниями.
Когда DirectPathInitialPhase
является вектором-строкой, дискретным путем, соответствующим положительному элементу KFactor
вектор является процессом Райса с замираниями. Соответствующий элемент DirectPathInitialPhase
задает начальную фазу компонента линии видимости этого дискретного пути.
Типы данных: double
MaximumDopplerShift
- Максимальный доплеровский сдвиг для всех путей канала0.001
(по умолчанию) | неотрицательной скаляромМаксимальный доплеровский сдвиг для всех путей канала, заданный как неотрицательный скаляр. Модули указаны в герцах.
Максимальный предел доплеровского сдвига применяется к каждому канальному пути. Когда вы устанавливаете это свойство на 0
канал остается статическим для всего входа. Вы можете использовать reset
функция объекта для генерации новой реализации канала. The MaximumDopplerShift
значение свойства должно быть меньше SampleRate
/ 10/ f c для каждого пути. f c представляет частотный коэффициент среза пути. Для большинства типов доплеровского спектра значение f c равно 1. Для Гауссова и би-Гауссова типов Допплеровского спектра f c зависит от полей структуры Допплеровского спектра. Для получения дополнительной информации о том, как f c определено, см. Раздел «Частотный коэффициент отсечения».
Типы данных: double
DopplerSpectrum
- Форма допплеровского спектра для всех путей по каналамdoppler('Jakes')
(по умолчанию) | структуру Допплеровского спектра | массив 1-бай- N P-клеток структур Доплеровского спектраФорма допплеровского спектра для всех путей, заданная как структура допплеровского спектра или массив 1- N P-клеток структур допплеровского спектра. Эти структуры Допплеровского спектра должны быть выходами формы, возвращенной из doppler
функция. N P - количество дискретных путей с задержкой, то есть длина PathDelays
свойство.
Когда DopplerSpectrum
определяется одной структурой Доплеровского спектра, все пути имеют одинаковый заданный Доплеровский спектр.
Когда DopplerSpectrum
определяется массив ячеек структур Доплеровского спектра, каждый путь имеет Доплеровский спектр, заданный соответствующей структурой в массив ячеек.
Опции для типа спектра заданы specType
вход doppler
функция. Если вы задаете FadingTechnique
свойство к 'Sum of sinusoids'
, вы должны задать DopplerSpectrum
на doppler('Jakes')
.
Чтобы включить это свойство, установите MaximumDopplerShift
свойство к положительному значению. The MaximumDopplerShift
свойство определяет максимальное значение доплеровского сдвига, разрешенное при определении доплеровского спектра.
Типы данных: struct
| cell
FadingTechnique
- Метод затухания модели канала'Filtered Gaussian noise'
(по умолчанию) | 'Sum of sinusoids'
Метод затухания модели канала, заданный как 'Filtered Gaussian noise'
или 'Sum of sinusoids'
.
Типы данных: char
| string
NumSinusoids
- Количество используемых синусоидов48
(по умолчанию) | положительное целое числоКоличество синусоидов, используемых для моделирования процесса затухания, заданное как положительное целое число.
Чтобы включить это свойство, установите FadingTechnique
свойство к 'Sum of sinusoids'
.
Типы данных: double
InitialTimeSource
- Источник для управления началом процесса затухания'Property'
(по умолчанию) | 'Input port'
Источник для управления временем запуска процесса затухания, заданный как 'Property'
или 'Input port'
.
Когда InitialTimeSource
установлено в 'Property'
, используйте InitialTime
свойство, чтобы задать начальное смещение времени.
Когда InitialTimeSource
установлено в 'Input port'
, задайте время начала процесса затухания при помощи itime
вход в системный объект. Входное значение может изменяться при последовательных вызовах системного объекта.
Это свойство применяется, когда FadingTechnique
свойство к 'Sum of sinusoids'
.
Типы данных: string
| char
InitialTime
- Начальное смещение времени0
(по умолчанию) | неотрицательной скаляромНачальное смещение времени, в секундах, для модели с замираниями, заданное как неотрицательный скаляр. InitialTime
должно быть больше, чем время окончания последней системы координат. InitialTime
округлено до ближайшего положения выборки, когда оно не кратно 1/ 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
свойство.
Типы данных: string
| char
Seed
- Начальное начальное число потока случайных чисел mt19937ar73
(по умолчанию) | неотрицательное целое числоНачальное начальное число алгоритма генератора случайных чисел mt19937ar, заданное как неотрицательное целое число. Когда reset
вызывается функция объекта, поток случайных чисел mt19937ar повторно инициализируется в Seed
значение свойства.
Это свойство применяется, когда вы устанавливаете RandomStream
свойство к 'mt19937ar with seed'
.
Типы данных: double
PathGainsOutputPort
- Опция для вывода коэффициентов усиления путиfalse
или 0
(по умолчанию) | true
или 1
Опция вывода коэффициентов усиления пути, заданная как 0
(false
) или 1
(true
). Установите это свойство на 1
(true
) для вывода коэффициентов усиления пути канала базового процесса затухания.
Типы данных: logical
Visualization
- Визуализация канала'Off'
(по умолчанию) | 'Impulse response'
| 'Frequency response'
| 'Impulse and frequency responses'
| 'Doppler spectrum'
Визуализация канала, заданная как 'Off'
, 'Impulse response'
, 'Frequency response'
, 'Impulse and frequency responses'
, или 'Doppler spectrum'
. Для получения дополнительной информации см. раздел «Визуализация канала».
Типы данных: string
| char
SamplesToDisplay
- Процент выборок'25%'
(по умолчанию) | '10%'
| '50%'
| '100%'
Процент выборок, заданный как '25%'
, '10%'
, '50%'
, или '100%'
. Отображение меньшего количества выборок улучшает (уменьшает) частоту обновления дисплея за счет уменьшения визуализированной точности.
Чтобы включить это свойство, установите Visualization
свойство к 'Impulse response'
, 'Frequency response'
, или 'Impulse and frequency responses'
.
Типы данных: string
| char
PathsForDopplerDisplay
- Путь для доплеровского отображения1
(по умолчанию) | положительное целое число Путь для доплеровского отображения, заданный как положительное целое число. Используйте это свойство для выбора дискретного пути, используемого при построении графика Допплеровского спектра. Заданный путь должен быть элементом {1, 2,..., N P}. В этом наборе N P является количеством дискретных путей с задержкой, то есть длиной PathDelays
значение свойства.
Чтобы включить это свойство, установите Visualization
свойство к 'Doppler spectrum'
.
Типы данных: double
x
- Входной сигналВходной сигнал, заданный как N вектор S-на-1, где N S - количество выборок.
Типы данных: single
| double
Поддержка комплексного числа: Да
itime
- Начальное время0
| неотрицательный скалярНачальное время в секундах, заданное как неотрицательный скаляр. The itime
вход должен быть больше, чем время окончания последней системы координат. Когда itime
не является кратным 1/ SampleRate
, он округлен до ближайшего положения образца.
Типы данных: single
| double
y
- Выходной сигналВыходной сигнал, возвращенный как N вектор S-на-1 комплексных значений с той же точностью данных, что и входной сигнал x
. N S - количество выборок.
pathgains
- Коэффициент усиления путиКоэффициент усиления пути, возвращенный как N S-by- N P-массив. N S - количество выборок. N P - количество дискретных путей с задержкой, то есть длина PathDelays
значение свойства. pathgains
содержит комплексные числа с той же точностью, что и входной сигнал x
.
Чтобы использовать функцию объекта, задайте системный объект в качестве первого входного параметра. Например, чтобы освободить системные ресурсы системного объекта с именем obj
, используйте следующий синтаксис:
release(obj)
comm.RicianChannel
info | Характеристическая информация о затухающем объекте канала |
Этот пример показывает, как создать один и тот же многолучевой отклик канала Райса с замираниями с помощью двух различных методов для генерации случайных чисел. Многолучевая система object™ канала Райса с замираниями включает в себя два способа генерации случайных чисел. Можно использовать текущий глобальный поток или алгоритм mt19937ar с заданным seed. При взаимодействии с глобальным потоком системный объект может получить те же выходы от двух методов.
Создайте Системный объект модулятора PSK, чтобы модулировать случайным образом сгенерированные данные.
pskModulator = comm.PSKModulator; channelInput = pskModulator(randi([0 pskModulator.ModulationOrder-1],1024,1));
Создайте многолучевой системный объект канала Райса с замираниями, задав метод генерации случайных чисел как алгоритм my19937ar и начальное число случайных чисел как 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);
Фильтрация модулированных данных при помощи многолучевого канала Райса с замираниями Системного объекта.
[RicianChanOut1, RicianPathGains1] = ricianchan(channelInput);
Установите Системный объект, чтобы использовать глобальный поток для генерации случайных чисел.
release(ricianchan);
ricianchan.RandomStream = 'Global stream';
Установите глобальный поток таким же seed, которое было задано при создании многолучевого канала Райса с Системным объектом.
rng(73)
Фильтрация модулированных данных при помощи многолучевого канала Райса с замираниями Системного объекта снова.
[RicianChanOut2,RicianPathGains2] = ricianchan(channelInput);
Проверьте, что выходы усиления канала и пути одинаковы для каждого из двух методов.
isequal(RicianChanOut1,RicianChanOut2)
ans = logical
1
isequal(RicianPathGains1,RicianPathGains2)
ans = logical
1
Этот пример показывает, как создать частотно-избирательный многолучевой канал Райса с замираниями и отобразить его импульсную и частотные характеристики.
Установите частоту дискретизации 3,84 МГц. Задайте задержки и усиления пути при помощи строения ITU пешеходного B-канала. Установите коэффициент Райса К равным 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
Создайте многолучевой системный объект канала Райса с замираниями путем использования ранее определенных свойств и визуализации графиков импульсной характеристики и частотной характеристики.
ricianChan = comm.RicianChannel('SampleRate',fs, ... 'PathDelays',pathDelays, ... 'AveragePathGains',avgPathGains, ... 'KFactor',10, ... 'MaximumDopplerShift',fD, ... 'Visualization','Impulse and frequency responses');
Сгенерируйте случайные двоичные данные и передайте их через многолучевой канал Райса с замираниями. График импульсной характеристики позволяет вам идентифицировать отдельные пути и соответствующие им коэффициенты фильтра. График частотной характеристики показывает частотно-избирательный характер пешеходного B-канала ITU.
x = randi([0 1],1000,1); y = ricianChan(x);
Пример показывает, как состояние канала поддерживается в случаях, когда данные прерывисто передаются. Создайте объект канала Райса и передайте данные через него с помощью метода суммы синусоидов.
Установите свойства канала.
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 с со частотой дискретизации 1000 Гц. Одна непрерывная последовательность данных с 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);
Создайте плоский по частоте многолучевой канал Райса с замираниями Системного объекта, задавая метод суммирования синусоидов с замираниями. Чтобы результаты могли быть повторены, задайте начальное значение. Используйте InitialTime
по умолчанию настройка свойства таким образом, чтобы канал с замираниями моделировался с момента 0. Включите выход коэффициента усиления пути.
ricianchan1 = comm.RicianChannel('SampleRate',fs, ... 'MaximumDopplerShift',5, ... 'RandomStream','mt19937ar with seed', ... 'Seed',17, ... 'FadingTechnique','Sum of sinusoids', ... 'PathGainsOutputPort',true);
Создайте клон многолучевого канала Райса с замираниями Системного объекта. Установите источник для начального времени, чтобы время смещения замирающего канала могло быть задано как входной параметр при использовании системного объекта.
ricianchan2 = clone(ricianchan1);
ricianchan2.InitialTimeSource = 'Input port';
Передайте случайные двоичные данные через первый многолучевой канал Райса с замираниями Системного объекта, ricianchan1
. Данные передаются за все 1000 временных выборок. В данном примере требуется только комплексное усиление пути.
[~,pg0] = ricianchan1(d0);
Передайте случайные данные через второй многолучевой канал Райса с замираниями Системного объекта, ricianchan2
, где начальные смещения времени предусмотрены в качестве входных параметров.
[~,pg1] = ricianchan2(d1,to1); [~,pg2] = ricianchan2(d2,to2); [~,pg3] = ricianchan2(d3,to3);
Сравните количество выборок, обработанных двумя каналами с помощью info
функция объекта. The ricianchan1
объект обработал 1000 выборки, в то время как 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));
Постройте график коэффициентов усиления пути для непрерывных и прерывистых случаев. Усиления для трех сегментов совпадают с усилением для непрерывного случая. Выравнивание двух подсвечивает, что метод суммирования синусоидов подходит для симуляции пакетированных данных, поскольку характеристики канала поддерживаются, даже когда данные не передаются.
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
Системный объект для воспроизведения многолучевого выхода канала Райса с замираниями.
Создайте многолучевой канал Райса с Системным объектом, определяющим два пути и определяющим данные для прохождения через канал.
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);
Сравните вывод многолучевого канала Райса с выходным Системным объектом, воспроизведенным с помощью коэффициентов усиления пути и ChannelFilterCoefficients
свойство многолучевого канала Райса с замираниями Системного объекта.
isequal(chanout1,chanout2)
ans = logical
1
Этот пример использует:
Вычислите и постройте график эмпирического и теоретического CDF для канала Райса с одним путем.
Инициализируйте параметры и создайте Системный объект для канала Райса.
Ns = 1.92e6; Rs = 1.92e6; dopplerShift = 2000; KFactor = -3; % dB KFactorLin = 10.^(KFactor/10); % linear chan = comm.RicianChannel( ... "SampleRate",Rs, ... "PathDelays",0, ... "KFactor",KFactorLin, ... "AveragePathGains",0, ... "MaximumDopplerShift",dopplerShift, ... "FadingTechnique","Sum of sinusoids", ... "PathGainsOutputPort",true);
Вычислите и постройте график эмпирического и теоретического CDF для канала Райса. Вычислите эмпирический CDF при помощи коэффициентов усиления пути.
% Empirical CDF plot [~, g] = chan(ones(Ns,1)); 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')
Этот пример использует:
Вычислите и постройте график эмпирического и теоретического PDF для канала Райса с одним путем.
Инициализируйте параметры и создайте Системный объект для канала Райса.
Ns = 1.92e6; Rs = 1.92e6; dopplerShift = 2000; KFactor = -3; % dB KFactorLin = 10.^(KFactor/10); % linear sig = complex(randn(Ns,1),randn(Ns,1)); chan = comm.RicianChannel( ... "SampleRate",Rs, ... "PathDelays",0, ... "KFactor",KFactorLin, ... "AveragePathGains",0, ... "MaximumDopplerShift",dopplerShift, ... "FadingTechnique",'Sum of sinusoids', ... "PathGainsOutputPort",true);
Вычислите и постройте график эмпирического и теоретического PDF для канала Райса.
figure; hold on; % Empirical PDF plot [~, gain] = chan(sig); 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')
Частотный коэффициент отсечения f c определяется для различных типов допплеровского спектра.
Для любого типа допплеровского спектра, кроме Гауссова и биГауссова, f c равен 1 .
Для doppler
('Gaussian')
спектральный тип, f c равен NormalizedStandardDeviation
.
Для 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.
The comm.RicianChannel
Системный объект позволяет визуализировать импульсную характеристику канала, частотную характеристику и Допплеровский спектр.
Примечание
Отображаемые и заданные местоположения усиления пути могут отличаться на целых 5% от входа шага расчета.
Скорость отображения визуализации управляется комбинацией SamplesToDisplay
свойство и Playback > Reduce Updates to Improve Performance элемент меню возможностей. Уменьшение процента выборок для отображения и включение сокращенных обновлений может ускорить визуализацию возможностей визуализации.
После закрытия возможностей визуализации вручную вызовы системного объекта выполняются с его нормальной скоростью.
Генерация кода доступна только тогда, когда Visualization
для свойства задано значение 'Off'
.
Импульсная характеристика
Импульсная характеристика возможностей отображает усиления пути, коэффициенты фильтра канала и интерполированные усиления пути. Усиления пути происходят в образцах времени, которые соответствуют заданному PathDelays
свойство и может не совпадать с входным временем дискретизации. Коэффициенты фильтра канала используются для моделирования канала. Они интерполируются из фактических коэффициентов усиления пути и выравниваются со временем входной дискретизации. В случаях, когда усиления пути выравниваются со временем дискретизации, усиления пути перекрывают коэффициенты фильтра. Интерполяция синуса используется, чтобы соединить коэффициенты фильтра канала и показана как интерполированные усиления пути. Эти точки используются исключительно в целях отображения и не используются в последующей фильтрации канала. Для плоского замирающего канала (один путь) кривая интерполяции синуса не отображается. Для всех графиков импульсной характеристики система координат и номера выборок показаны в левом верхнем углу возможностей.
График импульсной характеристики имеет ту же панель инструментов и меню, что и dsp.ArrayPlot
Системный объект.
Когда указанные усиления пути совпадают со скоростью дискретизации, усиления пути и коэффициенты фильтра канала перекрываются. На этом рисунке импульсная характеристика показывает, что усиления пути перекрывают коэффициенты фильтра.
Если указанные усиления пути не выравниваются со скоростью дискретизации, усиления пути и коэффициенты фильтра канала не перекрываются. На этом рисунке коэффициенты фильтра распределены одинаково. Усиления пути не перекрываются с коэффициентами фильтра канала, потому что усиления пути не совпадают со скоростью дискретизации.
Этот рисунок показывает импульсную характеристику для частотно-плоского канала. В этом случае интерполированные усиления пути не отображаются.
Частотная характеристика
Частотная характеристика возможностей отображает многолучевой Канал с релеевским замиранием спектр путем принятия дискретного преобразования Фурье коэффициентов фильтра канала. График частотной характеристики имеет ту же панель инструментов и меню, что и dsp.SpectrumAnalyzer
Системный объект.
Пределы графика по оси Y вычисляются на основе NormalizePathGains
и AveragePathGains
свойства comm.RicianChannel
Системный объект.
В этой таблице показаны другие выбранные настройки спектра по умолчанию. Эти настройки можно изменить с их значений по умолчанию с помощью меню View > Spectrum Settings.
Настройки спектра | Значение |
---|---|
Main options> Type |
|
Main options> Window length | Длина фильтра канала |
Main options> NFFT |
|
Window options> Window |
|
Trace options> Units |
|
Этот рисунок показывает график частотной характеристики для частотно-избирательного канала.
Допплеровский спектр
График Допплеровского спектра отображает теоретический Допплеровский спектр и эмпирически определенные точки данных. Теоретические данные отображаются как линия для случая нестатических каналов и как точка для статических каналов. Эмпирические данные показаны как символы *. Перед обновлением эмпирического графика внутренний буфер должен быть полностью заполнен фильтрованными Гауссовыми выборками. Эмпирический график является средним значением спектра, рассчитанным из каждого полного буфера. Для нестатических каналов количество входа образцов, необходимых перед следующим обновлением, отображается в левом верхнем углу графика. Количество необходимых выборок зависит от частоты дискретизации и максимального доплеровского сдвига. Для статических каналов текст "Reset fading channel for next update
"отображается.
[1] Oestges, Claude, and Bruno Clerckx. MIMO Wireless Communications: от распространения в реальном мире до проекта кода пространства-времени. 1st ed. Boston, MA: Elsevier, 2007.
[2] Коррея, Луис М., и Европейское сотрудничество в области научно-технических исследований (Организация), эд. Мобильные широкополосные мультимедийные сети: Методы, модели и инструменты для 4G. 1-й эд. Амстердам; Бостон: Elsevier/Академическая пресса, 2006.
[3] Кермоал, Дж. П., Л. Шумахер, К. И. Педерсен, П. Е. Могенсен, и Ф. Фредериксен. Stochastic MIMO Radio Channel Model with Experimental Validation (неопр.) (недоступная модель). IEEE Journal on Selected Areas in Communications 20, no. 6 (август 2002): 1211-26. https://doi.org/10.1109/JSAC.2002.801223.
[4] Jeruchim, Michel C., Philip Balaban, and K. Sam Shanmugan. Симуляция систем связи. Второе издание. Бостон, Массачусетс: Спрингер, США, 2000.
[5] Patzold, M., Cheng-Xiang Wang, and B. Hogstad. «Два новых метода на основе суммы синусоидов для эффективной генерации нескольких некоррелированных Релеевских замираний волн». Транзакции IEEE по беспроводной связи 8, № 6 (июнь 2009 г.): 3122-31. https://doi.org/10.1109/TWC.2009.080769.
Указания и ограничения по применению:
Чтобы сгенерировать код С, установите DopplerSpectrum
свойство одной доплеровской спектральной структуры.
Генерация кода доступна только тогда, когда Visualization
свойство 'Off'
.
Смотрите Системные объекты в Генерации кода MATLAB (MATLAB Coder).
comm.AWGNChannel
| comm.ChannelFilter
| comm.MIMOChannel
| comm.RayleighChannel
| comm.WINNER2Channel
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.