%% prog029 filtro clear all; close all; clc; %% lectura de la seņal tamaņo y tiempo %lectura [x,fs,nbits] = wavread('violin.wav'); %tamaņo N = length(x); %tiempo Tmin = 0; Tmax = N/fs; t = (0:N-1)/fs; Xmin = -1.1; Xmax = 1.1; %sonido sound(x,fs,nbits); %grafico figure(1) plot(t,x); title('violin'); xlabel('t(s)'); ylabel('x(t) (V)') legend('x(t)'); grid on; box on; axis([Tmin Tmax Xmin Xmax]); %% filtro pasa bajo %lectira de parametros del filtro fcb = input('frecuencia corte pasa bajo fcb = '); Q = input('amplificacion resonancia Q = '); %coeficientes K = tan(pi*fcb/fs); b0 = ( Q*K^2)/(Q*K^2 + K + Q); b1 = (2*Q*K^2)/(Q*K^2 + K + Q); b2 = ( Q*K^2)/(Q*K^2 + K + Q); a1 = (2*Q*(K^2 - 1))/(Q*K^2 + K + Q); a2 = (Q*K^2 - K + Q)/(Q*K^2 + K + Q); y = zeros(N,1); for n = 3:N y(n) = b0*x(n) + b1*x(n-1) + b2*x(n-2) - a1*y(n-1) - a2*y(n-2); end; %sonido sound(y,fs,nbits); %grafico figure(2) plot(t,y); title('violin filtro pasa bajo'); xlabel('t(s)'); ylabel('y(t) (V)') legend('y(t)'); grid on; box on; axis([Tmin Tmax Xmin Xmax]);