interp

Интерполяция - увеличение частоты дискретизации на целочисленный коэффициент

Описание

пример

y = interp(x,r) увеличивает частоту дискретизации x, входной сигнал, в множителе r.

y = interp(x,r,n,cutoff) задает два дополнительных значения:

  • n - половина количества исходных значений выборок, используемых для интерполяции расширенного сигнала.

  • cutoff - нормированная частота отключения входного сигнала, заданная как доля частоты Найквиста.

[y,b] = interp(x,r,n,cutoff) также возвращает вектор, b, с коэффициентами фильтра, используемыми для интерполяции.

Примеры

свернуть все

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

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

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

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

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

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

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

свернуть все

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

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

Коэффициент интерполяции, заданный как положительное целое число.

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

Половина количества входа отсчетов, используемых для интерполяции, задается как положительное целое число. Для достижения наилучших результатов используйте n не более 10. lowpass интерполяционный фильтр имеет длину 2 × n × r + 1.

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

Нормированная частота отсечения входного сигнала, заданная как положительный действительный скаляр не более 1, который представляет часть частоты Найквиста. Значение 1 означает, что сигнал занимает полный интервал Найквиста.

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

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

свернуть все

Интерполированный сигнал, возвращенный как вектор. y является r раз, пока исходный вход, x.

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

Lowpass коэффициенты фильтра интерполяции, возвращенные как вектор-столбец.

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

Алгоритмы

Интерполяция увеличивает исходную частоту дискретизации последовательности до более высокой. Это противоположно десятикратному уменьшению. interp вставляет нули в исходный сигнал и затем применяет lowpass интерполяционный фильтр к расширенной последовательности. Функция использует алгоритм lowpass интерполяции 8.1, описанный в [1]:

  1. Разверните вектор входа на правильную длину путем вставки 0s между исходными значениями данных.

  2. Разработайте специальный симметричный конечная импульсная характеристика, который позволяет исходным данным проходить через неизмененные и интерполяции, чтобы минимизировать среднюю квадратную ошибку между интерполированными точками и их идеальными значениями. Фильтр, используемый interp совпадает с фильтром, возвращаемым intfilt.

  3. Примените фильтр к расширенному входному вектору, чтобы получить выход.

Ссылки

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

[2] Oetken, G., Thomas W. Parks, and H. W. Schüssler. «Новые результаты в проекте цифровых интерполяторов». IEEE® Транзакции по акустике, речи и обработке сигналов. Том ASSP-23, № 3, июнь 1975, стр. 301-309.

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