2009-11-23 22 views

Respuesta

31

seguro, observe la función filter.

Si sólo necesita 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 correspondiente filtro de paso alto:

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

Si necesita diseñar un filtro, y tienen una licencia para el Signal Processing Toolbox, hay a bunch of functions, y un vistazo a fvtoolfdatool.

+0

Sabía que sería así de simple. ¡Muchas gracias! – Christian

2

Puede diseñar un filtro Butterworth de paso bajo en tiempo de ejecución, utilizando 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 pasa banda también son posibles con este método. Ver https://www.mathworks.com/help/signal/ref/butter.html

+0

Advertencia. Esto requiere la caja de herramientas de procesamiento de señales. – rayryeng

Cuestiones relacionadas