Aplicar un filtro paso bajo a una señal de entrada
Suponiendo una tasa de muestreo de 20 kHz, cree un filtro Butterworth de cuarto orden con 3 dB de una frecuencia de 2,5 kHz. Los coeficientes del filtro de butter
deben ser constantes para generar código.
type ButterFilt
function output_data=ButterFilt(input_data) %#codegen [b,a]=butter(4,0.25); output_data=filter(b,a,input_data); end
Utilice el filtro Butterworth para realizar un filtrado de paso bajo de una onda sinusoidal con ruido.
t = transpose(linspace(0,pi,10000)); x = sin(t) + 0.03*randn(numel(t),1);
Filtre la onda sinusoidal con ruido utilizando el filtro Butterworth. Represente la señal filtrada.
fx = ButterFilt(x); plot(fx)
Ejecute el comando codegen
para obtener el código fuente en C ButterFilt.c
y el archivo MEX:
codegen ButterFilt -args {zeros(10000,1)} -o ButterFilt_mex -report
Code generation successful: To view the report, open('codegen/mex/ButterFilt/html/report.mldatx')
El código fuente en C incluye los cinco coeficientes del numerador y del denominador del filtro Butterworth de cuarto orden como constantes estáticas. Aplique el filtro utilizando el archivo MEX. Represente la señal filtrada.
output_data = ButterFilt_mex(x); hold on plot(output_data) hold off