Создание фильтра Savitzky-Golay
Фильтры Savitzky-Golay используются, чтобы сгладить сигналы с шумом с большим промежутком частоты. Savitzky-Golay сглаживающие фильтры имеют тенденцию отфильтровывать меньше высокочастотного содержимого сигнала, чем стандартные КИХ-фильтры усреднения. Однако они менее успешны при отклонении шума, когда уровень шума особенно высок.
В общем случае фильтрация состоит из замены каждой точки сигнала некоторой комбинацией значений сигналов, содержавшихся в движущемся окне, сосредоточенном в точке, при условии, что соседние точки измеряют почти то же базовое значение. Например, фильтры скользящего среднего значения заменяют каждую точку данных на локальное среднее значение окружающих точек данных. Если точка определенных данных имеет точки k налево и точки k направо для общей длины окна L = 2k + 1, фильтр скользящего среднего значения делает замену
Фильтры Savitzky-Golay обобщают эту идею наименьшими квадратами, соответствующими полиному th-порядка n через значения сигналов в окне и берущими расчетную центральную точку подходящей полиномиальной кривой как новая сглаживавшая точка данных. Для данной точки, xs,
или, в терминах матриц,
Чтобы найти оценки Savitzky-Golay, используйте псевдоинверсию H, чтобы вычислить a и затем предварительно умножиться H:
Постараться не плохо обусловливать, sgolay
использует qr
функция, чтобы вычислить разложение размера экономики H как H = QR, в терминах который B = QQT.
Необходимо вычислить B только однажды. Savitzky-Golay оценивает для большей части результата точек сигнала свертки к сигналу с центральной строкой B. Результатом является установившийся фрагмент отфильтрованного сигнала. Первые строки k B дают к начальному переходному процессу, и итоговые строки k B дают к итоговому переходному процессу. Смотрите sgolayfilt
для примера. Возможно улучшить подавление шумов путем увеличения длины окна, но это вводит вызов, аналогичный Явлению Гиббса около любых переходных процессов.
[1] Orfanidis, Софокл Дж. Введение в обработку сигналов. Englewood Cliffs, NJ: Prentice Hall, 1996.
[2] Нажмите, Уильям Х., Саул А. Теукольский, Уильям Т. Веттерлинг и Брайан П. Флэннери. Числовые рецепты в C: Искусство научных вычислений. Нью-Йорк: Издательство Кембриджского университета, 1992.
[3] Schafer, Рональд В., “Что такое Фильтр Savitzky-Golay? [Читайте лекции Примечаниям]”. Издание 28 Журнала Обработки сигналов IEEE, Номер 4, июль 2011, стр 111–117. https://doi.org/10.1109/MSP.2011.941097.
fir1
| firls
| filter
| sgolayfilt