señal - MATLAB: aplique un filtro de paso bajo o paso alto a una matriz
filtros espaciales procesamiento de imagenes (2)
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
¿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 filter .
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 fvtool funciones , fvtool y fdatool .