decimate

Децимация — уменьшает частоту дискретизации целочисленным коэффициентом

Описание

пример

y = decimate(x,r) уменьшает частоту дискретизации x, входной сигнал, фактором r. Подкошенный вектор, y, сокращен фактором r так, чтобы length(y) = ceil(length(x)/r). По умолчанию, decimate использует фильтр бесконечной импульсной характеристики (IIR) Типа I Чебышева lowpass порядка 8.

пример

y = decimate(x,r,n) использует Чебышевский фильтр порядка n.

y = decimate(x,r,'fir') использует спроектированное использование фильтра конечной импульсной характеристики (FIR) метода окна с Окном Хэмминга. Фильтр имеет порядок 30.

пример

y = decimate(x,r,n,'fir') использует КИХ-фильтр порядка n.

Примеры

свернуть все

Создайте синусоидальный сигнал, произведенный на уровне 4 кГц. Десятикратно уменьшите его фактором четыре.

t = 0:.00025:1;
x = sin(2*pi*30*t) + sin(2*pi*60*t);
y = decimate(x,4);

Постройте исходные и подкошенные сигналы.

subplot 211
stem(0:120,x(1:121),'filled','markersize',3)
grid on
xlabel 'Sample number',ylabel 'Original'
subplot 212
stem(0:30,y(1:31),'filled','markersize',3)
grid on
xlabel 'Sample number',ylabel 'Decimated'

Создайте сигнал с двумя синусоидами. Десятикратно уменьшите его фактором 13 использований Чебышевского БИХ-фильтра порядка 5. Постройте исходные и подкошенные сигналы.

r = 13;
n = 16:365;
lx = length(n);
x = sin(2*pi*n/153) + cos(2*pi*n/127);

plot(0:lx-1,x,'o')
hold on
y = decimate(x,r,5);
stem(lx-1:-r:0,fliplr(y),'ro','filled','markersize',4)

legend('Original','Decimated','Location','south')
xlabel('Sample number')
ylabel('Signal')

Исходные и подкошенные сигналы имеют соответствие с последними элементами.

Создайте сигнал с двумя синусоидами. Десятикратно уменьшите его фактором 13 использований КИХ-фильтра порядка 82. Постройте исходные и подкошенные сигналы.

r = 13;
n = 16:365;
lx = length(n);
x = sin(2*pi*n/153) + cos(2*pi*n/127);

plot(0:lx-1,x,'o')
hold on
y = decimate(x,r,82,'fir');
stem(0:r:lx-1,y,'ro','filled','markersize',4)

legend('Original','Decimated','Location','south')
xlabel('Sample number')
ylabel('Signal')

Исходные и подкошенные сигналы имеют соответствие с первыми элементами.

Входные параметры

свернуть все

Входной сигнал, заданный как вектор.

Типы данных: double

Фактор децимации, заданный как положительное целое число. Для лучших результатов, когда r больше 13, разделите r в меньшие факторы и вызов decimate несколько раз.

Типы данных: double

Порядок фильтра, заданный как положительное целое число. БИХ-порядок фильтра выше 13 не рекомендуются из-за числовой нестабильности. Функция выводит предупреждение в тех случаях.

Типы данных: double

Выходные аргументы

свернуть все

Подкошенный сигнал, возвращенный как вектор.

Типы данных: double

Алгоритмы

Децимация уменьшает исходную частоту дискретизации последовательности к более низкому уровню. Это - противоположность интерполяции. decimate lowpass фильтрует вход, чтобы принять меры против искажения и прореживает результат. Функция использует алгоритмы децимации 8.2 и 8.3 от [1].

  1. decimate создает фильтр lowpass. Значением по умолчанию является Чебышевский Тип, я фильтрую спроектированное использование cheby1. Этот фильтр имеет нормированную частоту среза 0.8/r и неравномерность в полосе пропускания 0,05 дБ. Иногда, заданный порядок фильтра производит искажение полосы пропускания из-за ошибок округления, накопленных от сверток, должен был создать передаточную функцию. decimate автоматически уменьшает порядка фильтра, когда искажение заставляет ответ величины в частоте среза отличаться от пульсации больше чем 10-6.

    Когда 'fir' опция выбрана, decimate использование fir1 спроектировать КИХ-фильтр lowpass с частотой среза 1/r.

  2. При использовании КИХ-фильтра, decimate фильтрует входную последовательность только в одном направлении. Это сохраняет память и полезно для работы с длинными последовательностями. В БИХ-случае, decimate применяет фильтр в прямых и обратных направлениях с помощью filtfilt удалить искажение фазы. В действительности этот процесс удваивает порядка фильтра. В обоих случаях функция минимизирует переходные эффекты в обоих концах сигнала путем соответствия с условиями конечной точки.

  3. Наконец, decimate передискретизирует данные путем выбора каждого rth указывают от внутренней части отфильтрованного сигнала. В передискретизируемой последовательности (y), y(end) соответствия x(end) когда БИХ-фильтр используется, и y(1) соответствия x(1) когда КИХ-фильтр используется.

Ссылки

[1] Комитет по Цифровой обработке сигналов IEEE® Acoustics, Речи, и Общества Обработки сигналов, программ редакторов для Цифровой обработки сигналов. Нью-Йорк: Нажатие IEEE, 1979.

Смотрите также

| | | | |

Представлено до R2006a

Для просмотра документации необходимо авторизоваться на сайте