intfilt

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

Описание

пример

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

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

Примеры

свернуть все

Создайте цифровой интерполяционный фильтр, чтобы увеличить частоту сигнала на семь, используя метод с ограничением полосы пропускания. Задайте коэффициент «ограниченности полосы пропускания» 0,5 и используйте 2×2 выборки в интерполяции.

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

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

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 также выполняет полиномиальную интерполяцию Лагранжа.

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

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

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

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.

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

Метод полиномиальной интерполяции, заданный как 'Lagrange'.

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

свернуть все

Фильтруйте коэффициенты, возвращенные как вектор. Элементы b являются коэффициентами конечной импульсной характеристики. Если alpha задан, принимает исходную полосу пропускания alpha умножение частоты Найквиста. b - длина 2 * l* p-1.

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

Алгоритмы

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

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

.

См. также

| | | |

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