Буферизация и основанная на системе координат обработка

Буферный вход в системы координат

Многоканальные сигналы формата кадра 1 может быть буферизован в многоканальные сигналы формата кадра L с помощью блока Buffer. L больше 1.

Следующая фигура является графическим представлением сигнала с форматом кадра 1 будучи преобразованным в сигнал формата кадра L блоком Buffer.

В следующем примере, двухканальном 1 выборка на сигнал системы координат буферизуется в двухканальный 4 выборки на сигнал системы координат использование блока Buffer:

  1. В командной строке MATLAB® введите ex_buffer_tut.

    Модель Buffer Example открывается.

  2. Дважды кликните блок Signal From Workspace. Диалоговое окно Source Block Parameters: Signal From Workspace открывается.

  3. Установите параметры можно следующим образом:

    • Signal = [1:10;-1:-1:-10]'

    • Sample time = 1

    • Samples per frame = 1

    • Form output after final data value = Setting to zero

    На основе этих параметров блок Signal from Workspace выводит сигнал с длиной системы координат 1 и периодом расчета 1 секунды. Поскольку вы устанавливаете установку параметра Samples per frame на 1, блок Signal From Workspace выводит одну двухканальную выборку в каждом шаге расчета.

  4. Сохраните эти параметры и закройте диалоговое окно путем нажатия на OK.

  5. Дважды кликните блок Buffer. Диалоговое окно Function Block Parameters: Buffer открывается.

  6. Установите параметры можно следующим образом:

    • Output buffer size (per channel) = 4

    • Buffer overlap = 0

    • Initial conditions = 0

    Поскольку вы устанавливаете параметр Output buffer size на 4, блок Buffer выводит сигнал системы координат с форматом кадра 4.

  7. Запустите модель.

    Фигура ниже является графической интерпретацией поведения модели в процессе моделирования.

Примечание

В качестве альтернативы можно установить параметр Samples per frame блока Signal From Workspace к 4 и создайте тот же сигнал, показанный выше, не используя блок Buffer. Блок Signal From Workspace выполняет буферизацию внутренне, для того, чтобы вывести двухканальную систему координат.

Буферные сигналы в системы координат с перекрытием

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

Параметр Buffer overlap блока Buffer задает количество точек перекрытия, L. В случае перекрытия (L > 0), период системы координат для выхода (Mo-L) *Tsi, где Tsi является входным периодом расчета и Mo, Buffer size.

Примечание

Установите параметр Buffer overlap на отрицательную величину, чтобы достигнуть выходной частоты кадров медленнее, чем в неперекрывающемся случае. Выходным периодом системы координат является все еще Tsi* (Mo-L), но теперь с L < 0. Только Mo новейшие входные параметры включен в буферы вывода. Предыдущие входные параметры L отбрасываются.

В следующем примере, сигнале с четырьмя каналами с длиной системы координат 1 и период расчета 1 буферизуется к сигналу с форматом кадра 3 и период системы координат 2. Из-за буферного перекрытия не сохраняется входной период расчета, и выходной период расчета является 2/3:

  1. В командной строке MATLAB введите ex_buffer_tut3.

    Модель Buffer Example T3 открывается.

    Кроме того, переменная sp_examples_src загружается в рабочее пространство MATLAB. Эта переменная определяется следующим образом:

    sp_examples_src=[1 1 5 -1; 2 1 5 -2; 3 0 5 -3; 4 0 5 -4; 5 1 5 -5; 6 1 5 -6];
  2. Дважды кликните блок Signal From Workspace. Диалоговое окно Source Block Parameters: Signal From Workspace открывается.

  3. Установите параметры блоков можно следующим образом:

    • Signal = sp_examples_src

    • Sample time = 1

    • Samples per frame = 1

    • Form output after final data value by = Setting to zero

    На основе этих параметров блок Signal from Workspace выводит сигнал с периодом расчета 1 секунды. Поскольку вы устанавливаете установку параметра Samples per frame на 1, блок Signal From Workspace выводит одну выборку с четырьмя каналами в каждом шаге расчета.

  4. Сохраните эти параметры и закройте диалоговое окно путем нажатия на OK.

  5. Дважды кликните блок Buffer. Диалоговое окно Function Block Parameters: Buffer открывается.

  6. Установите параметры блоков можно следующим образом, и затем нажмите OK:

    • Output buffer size (per channel) = 3

    • Buffer overlap = 1

    • Initial conditions = 0

    Поскольку вы устанавливаете параметр Output buffer size на 3, блок Buffer выводит сигнал с форматом кадра 3. Кроме того, потому что вы устанавливаете параметр Buffer overlap на 1, последняя выборка от предыдущей выходной системы координат является первой выборкой в следующей выходной системе координат.

  7. Запустите модель.

    Следующая фигура является графической интерпретацией поведения модели в процессе моделирования.

  8. В командной строке MATLAB введите sp_examples_yout.

    Следующее отображено в Окне Команды MATLAB.

    sp_examples_yout =
    
         0     0     0     0
         0     0     0     0
         0     0     0     0
         0     0     0     0
         1     1     5    -1
         2     1     5    -2
         2     1     5    -2
         3     0     5    -3
         4     0     5    -4
         4     0     5    -4
         5     1     5    -5
         6     1     5    -6
         6     1     5    -6
         0     0     0     0
         0     0     0     0
         0     0     0     0
         0     0     0     0
         0     0     0     0
    

    Заметьте, что входные параметры не начинают появляться при выходе до пятой строки, второй строки второй системы координат. Это происходит из-за задержки блока.

