info

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

Синтаксис

Описание

пример

infostruct = info(obj) возвращает структуру, содержащую характеристическую информацию о замирающем канале System 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 объект.

Создайте объект канала Райса и некоторые данные, чтобы пройти через канал.

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

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

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 и передайте данные через него с помощью метода суммы синусоидов. Пример демонстрирует, как состояние канала поддерживается в случаях, когда данные прерывисто передаются.

Определите общее время симуляции и три временных сегмента, для которых будут переданы данные. В этом случае канал моделируется в течение 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 с Системным объектом Sum of sinusoids метод затухания. Чтобы результаты могли быть повторены, задайте seed с помощью пары "имя-значение". Как 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 Системный объект.

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

свернуть все

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

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

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

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

Последняя система координат время окончания в секундах, возвращается как положительная скалярная величина. Используйте это значение для подтверждения времени симуляции.

Зависимости

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

См. также

Объекты

Введенный в R2012a