exponenta event banner

информация

Характеристическая информация об объекте канала замирания

Описание

пример

infostruct = info(obj) возвращает структуру, содержащую характеристическую информацию о object™ системы канала замирания.

Примеры

свернуть все

Используйте info функция объекта для получения информации из comm.RayleighChannel объект.

Создайте объект канала Рэлея и некоторые данные для прохождения через канал.

rayleighchan = comm.RayleighChannel('SampleRate',1000,'PathDelays',[0 0],'AveragePathGains',[0 0])
rayleighchan = 
  comm.RayleighChannel with properties:

             SampleRate: 1000
             PathDelays: [0 0]
       AveragePathGains: [0 0]
     NormalizePathGains: true
    MaximumDopplerShift: 1.0000e-03
        DopplerSpectrum: [1x1 struct]

  Show all properties

data = randi([0 1],600,1);

Проверьте информацию об объекте канала Рэлея.

info(rayleighchan)
ans = struct with fields:
           ChannelFilterDelay: 0
    ChannelFilterCoefficients: [2x1 double]
          NumSamplesProcessed: 0

Передайте данные через канал и снова проверьте информацию об объекте.

rayleighchan(data);
info(rayleighchan)
ans = struct with fields:
           ChannelFilterDelay: 0
    ChannelFilterCoefficients: [2x1 double]
          NumSamplesProcessed: 600

Отпустите объект, чтобы обновить атрибуты. Добавьте задержку 1.5e-3 второго пути ко второму пути задержки.

release(rayleighchan)
rayleighchan.PathDelays = [0 1.5e-3]
rayleighchan = 
  comm.RayleighChannel with properties:

             SampleRate: 1000
             PathDelays: [0 0.0015]
       AveragePathGains: [0 0]
     NormalizePathGains: true
    MaximumDopplerShift: 1.0000e-03
        DopplerSpectrum: [1x1 struct]

  Show all properties

Передайте данные через канал и снова проверьте информацию об объекте.

rayleighchan(data);
info(rayleighchan)
ans = struct with fields:
           ChannelFilterDelay: 6
    ChannelFilterCoefficients: [2x16 double]
          NumSamplesProcessed: 600

Используйте info функция объекта для получения информации из comm.RicianChannel объект.

Создайте объект канала Rician и некоторые данные для передачи через канал.

ricianchan = comm.RicianChannel('SampleRate',500)
ricianchan = 
  comm.RicianChannel with properties:

                SampleRate: 500
                PathDelays: 0
          AveragePathGains: 0
        NormalizePathGains: true
                   KFactor: 3
    DirectPathDopplerShift: 0
    DirectPathInitialPhase: 0
       MaximumDopplerShift: 1.0000e-03
           DopplerSpectrum: [1x1 struct]

  Show all properties

data = randi([0 1],600,1);

Проверьте информацию об объекте канала Rician.

info(ricianchan)
ans = struct with fields:
           ChannelFilterDelay: 0
    ChannelFilterCoefficients: 1
          NumSamplesProcessed: 0

Передайте данные через канал и снова проверьте информацию об объекте.

ricianchan(data);
info(ricianchan)
ans = struct with fields:
           ChannelFilterDelay: 0
    ChannelFilterCoefficients: 1
          NumSamplesProcessed: 600

Отпустите объект, чтобы обновить атрибуты. Добавьте задержку второго тракта с задержкой 3,1e-3 секунды и средним коэффициентом усиления тракта -3 дБ.

release(ricianchan)
ricianchan.PathDelays = [0 3.1e-3];
ricianchan.AveragePathGains = [0 -3]
ricianchan = 
  comm.RicianChannel with properties:

                SampleRate: 500
                PathDelays: [0 0.0031]
          AveragePathGains: [0 -3]
        NormalizePathGains: true
                   KFactor: 3
    DirectPathDopplerShift: 0
    DirectPathInitialPhase: 0
       MaximumDopplerShift: 1.0000e-03
           DopplerSpectrum: [1x1 struct]

  Show all properties

Передайте данные через канал и снова проверьте информацию об объекте.

ricianchan(data);
info(ricianchan)
ans = struct with fields:
           ChannelFilterDelay: 6
    ChannelFilterCoefficients: [2x16 double]
          NumSamplesProcessed: 600

Используйте info функция объекта для получения информации из comm.MIMOChannel объект.

Создайте объект канала MIMO и некоторые данные для передачи через канал.