Смотрите Избыточную Алгоритмическую Задержку (Определяющий задачу для Задержки) для получения общей информации об алгоритмической задержке. Для получения инструкций по тому, как вычислить задержку буферизации, смотрите Задержку буфера и Начальные условия.

Буферные входные параметры системы координат в другие входные параметры системы координат

В следующем примере двухканальный сигнал с форматом кадра 4 повторно буферизуется к сигналу с форматом кадра 3 и период системы координат 2. Из-за перекрытия не сохраняется входной период расчета, и выходной период расчета является 2/3:

  1. В командной строке MATLAB введите ex_buffer_tut4.

    Модель Buffer Example T4 открывается.

    Кроме того, переменная sp_examples_src загружается в рабочее пространство MATLAB. Эта переменная задана как

    sp_examples_src = [1 1; 2 1; 3 0; 4 0; 5 1; 6 1; 7 0; 8 0]
  2. Дважды кликните блок Signal From Workspace. Диалоговое окно Source Block Parameters: Signal From Workspace открывается.

  3. Установите параметры блоков можно следующим образом:

    • Signal = sp_examples_src

    • Sample time = 1

    • Samples per frame = 4

    На основе этих параметров блок Signal From Workspace выводит двухканальный сигнал системы координат с периодом расчета 1 второй и формат кадра 4.

  4. Сохраните эти параметры и закройте диалоговое окно путем нажатия на OK.

  5. Дважды кликните блок Buffer. Диалоговое окно Function Block Parameters: Buffer открывается.

  6. Установите параметры блоков можно следующим образом, и затем нажмите OK:

    • Output buffer size (per channel) = 3

    • Buffer overlap = 1

    • Initial conditions = 0

    На основе этих параметров блок Buffer выводит двухканальный сигнал системы координат с форматом кадра 3.

  7. Запустите модель.

    Следующая фигура является графическим представлением поведения модели в процессе моделирования.

    Обратите внимание на то, что входные параметры не начинают появляться при выходе до последней строки третьей выходной матрицы. Это происходит из-за задержки блока.

Смотрите Избыточную Алгоритмическую Задержку (Определяющий задачу для Задержки) для получения общей информации об алгоритмической задержке. Для получения инструкций по тому, как вычислить задержку буферизации и видеть Задержку буфера и Начальные условия.

Задержка буфера и начальные условия

В Буферных Сигналах в качестве примера в Системы координат с Перекрытием и Буферными Входными параметрами Системы координат в Другие Входные параметры Системы координат, входной сигнал задерживается определенным числом выборок. Начальные выходные выборки соответствуют значению, заданному для параметра Initial condition. Начальным условием является нуль в обоих упомянутых выше примерах.

При большинстве условий, Буфере и Освобождают буфер, блоки имеют некоторую сумму задержки или задержки. Эта задержка зависит и от настроек параметров блоков и от режима управления задачами Simulink®. Можно использовать rebuffer_delay функция, чтобы определить длину задержки блока для любой комбинации формата кадра и перекрытия.

