sosfilt
Функция фильтрации с помощью цифрового биквадратного фильтра.
Синтаксис
sosfilt(SOS, Input, Output);
Аргументы
| Имя | Тип данных | Описание |
|---|---|---|
|
SOS |
array2 |
Вектор коэффициентов, описывающих секции биквадратного фильтра. Размерность вектора должна быть кратна 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: array2 = 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].
Дополнительные материалы
- Айфичер Э., Джервис Б. Цифровая обработка сигналов. Практический подход. - Москва: Вильямс, 2004, 992 с.
- В.В. Витязев, А.А. Зайцев. Основы многоскоростной обработки сигналов. Учебное пособие. - Рязань, 2005, 129 с.