mimo = comm.MIMOChannel('SampleRate',1000);
data = randi([0 1],600,2);

Проверьте информацию об объекте канала MIMO.

info(mimo)
ans = struct with fields:
           ChannelFilterDelay: 0
    ChannelFilterCoefficients: 1
          NumSamplesProcessed: 0

Передайте данные через канал и снова проверьте информацию об объекте.

mimo(data);
info(mimo)
ans = struct with fields:
           ChannelFilterDelay: 0
    ChannelFilterCoefficients: 1
          NumSamplesProcessed: 600

Отпустите объект, чтобы обновить атрибуты. Добавить 2.5e-3 задержка второго тракта. Перепроверьте информацию об объекте.

release(mimo)
mimo.PathDelays = 2.5e-3;
info(mimo)
ans = struct with fields:
           ChannelFilterDelay: 5
    ChannelFilterCoefficients: [1x16 double]
          NumSamplesProcessed: 0

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

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

t0 = 0:0.001:0.999;   % Transmission 0
t1 = 0.1:0.001:0.199; % Transmission 1
t2 = 0.4:0.001:0.499; % Transmission 2
t3 = 0.7:0.001:0.799; % Transmission 3

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

d0 = randi([0 1],1000,2);  % 1000 samples
d1 = randi([0 1],100,2);   % 100 samples
d2 = randi([0 1],100,2);   % 100 samples
d3 = randi([0 1],100,2);   % 100 samples

Создайте плоский замирающий объект 2x2 MIMO channel System с помощью Sum of sinusoids техника затухания. Чтобы результаты можно было повторить, укажите начальное число, используя пару имя-значение. В качестве InitialTime свойство не указано, канал замирания будет моделироваться с момента 0. Активизируйте выходной порт усиления тракта.

mimoChan1 = comm.MIMOChannel('SampleRate',1000, ...
    'MaximumDopplerShift',5, ...
    'RandomStream','mt19937ar with seed', ...
    'Seed',17, ...
    'FadingTechnique','Sum of sinusoids', ...
    'PathGainsOutputPort',true);

Создайте клон системного объекта канала MIMO. Установите InitialTimeSource свойство для Input port чтобы время смещения канала замирания можно было задать в качестве входного аргумента для mimoChan функция.

mimoChan2 = clone(mimoChan1);
mimoChan2.InitialTimeSource = 'Input port';

Пропускать случайные двоичные данные через первый объект канала, mimoChan1. Данные передаются по всем 1000 отсчетам времени. Для этого примера необходим только комплексный коэффициент усиления тракта.

[~,pg0] = mimoChan1(d0);

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

[~,pg1] = mimoChan2(d1,0.1);
[~,pg2] = mimoChan2(d2,0.4);
[~,pg3] = mimoChan2(d3,0.7);

Сравните количество выборок, обработанных двумя каналами с помощью info способ. Можно увидеть, что 1000 проб были обработаны mimoChan1 в то время как только 300 были обработаны mimoChan2.

G = info(mimoChan1);
H = info(mimoChan2);
[G.NumSamplesProcessed H.NumSamplesProcessed]
ans = 1×2

        1000         300

Преобразование коэффициентов усиления тракта в децибелы для тракта, соответствующего первой передающей и первой приемной антенне.

pathGain0 = 20*log10(abs(pg0(:,1,1,1)));
pathGain1 = 20*log10(abs(pg1(:,1,1,1)));
pathGain2 = 20*log10(abs(pg2(:,1,1,1)));
pathGain3 = 20*log10(abs(pg3(:,1,1,1)));

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

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

Figure contains an axes. The axes contains 4 objects of type line. These objects represent Continuous, Discontinuous.

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

свернуть все

Системный объект для получения информации, указанный как comm.MIMOChannel, comm.RayleighChannel, или comm.RicianChannel Системный объект.

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

свернуть все

Структура, содержащая эти поля с информацией об объекте System.

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

Коэффициенты канального фильтра, возвращаемые в виде матрицы. Матрица коэффициентов используется для преобразования коэффициентов усиления тракта в коэффициенты усиления отводов канального фильтра для каждой выборки и каждой пары передающих и приемных антенн.

Число выборок, обработанных объектом канала с момента последнего сброса, возвращенных как положительное целое число.

Время окончания последнего кадра в секундах, возвращенное как положительный скаляр. Это значение используется для подтверждения времени моделирования.

Зависимости

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

См. также

Объекты

Представлен в R2012a