Синтаксис rebuffer_delay(f,n,v) возвращает задержку, в выборках, введенных буферизацией и освобождающими буфер блоками во время многозадачных операций, где f размер входного кадра, n установка параметра Output buffer size и v установка параметра Buffer overlap.

Например, можно вычислить задержку модели, обсужденной в Буферных Входных параметрах Системы координат в Другие Входные параметры Системы координат с помощью следующей команды в командной строке MATLAB:

d = rebuffer_delay(4,3,1)
d = 8

Этот результат соглашается с выходом блока в том примере. Заметьте, что эта модель была симулирована в многозадачном режиме Simulink.

Для получения дополнительной информации о задержке, смотрите Избыточную Алгоритмическую Задержку (Определяющий задачу для Задержки). Дополнительные сведения об определенном блоке см. в разделе “Latency” страницы с описанием блока. Для получения дополнительной информации о rebuffer_delay функционируйте, смотрите rebuffer_delay.

Освободите буфер сигналы системы координат в демонстрационные сигналы

Можно освободить буфер многоканальные сигналы длины системы координат, больше, чем 1 в многоканальные сигналы системы координат длина равняются 1 использование блока Unbuffer. Блок Unbuffer выполняет обратную операцию процесса буферизации блока Buffer, где сигналы с длиной системы координат 1 буферизуются в сигнал с длиной системы координат, больше, чем 1. Блок Unbuffer генерирует N-канал выход, содержащий одну выборку на систему координат от входа N-канала, содержащего несколько каналов на систему координат. Первой строкой в каждой входной матрице всегда является первый выход.

Следующая фигура является графическим представлением этого процесса.

Период расчета выхода, Tso, связан с периодом входного кадра, Tfi, размером входного кадра, Mi.

Tso=Tfi/Mi

Блок Unbuffer всегда сохраняет период расчета сигнала (Tso = Tsi). Смотрите Преобразуют Частоты дискретизации и Частоту кадров в Simulink для получения дополнительной информации о преобразованиях уровня.

В следующем примере двухканальный сигнал с четырьмя выборками на систему координат освобожден буфер в двухканальный сигнал с одной выборкой на систему координат:

  1. В командной строке MATLAB введите ex_unbuffer_tut.

    Модель Unbuffer Example открывается.

  2. Дважды кликните блок Signal From Workspace. Диалоговое окно Source Block Parameters: Signal From Workspace открывается.

  3. Установите параметры блоков можно следующим образом:

    • Signal = [1:10;-1:-1:-10]'

    • Sample time = 1

    • Samples per frame = 4

    • Form output after final data value by = Setting to zero

    На основе этих параметров блок Signal From Workspace выводит двухканальный сигнал с форматом кадра 4.

  4. Сохраните эти параметры и закройте диалоговое окно путем нажатия на OK.

  5. Дважды кликните блок Unbuffer. Диалоговое окно Function Block Parameters: Unbuffer открывается.

  6. Установите параметр Initial conditions на 0, и затем нажмите OK.

    Блок Unbuffer освобождает буфер двухканальный сигнал с четырьмя выборками на систему координат в двухканальный сигнал с одной выборкой на систему координат.

  7. Запустите модель.

    Следующие фигуры являются графическим представлением того, что происходит во время симуляции модели.

    Примечание

    Блок Unbuffer генерирует начальные условия, не показанные на рисунке ниже со значением, заданным параметром Initial conditions. Смотрите страницу с описанием Unbuffer для получения информации о количестве начальных условий, которые появляются в выходе.

  8. В командной строке MATLAB введите sp_examples_yout.

    Следующее является фрагментом выхода.

    sp_examples_yout(:,:,1) =
    
         0     0
    
    
    sp_examples_yout(:,:,2) =
    
         0     0
    
    
    sp_examples_yout(:,:,3) =
    
         0     0
    
    
    sp_examples_yout(:,:,4) =
    
         0     0
    
    
    sp_examples_yout(:,:,5) =
    
         1    -1
    
    
    sp_examples_yout(:,:,6) =
    
         2    -2
    
    
    sp_examples_yout(:,:,7) =
    
         3    -3
    

    Блок Unbuffer освобождает буфер сигнал в двухканальный сигнал. Каждая страница выходной матрицы представляет различный шаг расчета.

Похожие темы