Подтвердить что ты не робот

MATLAB: применить фильтр низких частот или верхних частот к массиву

Есть ли простой способ применить фильтр нижних частот или верхних частот к массиву в MATLAB? Я немного перегружен мощью MATLAB (или сложностью математики?), И вам нужна простая функция или какое-то руководство, поскольку я не мог понять это из документации или поиска в Интернете.

4b9b3361

Ответ 1

конечно, посмотрите filter.

Если вам нужен только 1-полюсный фильтр нижних частот, это

xfilt = filter(a, [1 a-1], x);

где a = T/& tau;, T = время между образцами и & tau; (tau) - постоянная времени фильтра.

Здесь соответствующий фильтр верхних частот:

xfilt = filter([1-a a-1],[1 a-1], x);

Если вам нужно создать фильтр и получить лицензию на Toolbox Toolbox, куча функций, посмотрите fvtool и fdatool.

Ответ 2

Вы можете создать фильтр Lowter Butterworth во время выполнения, используя функцию butter(), а затем применить это к сигналу.

fc = 300; % Cut off frequency
fs = 1000; % Sampling rate

[b,a] = butter(6,fc/(fs/2)); % Butterworth filter of order 6
x = filter(b,a,signal); % Will be the filtered signal

С этим методом возможны также и верхние и полосовые фильтры. См. https://www.mathworks.com/help/signal/ref/butter.html