Создание фильтра Савицкого-Голая
Фильтры Савицкого-Голая используются для сглаживания сигналов с шумом с большим диапазоном частот. Сглаживающие фильтры Savitzky-Golay, как правило, отфильтровывают меньше высокочастотного содержимое сигнала, чем стандартные средние конечная импульсная характеристика. Однако они менее успешны в отказе от шума, когда уровни шума особенно высоки.
В целом, фильтрация состоит из замены каждой точки сигнала некоторой комбинацией значений сигналов, содержащихся в движущемся окне, центрированном в точке, при предположении, что близлежащие точки измеряют почти одно и то же базовое значение. Например, фильтры скользящего среднего заменяют каждую точку данных локальным средним значением окружающих точек данных. Если заданная точка данных имеет k точки слева и k точки справа, для общей длины окна L = 2 k + 1, фильтр скользящего среднего делает замену
Фильтры Савицкого-Голея обобщают эту идею путем аппроксимации полинома n-го порядка через значения сигналов в окне и взятия вычисленной центральной точки установленной полиномиальной кривой в качестве новой сглаженной точки данных. Для заданной точки, xs,
или, с точки зрения матриц,
Чтобы найти оценки Савицкого-Голея, используйте псевдоинверсуру H для вычисления, а затем предрешения H:
Чтобы избежать плохих условий, sgolay
использует qr
функция для вычисления экономического разложения H как H = QR, в терминах которого B = QQT.
Вычислять B нужно только один раз. Оценки Савицкого-Голея для большинства сигнальных точек следуют из свертки сигнала с центральной строкой B. Результатом является установившийся фрагмент фильтрованного сигнала. Первые k строки B дают начальный переходный процесс, а конечные k строки B - конечный переходный процесс. Посмотрите sgolayfilt
например, пример. Можно улучшить подавление шума путем увеличения длины окна, но это вводит звон, аналогичный явлению Гиббса около любых переходных процессов.
[1] Orfanidis, Sophocles J. Введение в обработку сигналов. Englewood Cliffs, Нью-Джерси: Prentice Hall, 1996.
[2] Press, William H., Saul A. Teukolsky, William T. Vetterling, and Brian P. Flannery. Численные рецепты в C: Искусство научных вычислений. New York: Cambridge University Press, 1992.
[3] Schafer, Ronald W. "What is a Savitzky-Golay Filter? [Примечания к лекциям] ". Журнал обработки сигналов IEEE, том 28, номер 4, июль 2011, стр. 111-117. https://doi.org/10.1109/MSP.2011.941097.
filter
| fir1
| firls
| sgolayfilt