exponenta event banner

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. Фильтр интерполяции нижних частот имеет длину 2 × n × r + 1.

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

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

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

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

свернуть все

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

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

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

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

Алгоритмы

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

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

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

  3. Примените фильтр к развернутому входному вектору для получения выходных данных.

Ссылки

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

[2] Эткен, Г., Томас В. Паркс и Х. В. Шюсслер. «Новые результаты в разработке цифровых интерполяторов». Транзакции IEEE ® для обработки акустики, речи и сигналов. т. ASSP-23, № 3, июнь 1975, с. 301-309.

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