exponenta event banner

sosfilt

Цифровая фильтрация БИХ второго порядка (биквадратичная)

Описание

пример

y = sosfilt(sos,x) применяет цифровой фильтр секции второго порядка sos к входному сигналу x.

y = sosfilt(sos,x,dim) работает вдоль размера dim.

Примеры

свернуть все

Груз chirp.mat. Файл содержит сигнал, y, которая имеет большую часть своей силы выше Fs/4или половина частоты Найквиста. Частота дискретизации составляет 8192 Гц.

load chirp

t = (0:length(y)-1)/Fs;

Проектирование фильтра верхних частот Butterworth седьмого порядка для ослабления составляющих сигнала ниже Fs/4. Используйте нормированную частоту отсечения 0,48δ рад/образец. Выражайте коэффициенты фильтра в разрезах второго порядка.

[zhi,phi,khi] = butter(7,0.48,'high');
soshi = zp2sos(zhi,phi,khi);

freqz(soshi)

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

Фильтрация сигнала. Отображение исходного сигнала и сигнала с фильтрацией верхних частот. Используйте один и тот же масштаб оси Y для обоих графиков.

outhi = sosfilt(soshi,y);

figure
subplot(2,1,1)
plot(t,y)
title('Original Signal')
ys = ylim;

subplot(2,1,2)
plot(t,outhi)
title('Highpass-Filtered Signal')
xlabel('Time (s)')
ylim(ys)

Figure contains 2 axes. Axes 1 with title Original Signal contains an object of type line. Axes 2 with title Highpass-Filtered Signal contains an object of type line.

Создайте фильтр нижних частот с теми же характеристиками. Фильтрация сигнала и сравнение результата с оригиналом. Используйте один и тот же масштаб оси Y для обоих графиков. Результат в основном шум.

[zlo,plo,klo] = butter(7,0.48);
soslo = zp2sos(zlo,plo,klo);

outlo = sosfilt(soslo,y);

subplot(2,1,1)
plot(t,y)
title('Original Signal')
ys = ylim;

subplot(2,1,2)
plot(t,outlo)
title('Lowpass-Filtered Signal')
xlabel('Time (s)')
ylim(ys)

Figure contains 2 axes. Axes 1 with title Original Signal contains an object of type line. Axes 2 with title Lowpass-Filtered Signal contains an object of type line.

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

свернуть все

Цифровой фильтр секции второго порядка, заданный как матрица L-by-6, где L - количество секций второго порядка. Матрица

SOS = [b01b11b211a11a21b02b12b221a12a22  b0Lb1Lb2L1a1La2L]

представляет цифровой фильтр секции второго порядка

H (z) =∏k=1LHk (z) =∏k=1Lb0k+b1kz−1+b2kz−21+a1kz−1+a2kz−2.

Пример: [b,a] = butter(3,1/32); sos = tf2sos(b,a) задает фильтр Butterworth третьего порядка с нормализованной частотой 3 дБ, равной δ/32 рад/выборка.

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

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

Пример: x = [2 1].*sin(2*pi*(0:127)'./[16 64]) задает двухканальную синусоиду.

Типы данных: single | double
Поддержка комплексного номера: Да

Размерность для работы, заданная как целочисленный скаляр. По умолчанию sosfilt работает вдоль первого размера массива x с размером больше 1.

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

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

свернуть все

Отфильтрованный сигнал, возвращаемый в виде вектора, матрицы или N-D массива. y имеет тот же размер, что и x.

Ссылки

[1] Банк, Балаз. «Преобразование фильтров бесконечного импульсного отклика в параллельную форму». Журнал обработки сигналов IEEE. Том 35, номер 3, май 2018, стр. 124-130.

[2] Орфанидис, Софокл Дж. Введение в обработку сигналов. Энглвуд Клиффс, Нью-Джерси: Прентис-Холл, 1996.

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

| |

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