Многоканальные сигналы формата кадра 1
можно буферизировать в многоканальные сигналы формата кадра L используя блок Buffer. L больше 1
.
Следующий рисунок является графическим представлением сигнала с форматом кадра 1
преобразуется в сигнал формата кадра, L блоком Buffer.
В следующем примере двухканальный 1
выборка сигнала на систему координат буферизируется в двухканальный 4
выборки на систему координат с использованием блока Buffer:
В MATLAB® в командной строке введите ex_buffer_tut
.
Откроется модель Пример.
Дважды кликните блок Signal From Workspace. Откроется диалоговое окно Source Block Parameters: Signal From Workspace.
Установите параметры следующим образом:
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 выводит по одной двухканальной выборке во шаг расчета.
Сохраните эти параметры и закройте диалоговое окно нажатием кнопки OK.
Дважды кликните блок Buffer. Откроется диалоговое окно Function Block Parameters: Buffer.
Установите параметры следующим образом:
Output buffer size (per channel) = 4
Buffer overlap = 0
Initial conditions = 0
Потому что вы устанавливаете параметр Output buffer size равным 4
блок Buffer выводит сигнал системы координат с форматом кадра 4.
Запустите модель.
Рисунок ниже является графической интерпретацией поведения модели во время симуляции.
Примечание
Кроме того, можно задать параметр Samples per frame блока Signal From Workspace в 4
и создайте тот же сигнал, показанный выше, не используя блок Buffer. Блок Рабочая область Signal From выполняет внутреннюю буферизацию, порядок для вывода двухканальной системы координат.
В некоторых случаях полезно работать с данными, которые представляют перекрывающиеся секции исходного сигнала. Для примера при оценке степени спектра сигнала часто желательно вычислить БПФ перекрывающихся секций данных. Перекрывающиеся буферы также необходимы при вычислении статистики в скользящем окне или для адаптивной фильтрации.
Параметр 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:
В командной строке MATLAB введите ex_buffer_tut3
.
Откроется модель 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];
Дважды кликните блок Signal From Workspace. Откроется диалоговое окно Source Block Parameters: Signal From Workspace.
Установите параметры блоков следующим образом:
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 выводит по одной четырехканальной выборке во шаг расчета.
Сохраните эти параметры и закройте диалоговое окно нажатием кнопки OK.
Дважды кликните блок Buffer. Откроется диалоговое окно Function Block Parameters: Buffer.
Установите параметры блоков следующим образом и нажмите OK:
Output buffer size (per channel) = 3
Buffer overlap = 1
Initial conditions = 0
Потому что вы устанавливаете параметр Output buffer size равным 3
Блок Buffer выводит сигнал с форматом кадра 3. Кроме того, потому что вы устанавливаете параметр Buffer overlap равным 1
, последняя выборка из предыдущей выходной системы координат является первой выборкой в следующем выходе системе координат.
Запустите модель.
Следующий рисунок является графической интерпретацией поведения модели во время симуляции.
В командной строке 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:
В командной строке MATLAB введите ex_buffer_tut4
.
Откроется модель T4 Пример.
Кроме того, переменная sp_examples_src
загружается в рабочее пространство MATLAB. Эта переменная определяется как
sp_examples_src = [1 1; 2 1; 3 0; 4 0; 5 1; 6 1; 7 0; 8 0]
Дважды кликните блок Signal From Workspace. Откроется диалоговое окно Source Block Parameters: Signal From Workspace.
Установите параметры блоков следующим образом:
Signal = sp_examples_src
Sample time = 1
Samples per frame = 4
На основе этих параметров блок Signal From Workspace выводит двухканальную систему координат с периодом дискретизации 1
второй и формат кадра 4
.
Сохраните эти параметры и закройте диалоговое окно нажатием кнопки OK.
Дважды кликните блок Buffer. Откроется диалоговое окно Function Block Parameters: Buffer.
Установите параметры блоков следующим образом и нажмите OK:
Output buffer size (per channel) = 3
Buffer overlap = 1
Initial conditions = 0
На основе этих параметров блок Buffer выводит двухканальную систему координат с форматом кадра 3
.
Запустите модель.
Следующий рисунок является графическим представлением поведения модели во время симуляции.
Обратите внимание, что входы не начинают появляться на выходе до последней строки третьей выходной матрицы. Это связано с задержкой блока.
Смотрите Избыточную Алгоритмическую Задержку (Задержка Задачи) для получения общей информации об алгоритмической задержке. Для получения инструкции о том, как вычислить задержку буферизации, и смотрите Задержка буфера и Начальные условия.
В примерах Буферные Сигналы в системы координат с Перекрыванием и Буферные Входы Кадра в Другие Входные Параметры Кадра, входной сигнал задерживается на определенное количество выборок. Исходные выходные выборки соответствуют значению, заданному для параметра Initial condition. Начальное условие является нулем в обоих упомянутых выше примерах.
В большинстве условий блоки Buffer и Unbuffer имеют некоторую задержку или задержку. Эта задержка зависит и от настроек параметров блоков, и от Simulink® режим постановки задач. Можно использовать rebuffer_delay
функция для определения длины задержки блока для любой комбинации формата кадра и перекрытия.
Синтаксис rebuffer_delay(f,n,v)
возвращает задержку в выборках, введенную блоками буферизации и разбуферивания во время многозадачных операций, где f
- размер входного кадра, n
является Output buffer size параметром, и v
является Buffer overlap настройкой параметра.
Для примера можно вычислить задержку для модели, обсуждаемой в Buffer Системы координат Inputs into Other Системы координат Inputs, используя следующую команду в командной строке MATLAB:
d = rebuffer_delay(4,3,1) d = 8
Этот результат согласуется с выходом блока в этом примере. Заметьте, что эта модель была моделирована в многозадачном режиме Simulink.
Для получения дополнительной информации о задержке см. «Избыточная алгоритмическая задержка (задержка задачи)». Информацию о задержке конкретного блока см. в разделе «Задержка» страницы с описанием блока. Для получения дополнительной информации о rebuffer_delay
функция, см. rebuffer_delay
.
Можно распаковать многоканальные сигналы длины системы координат, больше 1
в многоканальные сигналы длины системы координат, равной 1
использование блока Unbuffer. Блок Unbuffer выполняет обратную операцию процесса буферизации блока Buffer, где сигналы с длиной системой координат 1 буферизуются в сигнал с длиной системы координат, больше 1. Блок Unbuffer генерирует выход N-канала, содержащий по одной выборке в системе координат из входа N-канала, содержащей по нескольким каналам в системе координат. Первая строка в каждой входной матрице всегда является первым выходом.
Следующий рисунок является графическим представлением этого процесса.
Период дискретизации выхода, Tso, связан с периодом входного кадра , Tfi, размером входного кадра , Mi.
Блок Unbuffer всегда сохраняет период дискретизации сигнала (Tso = Tsi). Смотрите Преобразование выборки и системы координат в Simulink для получения дополнительной информации о преобразованиях скорости.
В следующем примере двухканальный сигнал с четырьмя дискретизациями на систему координат отменяется в двухканальный сигнал с одной выборкой на систему координат:
В командной строке MATLAB введите ex_unbuffer_tut
.
Откроется модель Unbuffer Example.
Дважды кликните Signal From Workspace блок. Откроется диалоговое окно Source Block Parameters: Signal From Workspace.
Установите параметры блоков следующим образом:
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.
Сохраните эти параметры и закройте диалоговое окно нажатием кнопки OK.
Дважды кликните Unbuffer блок. Откроется диалоговое окно Function Block Parameters: Unbuffer.
Установите параметр Initial conditions равным 0
, а затем нажмите OK.
Блок Unbuffer распаковывает двухканальный сигнал с четырьмя выборками на систему координат в двухканальный сигнал с одной выборкой на систему координат.
Запустите модель.
Следующие рисунки являются графическим представлением того, что происходит во время симуляции модели.
Примечание
Блок Unbuffer генерирует начальные условия, не показанные на рисунке ниже, со значением, заданным параметром Initial conditions. Смотрите Unbuffer страницы с описанием для получения информации о количестве начальных условий, которые появляются в выход.
В командной строке 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 распаковывает сигнал в двухканальный сигнал. Каждая страница выходной матрицы представляет различный шаг расчета.