comm.RayleighChannel

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

Описание

The comm.RayleighChannel Система object™ фильтрует входной сигнал через многолучевой канал с релеевским замиранием. Для получения дополнительной информации о замираниях при обработке модели см. «Методология симуляции многолучевых каналов с замираниями».

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

  1. Создайте comm.RayleighChannel Объекту и установите его свойства.

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

Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».

Создание

Описание

rayleighchan = comm.RayleighChannel создает частотно-избирательный или частотно-плоский многолучевой Канал с релеевским замиранием Системного объекта. Этот объект фильтрует действительный или комплексный входной сигнал через многолучевой канал, чтобы получить сигнал с нарушением канала.

пример

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

Свойства

расширить все

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

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

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

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

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

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

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

  • Когда PathDelays является вектором, канал является частотно-избирательным.

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

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

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

Нормализуйте среднее усиление пути до 0 дБ, заданное как логическое 1 (true) или 0 (false).

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

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

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

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

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

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

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

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

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

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

Зависимости

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

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

Метод затухания модели канала, заданный как 'Filtered Gaussian noise' или 'Sum of sinusoids'.

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

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

Зависимости

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

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

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

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

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

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

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

Зависимости

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

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

Опция вывода коэффициентов усиления пути, заданная как 0 (false) или 1 (true). Установите это свойство на 1 (true) для вывода коэффициентов усиления пути канала базового процесса затухания.

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

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

Описание

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

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

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

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

расширить все

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

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

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

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

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

расширить все

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

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

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

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

release(obj)

расширить все

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

Примеры

свернуть все

Этот пример показывает, как создать один и тот же многолучевой ответ Канала с релеевским замиранием с использованием двух различных методов для генерации случайных чисел. Многолучевая система 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);

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

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

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

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

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')

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

В этом примере показано, как использовать 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') 

Figure contains 2 axes. Axes 1 with title Autocovariance of real part of Rayleigh process contains 2 objects of type line. These objects represent Using comm.RayleighChannel, Using Bessel function of the first kind. Axes 2 with title Autocovariance of imaginary part of Rayleigh process contains an object of type line. This object represents Using comm.RayleighChannel.

Вычислите среднюю квадратную ошибку.

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.

Подробнее о

расширить все

Ссылки

[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.

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

.
Введенный в R2013b