Функция фильтрации с помощью цифрового биквадратного фильтра.
sosfilt(SOS, Input, Output);
Имя | Тип данных | Описание |
---|---|---|
SOS |
matrix | Вектор коэффициентов, описывающих секции биквадратного фильтра. Размерность вектора должна быть кратна 6, требуемая SOS-матрица записывается в вектор построчно |
Input | array | Массив отсчетов сигнала, предназначенного для фильтрации |
Output | array | Массив отсчетов сигнала после фильтрации |
sosfilt(SOS, Input, Output) – функция осуществляет процедуру фильтрации отсчетов входного сигнала Input с помощью цифрового биквадратного фильтра, описываемого SOS-матрицей SOS. Обработка отсчетов ведется последовательно, фильтр сбрасывается в исходное нулевое состояние по окончании обработки входного вектора отсчетов. Результирующие отсчеты сигнала, прошедшего фильтрацию, записываются в вектор Output.
Важно! Для корректной работы функции векторы входного и выходного сигнала должны иметь одинаковую размерность. Размерность вектора, описывающего SOS-матрицу фильтра, должна быть кратна 6.
Подробное описание алгоритма функционирования цифрового биквадратного фильтра представлено в [1] и [2].
Имя | Тип данных | Описание |
---|---|---|
Output | array | Массив отсчетов сигнала после фильтрации |
var Insig: array = 6#0, // Вектор отсчетов входного сигнала SOS: matrix = 12#0, // Вектор, описывающий SOS-матрицу фильтра Outsig: array = 6#0; // Вектор отсчетов сигнала после фильтрации Insig = [1, 3.3, 2.1, 1.4, 5.5, 1]; SOS = [[0.2569156, 0.2569156, 0, 1, 0.15838444, 0] [1, 2, 1, 1, 0.41885608, 0.35544676]]; sosfilt(SOS, Insig, Outsig);
Результат выполнения функции:
Outsig = [0.2569156, 1.4702662, 2.8966731, 2.4719502, 3.6233595].