MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем

Обработка сигналов и изображений\Signal Processing Toolbox

Список функций Signal Processing Toolbox: Весовые функции (окна)

  В оглавление\ К следующему разделу \ К предыдущему разделу

INTERP

Повышение частоты дискретизации сигнала (интерполяция)

Синтаксис:

y = interp(x,r)
y = interp(x,r,l,alpha)
[y,b] = interp(x,r,l,alpha)

Описание:

Процедура интерполяции повышает частоту дискретизации сигнала. Процесс интерполяции сводится к вставке нулей между отсчетами сигнала и пропусканию результата через фильтр нижних частот (ФНЧ).

y = interp(x,r)

Повышает частоту дискретизации сигнала x в r раз. Длина интерполированного вектора y в r раз больше, чем длина исходного вектора x.

y = interp(x,r,l,alpha)

То же, что первый вариант синтаксиса, но дополнительные входные параметры позволяют задать порядок используемого ФНЧ (он связан со значением параметра l; см. далее) и его нормированную частоту среза (alpha). По умолчанию используются следующие значения: l = 4 и alpha = 0.5.

[y,b] = interp(...)

То же, что предыдущие варианты синтаксиса, но дополнительно возвращается вектор b, содержащий коэффициенты фильтра, использованного в процессе интерполяции.

Примеры

Interpolate a signal by a factor of four:

t = 0:0.001:1;               % Вектор моментов времени
x = sin(2*pi*30*t) + sin(2*pi*60*t);
y = interp(x,4);
stem(x(1:30));               % Исходный сигнал 
title('Original Signal');
figure
stem(y(1:120));              % Интерполированный сигнал
title('Interpolated Signal');


Алгоритм

Функция interp использует алгоритм интерполяции 8.1 из [1]:

  1. Производится расширение исходного вектора до требуемой длины путем вставки r-1 нулей между исходными отсчетами.
  2. Производится расчет специального симметричного нерекурсивного фильтра, который обеспечивает точное сохранение значений исходных отсчетов и минимизацию среднеквадратической ошибки отклонения значений интерполированных отсчетов от идеальных.
  3. Производится фильтрация расширенного вектора с помощью рассчитанного фильтра. Это дает искомый интерполированный результат.

Порядок интерполирующего нерекурсивного ФНЧ равен 2*l*r+1. При этом интерполированные значения рассчитываются по 2*l исходным отсчетам. Как правило, величина l не должна превышать 10. Предполагается, что в спектре исходного сигнала не содержится частот выше alpha (значение alpha нормировано к частоте Найквиста исходного сигнала, то есть к половине его частоты дискретизации: 0 alpha 1). По умолчанию значение l равно 4, а значение alpha равно 0,5.

Диагностические сообщения

Если значение r не является целым числом, функция interp выдает следующее сообщение об ошибке:

Resampling rate R must be an integer.

Сопутствующие функции: downsample, interp, interp1, resample, spline, upfirdn, upsample

Литература

  1. Programs for Digital Signal Processing, IEEE Press, New York, 1979, Algorithm 8.1.

  В оглавление\ К следующему разделу \ К предыдущему разделу


Поиск по сайту:

Система Orphus

Яндекс.Метрика