decimate
Страница в процессе разработки. |
Децимация — уменьшение частоты дискретизации в целое число раз.
Библиотека |
|
Синтаксис
Вызов функции
-
y = decimate(x::AbstractVecOrMat, r::Real, mode::String)
— уменьшает частоту дискретизации входного сигналаx
вr
раз. Сигнал выходной сигналy
сокращается вr
раз:length(y) = ceil(length(x)/r)
. Использует КИХ фильтр с конечной импульсной характеристикой, разработанный с использованием окна Хэмминга. Фильтр имеет порядок30
.
-
y = decimate(x::AbstractVecOrMat, r::Real)
— функцияdecimate
использует БИХ фильтр Чебышева I 8-го порядка.
-
y = decimate(x::AbstractVecOrMat, r::Real, n::Real, mode::String)
— использует КИХ фильтр, разработанный с использованием окна Хэмминга. Фильтр имеет порядокn
.
-
y = decimate(x::AbstractVecOrMat, r::Real, n::Real)
— использует фильтр Чебышева порядкаn
.
Аргументы
Входные аргументы
#
x —
входной сигнал
AbstractVecOrMat
Details
Входной сигнал в виде вектора.
Типы данных |
|
#
n —
порядок фильтрации
Вещественное число
Details
Порядок фильтрации, указанный как положительное целое число. Для БИХ-фильтра не рекомендуется использовать порядок фильтрации выше 13
из-за числовой нестабильности. В таких случаях функция выводит предупреждение.
Типы данных |
|
Выходные аргументы
# y — сигнал с уменьшенной частотой дискретизации
Details
Сигнал с уменьшенной частотой дискретизации.
Типы данных |
|
Алгоритмы
Децимация уменьшает первоначальную частоту дискретизации последовательности до более низкой. Это противоположность интерполяции. Функция decimate
применяет к входному сигналу низкочастотную фильтрацию для защиты от наложения спектров (алиасинга) и выполняет прореживание результата. Функция использует алгоритмы прореживания 8.2 и 8.3 из [1].
-
decimate
создает фильтр нижних частот. По умолчанию используется БИХ фильтр Чебышева I. Этот фильтр имеет нормированную частоту среза, равную0.8/r
, и пульсацию полосы пропускания, равную0.05
дБ. Иногда указанный порядок фильтрации приводит к искажению полосы пропускания из-за ошибок округления, накопленных в результате сверток, необходимых для создания передаточной функции. Функцияdecimate
производит автоматическое уменьшение порядка фильтрации, когда искажение приводит к тому, что амплитудная характеристика на частоте среза отличается от пульсаций более чем на10-6
.При выборе опции
"fir"
функцияdecimate
использует функциюfir1
для проектирования КИХ-фильтра нижних частот с частотой среза1/r
. -
При использовании КИХ-фильтра, функция
decimate
фильтрует входную последовательность только в одном направлении. Это экономит память и полезно для работы с длинными последовательностями. В случае БИХ-фильтра, функцияdecimate
применяет фильтр в прямом и обратном направлениях, используяfiltfilt
для устранения фазовых искажений. По сути, этот процесс удваивает порядок фильтрации. В обоих случаях функция минимизирует переходные эффекты на обоих концах сигнала за счет согласования условий конечной точки. -
И, наконец, функция
decimate
выполняет повторную выборку данных, выбирая всеr
-е точки внутри отфильтрованного сигнала. В последовательности повторной дискретизации (y),y(end)
соответствуетx(end)
когда используется БИХ-фильтр, иy(1)
соответствуетx(1)
при использовании КИХ-фильтра.