MATLAB: aplique un filtro de paso bajo o paso alto a una matriz

¿Existe alguna manera fácil de aplicar un filtro de paso bajo o paso alto a una matriz en MATLAB? Estoy un poco abrumado por el poder de MATLAB (¿o la complejidad de las matemáticas?) Y necesito una función fácil o alguna orientación ya que no pude encontrarla en la documentación ni en la web.

seguro, mira la función de filtro .

Si solo necesitas un filtro de paso bajo de 1 polo, es

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

donde a = T / τ, T = el tiempo entre muestras, y τ (tau) es la constante de tiempo del filtro.

Aquí está el filtro de paso alto correspondiente:

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

Si necesita diseñar un filtro y tiene una licencia para Signal Processing Toolbox, hay varias funciones , fvtool y fdatool .

Puede diseñar un filtro Butterworth de paso bajo en tiempo de ejecución, usando la función butter() y luego aplicarlo a la señal.

 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 

Los filtros de paso alto y paso de banda también son posibles con este método. Ver https://www.mathworks.com/help/signal/ref/butter.html