exponenta event banner

коммуникация. BarkerCode

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

Описание

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

Чтобы создать код Баркера:

  1. Создать comm.BarkerCode и задайте его свойства.

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

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

Создание

Описание

barkerCode = comm.BarkerCode создает объект System генератора биполярного кода Баркера для создания кода Баркера.

пример

barkerCode = comm.BarkerCode(Name,Value) задает свойства, используя одну или несколько пар имя-значение. Например, comm.BarkerCode('Length',11,'SamplesPerFrame','11') конфигурирует объект System генератора биполярного кода Баркера для вывода кода Баркера длиной 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 для запуска алгоритма объекта System. Аргументы для step - созданный объект, за которым следуют аргументы, показанные в этом разделе.

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

Синтаксис

Описание

пример

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

Задайте тип данных вывода с помощью OutputDataType собственность.

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

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

release(obj)

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

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

Примеры

свернуть все

Создайте объект Barker code System с 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