intfilt

Создание КИХ-фильтра интерполяции

Описание

пример

b = intfilt(l,p,alpha) проектирует КИХ-фильтр линейной фазы, который выполняет идеальную полосовую интерполяцию с помощью самого близкого 2P ненулевые выборки, когда используется на последовательности чередованы с l- 1 последовательный нуль каждый l выборки, принимая исходный bandlimitedness alpha времена частота Найквиста. Возвращенный фильтр b идентично используемому interp.

b = intfilt(l,n,'Lagrange') проектирует КИХ-фильтр, который выполняет nth-порядок полиномиальной интерполяция Лагранжа на последовательности чередован с l- 1 последовательный нуль каждый l выборки.

Примеры

свернуть все

Спроектируйте цифровой фильтр интерполяции, чтобы сверхдискретизировать сигнал семь, с помощью bandlimited метода. Задайте "bandlimitedness" фактор 0,5 и использование 2×2 выборки в интерполяции.

upfac = 7;
alpha = 0.5;
h1 = intfilt(upfac,2,alpha);

Фильтр работает лучше всего, когда исходный сигнал является bandlimited к alpha времена частота Найквиста. Создайте bandlimited шумовой сигнал путем генерации 200 Гауссовых случайных чисел и фильтрации последовательности с КИХ 40-го порядка фильтр lowpass. Сбросьте генератор случайных чисел для восстанавливаемых результатов.

lowp = fir1(40,alpha);

rng('default')
x = filter(lowp,1,randn(200,1));

Увеличьте частоту дискретизации сигнала путем вставки нулей между каждой парой выборок x.

xr = upsample(x,upfac);

Используйте filter функционируйте, чтобы произвести интерполированный сигнал.

y = filter(h1,1,xr);

Компенсируйте задержку, введенную фильтром. Постройте исходные и интерполированные сигналы.

delay = mean(grpdelay(h1));

y(1:delay) = [];

stem(1:upfac:upfac*length(x),x)
hold on
plot(y)

xlim([400 700])

Figure contains an axes. The axes contains 2 objects of type stem, line.

intfilt также выполняет Лагранжевую полиномиальной интерполяцию.

  • Полиномиальной интерполяция первого порядка является только линейной интерполяцией, которая выполняется с треугольным фильтром.

  • Интерполяция нулевого порядка выполняется с фильтром скользящего среднего значения и напоминает выход отображения производить-и-содержать.

Интерполируйте исходный сигнал и наложите результат.

h2 = intfilt(upfac,1,'Lagrange');

y2 = filter(h2,1,xr);
y2(1:floor(mean(grpdelay(h2)))) = [];

plot(y2)
hold off

Figure contains an axes. The axes contains 3 objects of type stem, line.

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

свернуть все

Количество выборок в виде положительного целочисленного скаляра. intfilt проектирует КИХ-фильтр линейной фазы с помощью последовательности, вкрапленной l- 1 последовательный нуль каждый l выборки.

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

Обратная мера пропускной способности перехода в виде скаляра. alpha обратно пропорционально пропускной способности перехода фильтра, и это также влияет на пропускную способность областей-ухода в полосе задерживания. Определение alpha позволяет вам задавать, сколько из интервала Найквиста занимает ваш входной сигнал. Это выгодно для сигналов, которые будут интерполированы, потому что это позволяет вам увеличивать пропускную способность перехода, не влияя на интерполяцию и результаты в лучшем затухании в полосе задерживания для данного l и p. Если вы устанавливаете alpha к 1, ваш сигнал принят, чтобы занять целый интервал Найквиста. Установка alpha к меньше чем одному позволяет для областей-ухода в полосе задерживания. Например, если ваш вход занимает половину интервала Найквиста, вы могли бы установить альфу на 0,5.

Порядок Лагранжевого полинома, заданного как положительный целочисленный скаляр. КИХ-фильтр выполняет nth-порядок полиномиальной интерполяция Лагранжа на последовательности чередован с l- 1 последовательный нуль каждый l выборки. Если оба n и l являются четными, спроектированный фильтр не является линейной фазой.

Метод полиномиальной интерполяции в виде 'Лагранжа'.

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

свернуть все

Отфильтруйте коэффициенты, возвращенные как вектор. Элементы b коэффициенты КИХ-фильтра. Если alpha задан, это принимает исходный bandlimitedness alpha времена частота Найквиста. b длина 2*lP-1.

Для nth-порядок полиномиальной интерполяция Лагранжа, b имеет длину (n+1) *l для n даже, и длина (n+1) *l-1 для n нечетный.

Алгоритмы

bandlimited использование метода firls спроектировать КИХ-фильтр интерполяции. Полиномиальный метод использует формулу полиномиальной интерполяции Лагранжа на равномерно распределенных выборках, чтобы создать соответствующий фильтр. Оба типа фильтров являются в основном lowpass и имеют усиление l в полосе пропускания.

Расширенные возможности

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

| | | |

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