Пропустите входной сигнал через многолучевой Канал с релеевским замиранием
The comm.RayleighChannel
Система object™ фильтрует входной сигнал через многолучевой канал с релеевским замиранием. Для получения дополнительной информации о замираниях при обработке модели см. «Методология симуляции многолучевых каналов с замираниями».
Чтобы фильтровать входной сигнал с помощью многолучевого канала с релеевским замиранием:
Создайте comm.RayleighChannel
Объекту и установите его свойства.
Вызывайте объект с аргументами, как будто это функция.
Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».
создает частотно-избирательный или частотно-плоский многолучевой Канал с релеевским замиранием Системного объекта. Этот объект фильтрует действительный или комплексный входной сигнал через многолучевой канал, чтобы получить сигнал с нарушением канала.rayleighchan
= comm.RayleighChannel
устанавливает свойства с помощью одного или нескольких аргументов пары "имя-значение". Заключайте каждое имя свойства в кавычки. Для примера, rayleighchan
= comm.RayleighChannel(Name,Value)comm.RayleighChannel (
устанавливает скорость выборки входного сигнала равную 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
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.RayleighChannel
info | Характеристическая информация о затухающем объекте канала |
Этот пример показывает, как создать один и тот же многолучевой ответ Канала с релеевским замиранием с использованием двух различных методов для генерации случайных чисел. Многолучевая система object™ Канала с релеевским замиранием включает в себя два способа генерации случайных чисел. Можно использовать текущий глобальный поток или алгоритм mt19937ar с заданным seed. При взаимодействии с глобальным потоком системный объект может получить те же выходы от этих двух методов.
Создайте Системный объект модулятора PSK, чтобы модулировать случайным образом сгенерированные данные.
pskModulator = comm.PSKModulator; channelInput = pskModulator(randi([0 pskModulator.ModulationOrder-1],1024,1));
Создайте многолучевой системный объект Канала с релеевским замиранием, задав метод генерации случайных чисел как алгоритм my19937ar и начальное число случайных чисел как 22.
rayleighchan = comm.RayleighChannel(... 'SampleRate',10e3, ... 'PathDelays',[0 1.5e-4], ... 'AveragePathGains',[2 3], ... 'NormalizePathGains',true, ... 'MaximumDopplerShift',30, ... 'DopplerSpectrum',{doppler('Gaussian',0.6),doppler('Flat')}, ... 'RandomStream','mt19937ar with seed', ... 'Seed',22, ... 'PathGainsOutputPort',true);
Фильтрация модулированных данных при помощи многолучевого распространения Канала с релеевским замиранием Системного объекта.
[chanOut1,pathGains1] = rayleighchan(channelInput);
Установите Системный объект, чтобы использовать глобальный поток для генерации случайных чисел.
release(rayleighchan);
rayleighchan.RandomStream = 'Global stream';
Установите глобальный поток таким же seed, которое было задано при создании многолучевого Канала с релеевским замиранием Системного объекта.
rng(22)
Фильтрация модулированных данных при помощи многолучевого распространения Канала с релеевским замиранием Системного объекта снова.
[chanOut2,pathGains2] = rayleighchan(channelInput);
Проверьте, что выходы усиления канала и пути одинаковы для каждого из двух методов.
isequal(chanOut1,chanOut2)
ans = logical
1
isequal(pathGains1,pathGains2)
ans = logical
1
Этот пример показов, как создать частотно-избирательный многолучевой Канал с релеевским замиранием Системного объекта и отобразить его импульс и частотные характеристики.
Установите частоту дискретизации 3,84 МГц. Задайте задержки и усиления пути при помощи строения ITU пешеходного B-канала. Установите максимальный доплеровский сдвиг на 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
Создайте многолучевой Канал с релеевским замиранием Системного объекта с помощью ранее определенных свойств и чтобы визуализировать графики импульсной характеристики и частотной характеристики.
rayleighchan = comm.RayleighChannel('SampleRate',fs, ... 'PathDelays',pathDelays, ... 'AveragePathGains',avgPathGains, ... 'MaximumDopplerShift',fD, ... 'Visualization','Impulse and frequency responses');
Сгенерируйте случайные двоичные данные и передайте их через многолучевой канал с релеевским замиранием. График импульсной характеристики позволяет вам идентифицировать отдельные пути и соответствующие им коэффициенты фильтра. График частотной характеристики показывает частотно-избирательный характер пешеходного B-канала ITU.
x = randi([0 1],1000,1); y = rayleighchan(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,4 с и 0,7 с, соответственно.
to0 = 0.0; to1 = 0.1; to2 = 0.4; to3 = 0.7; 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. Включите выход коэффициента усиления пути.
rayleighchan1 = comm.RayleighChannel('SampleRate',fs, ... 'MaximumDopplerShift',5, ... 'RandomStream','mt19937ar with seed', ... 'Seed',17, ... 'FadingTechnique','Sum of sinusoids', ... 'PathGainsOutputPort',true);
Создайте клон многолучевого Канала с релеевским замиранием Системного объекта. Установите источник для начального времени, чтобы время смещения замирающего канала могло быть задано как входной параметр при использовании системного объекта.
rayleighchan2 = clone(rayleighchan1);
rayleighchan2.InitialTimeSource = 'Input port';
Передайте случайные двоичные данные через первый многолучевой Канал с релеевским замиранием Системного объекта, rayleighchan1
. Данные передаются за все 1000 временных выборок. В данном примере требуется только комплексное усиление пути.
[~,pg0] = rayleighchan1(d0);
Передайте случайные данные через второй многолучевой Канал с релеевским замиранием Системного объекта, rayleighchan2
, где начальные смещения времени предусмотрены в качестве входных параметров.
[~,pg1] = rayleighchan2(d1,to1); [~,pg2] = rayleighchan2(d2,to2); [~,pg3] = rayleighchan2(d3,to3);
Сравните количество выборок, обработанных двумя каналами с помощью info
функция объекта. The rayleighchan1
объект обработал 1000 выборки, в то время как rayleighchan2
объект обработал только 300 выборки.
G = info(rayleighchan1); H = info(rayleighchan2); [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.RayleighChannel
Системный объект для воспроизведения многолучевого Канала с релеевским замиранием выхода через несколько системы координат.
Создайте многолучевой Канал с релеевским замиранием Системного объекта, определяющий два пути и задающий данные для прохождения через канал.
rayleighchan = comm.RayleighChannel('SampleRate',1000,'PathDelays',[0 1.5e-3], ... 'AveragePathGains',[0 -3],'PathGainsOutputPort',true)
rayleighchan = comm.RayleighChannel with properties: SampleRate: 1000 PathDelays: [0 0.0015] AveragePathGains: [0 -3] NormalizePathGains: true MaximumDopplerShift: 1.0000e-03 DopplerSpectrum: [1x1 struct] Show all properties
data = randi([0 1],600,1);
Передайте данные через канал. Назначьте ChannelFilterCoefficients
значение свойства переменной coeff
. В цикле for вычислите дробный задержанный входной сигнал в местах задержки пути, сохраненных в coeff
, применить коэффициент усиления пути и суммировать результаты для всех путей. Сравните выход многолучевого Канала с релеевским замиранием Системного объекта (chanout1
) к выходу, воспроизведенному с использованием коэффициентов усиления пути и ChannelFilterCoefficients
свойство многолучевого Канала с релеевским замиранием Системного объекта (chanout2
).
chaninfo = info(rayleighchan); coeff = chaninfo.ChannelFilterCoefficients; Np = length(rayleighchan.PathDelays); state = zeros(size(coeff,2)-1, size(coeff, 1)); nFrames = 10; chkChan = zeros(nFrames,1); for jj = 1 : nFrames data = randi([0 1],600,1); [chanout1,pg] = rayleighchan(data); fracdelaydata = zeros(size(data,1),Np); % Calculate the fractional delayed input signal. for ii = 1:Np [fracdelaydata(:,ii),state(:,ii)] = ... filter(coeff(ii,:),1,data,state(:,ii)); end % Apply the path gains and sum the results for all paths. Compare the % channel outputs, chanout1 and chanout2. chanout2 = sum(pg .* fracdelaydata,2); chkChan(jj) = isequal(chanout1,chanout2); end chkChan'
ans = 1×10
1 1 1 1 1 1 1 1 1 1
Проверьте, что автокорреляция выхода усиления пути из Системного объекта канала Релея является функцией Бесселя. Основываясь на результатах в [1] и Приложении A [2], мы знаем, что, когда автокорреляция выходов усиления пути является функцией Бесселя, и Допплеровский спектр имеет форму Джейкса.
Инициализируйте параметры симуляции.
Rsym = 9600; % Input signal symbol rate (symbols/sec) sps = 10; % Number of samples per input symbol Fs = sps*Rsym; % Input signal sampling frequency (samples/sec) Ts = 1/Fs; % Input signal sampling period (sec) numsym = 1e6; % Total number of input symbols to simulate numsamp = numsym*sps; % Total number of channel samples to simulate fd = 100; % Maximum Doppler frequency shift (Hz) num_acsamp = 5000; % Number of samples of autocovariance of complex fading process calculated numtx = 1; % Number of transmit antennas numrx = 1; % Number of receive antennas numsin = 48; % Number of sinusoids frameLen = 10000; numFrames = numsamp/frameLen;
Сконфигурируйте Системный объект канала Релея.
chan = comm.RayleighChannel('FadingTechnique','Sum of sinusoids', ... 'NumSinusoids',numsin,'RandomStream','mt19937ar with seed', ... 'PathDelays',0,'AveragePathGains',0,'SampleRate',Fs, ... 'MaximumDopplerShift',fd,'PathGainsOutputPort',true);
Примените модуляцию DPSK к случайному битовому потоку.
tx = randi([0 1],numsamp,numtx); % Random bit stream dpskSig = dpskmod(tx,2); % DPSK signal
Пропустите модулированный сигнал через канал.
outsig = zeros(numsamp,numrx); pg_rx = zeros(numsamp,numrx,numtx); for frmNum = 1:numFrames [outsig((1:frameLen)+(frmNum-1)*frameLen,:),pathGains] = chan(dpskSig((1:frameLen)+(frmNum-1)*frameLen,:)); for i = 1:numrx pg_rx((1:frameLen)+(frmNum-1)*frameLen,i,:) = pathGains(:,:,:,i); end end
Используя коэффициент усиления пути канала, принятый на антенну, вычислите автоковариацию процесса затухания для каждого пути приема и передачи.
autocov = zeros(frameLen+1,numrx,numtx); autocov_normalized_real = zeros(num_acsamp+1,numrx,numtx); autocov_normalized_imag = zeros(num_acsamp+1,numrx,numtx); for i = 1:numrx % Compute autocovariance of simulated complex fading process for j = 1:numtx autocov(:,i,j) = xcov(pg_rx(:,i,j),num_acsamp); % Real part of normalized autocovariance autocov_normalized_real(:,i,j) = real(autocov(num_acsamp+1:end,i,j)/autocov(num_acsamp+1,i,j)); % Imaginary part of normalized autocovariance autocov_normalized_imag(:,i,j) = imag(autocov(num_acsamp+1:end,i,j)/autocov(num_acsamp+1,i,j)); end end
Использование besselj
функция вычисляет теоретическую автоковариацию комплексного процесса затухания.
Rrr = zeros(1,num_acsamp+1); for n = 1:1:num_acsamp+1 Rrr(n) = besselj(0,2*pi*fd*(n-1)*Ts); end Rrr_normalized = Rrr/Rrr(1);
Отобразите автоковариацию, сравнивая результаты от Системного объекта канала Релея и функции бесселя.
subplot(2,1,1) plot(autocov_normalized_real,'b-') hold on plot(Rrr_normalized,'r-') hold off legend('Using comm.RayleighChannel','Using Bessel function of the first kind') title('Autocovariance of real part of Rayleigh process') subplot(2,1,2) plot(autocov_normalized_imag) legend('Using comm.RayleighChannel') title('Autocovariance of imaginary part of Rayleigh process')
Вычислите среднюю квадратную ошибку.
act_mse_real = sum((autocov_normalized_real-repmat(Rrr_normalized.',1,numrx,numtx)).^2,1)/size(autocov_normalized_real,1)
act_mse_real = 7.0043e-08
act_mse_imag = sum((autocov_normalized_imag-0).^2,1)/size(autocov_normalized_imag,1)
act_mse_imag = 4.1064e-07
Ссылки
1. Дент, П., Г. Э. Боттомли и Т. Крофт. Jakes Fading Model Revisited (неопр.) (недоступная модель). Электронные буквы 29, № 13 (1993): 1162. https://doi.org/10.1049/el: 19930777.
2. Пятцольд, Маттиас. Мобильные каналы с замираниями. Chichester, UK: John Wiley & Sons, Ltd, 2002. https://doi.org/10.1002/0470847808.
Частотный коэффициент отсечения 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.RayleighChannel
Системный объект позволяет визуализировать импульсную характеристику канала, частотную характеристику и Допплеровский спектр.
Примечание
Отображаемые и заданные местоположения усиления пути могут отличаться на целых 5% от входа шага расчета.
Скорость отображения визуализации управляется комбинацией SamplesToDisplay
свойство и Playback > Reduce Updates to Improve Performance элемент меню возможностей. Уменьшение процента выборок для отображения и включение сокращенных обновлений может ускорить визуализацию возможностей визуализации.
После закрытия возможностей визуализации вручную вызовы системного объекта выполняются с его нормальной скоростью.
Генерация кода доступна только тогда, когда Visualization
для свойства задано значение 'Off'
.
Импульсная характеристика
Импульсная характеристика возможностей отображает усиления пути, коэффициенты фильтра канала и интерполированные усиления пути. Усиления пути происходят в образцах времени, которые соответствуют заданному PathDelays
свойство и может не совпадать с входным временем дискретизации. Коэффициенты фильтра канала используются для моделирования канала. Они интерполируются из фактических коэффициентов усиления пути и выравниваются со временем входной дискретизации. В случаях, когда усиления пути выравниваются со временем дискретизации, усиления пути перекрывают коэффициенты фильтра. Интерполяция синуса используется, чтобы соединить коэффициенты фильтра канала и показана как интерполированные усиления пути. Эти точки используются исключительно в целях отображения и не используются в последующей фильтрации канала. Для плоского замирающего канала (один путь) кривая интерполяции синуса не отображается. Для всех графиков импульсной характеристики система координат и номера выборок показаны в левом верхнем углу возможностей.
График импульсной характеристики имеет ту же панель инструментов и меню, что и dsp.ArrayPlot
Системный объект.
Когда указанные усиления пути совпадают со скоростью дискретизации, усиления пути и коэффициенты фильтра канала перекрываются. На этом рисунке импульсная характеристика показывает, что усиления пути перекрывают коэффициенты фильтра.
Если указанные усиления пути не выравниваются со скоростью дискретизации, усиления пути и коэффициенты фильтра канала не перекрываются. На этом рисунке коэффициенты фильтра распределены одинаково. Усиления пути не перекрываются с коэффициентами фильтра канала, потому что усиления пути не совпадают со скоростью дискретизации.
Этот рисунок показывает импульсную характеристику для частотно-плоского канала. В этом случае интерполированные усиления пути не отображаются.
Частотная характеристика
Частотная характеристика возможностей отображает многолучевой Канал с релеевским замиранием спектр путем принятия дискретного преобразования Фурье коэффициентов фильтра канала. График частотной характеристики имеет ту же панель инструментов и меню, что и dsp.SpectrumAnalyzer
Системный объект.
Пределы графика по оси Y вычисляются на основе NormalizePathGains
и AveragePathGains
свойства comm.RayleighChannel
Системный объект.
В этой таблице показаны другие выбранные настройки спектра по умолчанию. Эти настройки можно изменить с их значений по умолчанию с помощью меню 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).
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.