comm.BarkerCode

Сгенерируйте биполярный код Баркера

Описание

comm.BarkerCode Система object™ генерирует биполярный код Баркера. Коды Баркера имеют низкие свойства автокорреляции. Короткий отрезок и низкие боковые лепестки корреляции делают коды Баркера полезными для синхронизации системы координат в системах цифровой связи. Для получения дополнительной информации см. Коды Баркера.

Сгенерировать код Баркера:

  1. Создайте comm.BarkerCode объект и набор его свойства.

  2. Вызовите объект, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Описание

barkerCode = comm.BarkerCode создает биполярный Системный объект генератора кода Баркера, чтобы сгенерировать код Баркера.

пример

barkerCode = comm.BarkerCode(Name,Value) свойства наборов с помощью одной или нескольких пар "имя-значение". Например, comm.BarkerCode('Length',11,'SamplesPerFrame','11') конфигурирует биполярный Системный объект генератора кода Баркера, чтобы вывести длину 11 кодов Баркера в системе координат с 11 выборками. Заключите каждое имя свойства в кавычки.

Свойства

развернуть все

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

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

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

Длина сгенерированного кода, заданного как 1, 2, 3, 4, 5, 7, 11, или 13. Для получения дополнительной информации см. Коды Кусачек для снятия оболочки.

Пример: 'Length',2 выводит код Баркера [–1; 1].

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

Выборки на выходную систему координат, заданную как положительное целое число. Если SamplesPerFrame M, объектные выходные параметры система координат, содержащая выборки M, состоявшие из длины кодовые последовательности Кусачек для снятия оболочки N. При необходимости объект повторяет кодовую последовательность, чтобы достигнуть выборок M. N является длиной сгенерированного кода, который установлен Length свойство.

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

Тип выходных данных, заданный как double или int8.

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

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

Для версий ранее, чем R2016b, используйте step функционируйте, чтобы запустить алгоритм Системного объекта. Аргументы к step объект, который вы создали, сопровождаемый аргументами, показанными в этом разделе.

Например, y = step(obj,x) и y = obj(x) выполните эквивалентные операции.

Синтаксис

Описание

пример

y = barkerCode выводит систему координат Баркера кода, как вектор-столбец. Если длина системы координат превышает разрядность кода Баркера, объект заполняет систему координат путем повторения кода Баркера.

Установите тип данных выхода с OutputDataType свойство.

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

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

release(obj)

развернуть все

cloneСоздайте объект дублированной системы
isLockedОпределите, используется ли Системный объект
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

развернуть все

Создайте Системный объект Кусачек для снятия оболочки кода с 10 выборками на систему координат.

  barker = comm.BarkerCode('SamplesPerFrame',10)
barker = 
  comm.BarkerCode with properties:

             Length: 7
    SamplesPerFrame: 10
     OutputDataType: 'double'

Сгенерируйте системы координат mulitple при помощи значения по умолчанию кодовая последовательность Баркера длины 7. Код переносится в системе координат и продолжается в следующей системе координат.

  for ii = 1:2
      seq = barker()
  end
seq = 10×1

    -1
    -1
    -1
     1
     1
    -1
     1
    -1
    -1
    -1

seq = 10×1

     1
     1
    -1
     1
    -1
    -1
    -1
     1
     1
    -1

Вычислите пиковый уровень бокового лепестка для каждого кода Баркера.

CodeLength = [1 2 3 4 5 7 11 13]';
psl = zeros(length(CodeLength),1);
ac = dsp.Autocorrelator;
barker = comm.BarkerCode;
for ii=1:length(CodeLength)
    spf = CodeLength(ii);
    barker.Length = CodeLength(ii);
    barker.SamplesPerFrame = spf;
    seq = barker();
    sll_dB = 20*log10(abs(ac(seq)));
    psl(ii) = -(max(sll_dB));
    release(barker);
    release(ac);
end
Sidelobe_dB = psl;
T = table(CodeLength,Sidelobe_dB)
T=8×2 table
    CodeLength    Sidelobe_dB
    __________    ___________

         1                0  
         2          -6.0206  
         3          -9.5424  
         4          -12.041  
         5          -13.979  
         7          -16.902  
        11          -20.828  
        13          -22.279  

Больше о

развернуть все

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

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