comm.BarkerCode

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

Описание

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

Чтобы сгенерировать код Баркера:

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

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

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

Создание

Описание

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

пример

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

Свойства

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

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

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

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в 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'

Сгенерируйте несколько системы координат с помощью стандартной последовательности кода Баркера длины 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);
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(xcorr(seq)));
    psl(ii) = -(max(sll_dB));
    release(barker);
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