exponenta event banner

опустошить

Прореживание - уменьшение частоты выборки на целочисленный коэффициент

Описание

пример

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

пример

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

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

пример

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

Примеры

свернуть все

Создайте синусоидальный сигнал, дискретизированный на частоте 4 кГц. Прорежьте его в четыре раза.

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

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

subplot(2,1,1)
stem(0:120,x(1:121),'filled','MarkerSize',3)
grid on
xlabel('Sample Number')
ylabel('Original')

subplot(2,1,2)
stem(0:30,y(1:31),'filled','MarkerSize',3)
grid on
xlabel('Sample Number')
ylabel('Decimated')

Figure contains 2 axes. Axes 1 contains an object of type stem. Axes 2 contains an object of type stem.

Создайте сигнал с двумя синусоидами. Прорежьте его в 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')

Figure contains an axes. The axes contains 2 objects of type line, stem. These objects represent Original, Decimated.

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

Создайте сигнал с двумя синусоидами. Прорежьте его в 13 раз, используя фильтр FIR порядка 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')

Figure contains an axes. The axes contains 2 objects of type line, stem. These objects represent Original, Decimated.

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

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

свернуть все

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

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

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

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

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

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

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

свернуть все

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

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

Алгоритмы

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

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

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

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

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

Ссылки

[1] Комитет по цифровой обработке сигналов Общества по акустической, речевой и сигнальной обработке IEEE ®, eds. Программы для цифровой обработки сигналов. Нью-Йорк: IEEE Press, 1979.

См. также

| | | | |

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