info

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

Синтаксис

Описание

пример

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]
       ChannelFiltering: true
    PathGainsOutputPort: false

  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]
       ChannelFiltering: true
    PathGainsOutputPort: false

  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]
          ChannelFiltering: true
       PathGainsOutputPort: false

  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]
          ChannelFiltering: true
       PathGainsOutputPort: false

  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: [-0.0326 0.0403 -0.0504 0.0646 -0.0861 ... ]
          NumSamplesProcessed: 0

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

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

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

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

Создайте плоско исчезающий Системный объект канала MIMO 2 на 2, отключив фильтрацию канала и определение частоты дискретизации на 1 000 Гц, сумма синусоид, исчезающая метод и количество отсчетов, чтобы просмотреть. Задайте начальное значение так, чтобы результаты могли быть повторены. Используйте InitialTime по умолчанию установка свойства так, чтобы исчезающий канал был симулирован со времени 0.

mimoChan1 = comm.MIMOChannel('SampleRate',fs, ...
    'MaximumDopplerShift',fD, ...
    'RandomStream','mt19937ar with seed', ...
    'Seed',17, ...
    'FadingTechnique','Sum of sinusoids', ...
    'ChannelFiltering',false, ...
    'NumSamples',ns);

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

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

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

pg0 = mimoChan1();
pg1 = mimoChan2(to1);
pg2 = mimoChan2(to2);
pg3 = mimoChan2(to3);

Сравните количество отсчетов, обработанное двумя каналами при помощи info метод. Результаты показывают тот mimoChan1 обработанный 1 000 выборок и тот mimoChan2 обработанный только 300 выборок.

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

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

plot(t0,pathGain0,'r--')
hold on
plot(t1,pathGain1,'b')
plot(t2,pathGain2,'b')
plot(t3,pathGain3,'b')
grid
title('Continuous and Discontinuous Channel Response')
xlabel('Time (sec)')
ylabel('Path Gain (dB)')
legend('Continuous','Discontinuous','location','nw')

Figure contains an axes object. The axes object with title Continuous and Discontinuous Channel Response 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