Академический Документы
Профессиональный Документы
Культура Документы
Julio2018
Diseño de filtros digitales
Raziel Alba Hernández
Universidad Politécnica de Tulancingo
raziel.alba.h@gmail.com
Abstract. There is a design signal processing algorithms with disturbances using the Matlab software
as an essential tool for analysis and comparison of the performance of adaptive digital filters do not
apply the conventional filter design process, using it to study an audio signal mixed with noise above
4000 Hz to establish a mechanism for immersion in the study of changes that are made more complex
signals such as harmonics, based on knowledge of characteristics point or approximately the same.
This design IIR filters such as Butterworth, chebychev type I and II, and elliptic all pasobajo
significantly decreasing the noise of the original signal according to the parameters of each the
frequency shift (less than 4 KHz), and cutting and stop band (greater than 4 KHz). Signal processing
with disturbances in low voltage electrical systems requires theoretical and practical solutions to
minimize the effects of this phenomenon, a result that is reflected in improved performance and
increased efficiency of the filtered signal.
FILTROS IIR Son sistemas cuya salida depende Obtención del orden de un filtro con MATLAB.
además de salidas anteriores y que, estando en
reposo, al ser estimulados con una entrada [N, Wn] = BUTTORD(Wp, Ws, Rp, Rs, 's')
2
Devuelve la orden N del filtro Butterworth analógico 3 Desarrollo
de orden más bajo que no pierde más de Rp dB en la
banda de paso y tiene al menos Rs dB de atenuación 3.1 generación de notas musicales
en la banda de parada. Wp y Ws son la banda de paso
y frecuencias de borde de banda prohibida en Representación gráfica la señal correspondiente a la
radianes / segundo. BUTTORD también devuelve nota DO en un intervalo de tiempos entre [0…6]s.
Wn en rad / s, la frecuencia natural de Butterworth (o,
la "frecuencia de 3 dB") para usar con BUTTER para
lograr la especificación
Devuelve la orden N del filtro elíptico analógico de No se pudo colocar la representación gráfica en el
orden más bajo que pierde no más de Rp dB en el tiempo, esto debido a las múltiples frecuencias y a la
cantidad de datos, Matlab no puede procesar tanto.
banda de paso y tiene al menos Rs dB de atenuación Apendice I.
en la banda de parada. Wp y Ws son la banda de paso
y frecuencias de borde de banda prohibida en
radianes / segundo. ELLIPORD también devuelve
Wne en rad / s, la elíptica frecuencia natural para usar
con ELLIP para alcanzar las especificaciones. Wne
(corte angular frecuencia) es el borde de la banda de 3.3 Generando una melodía como acorde
paso, en el que la respuesta de magnitud del filtro es -
Rp dB. Acorde [Do,Sol,Mi,Sol,Sol,Mi,Re] se muestra su
espectro en frecuencia en la siguiente tabla, se
observa que dos con solitarias una está repetida dos
veces y una tercera se repite tres veces,
Filtro digital buttord [n_b,d_b]=butter(N_b,Wn_b);
dbode(n_b,d_b,Ts);
Espectro de frecuencias acorde
[Do,Sol,Mi,Sol,Sol,Mi,Re]
2
tan
T 2
4
Conclusiones
raziel.alba.h@gmail.com
acorde=[Do3,Re3,Mi3,Fa3,Sol3,La3,Si3];
[m,nn]=size(acorde);
%datos de entrada
fs=8000;%frecuencia de muestreo, para este caso 8kHz es la frecuencia mas
apropiada para la reproduccion
N=5000;%24000;%Dato de entrada
ts=1/fs;%periodo
T=N*ts;%duracion de la señal
stopTime=T*(1-1/N);
t=0:ts:stopTime;
nota_musical=ones(nn,N) ;
fase=pi/6;
w0=2*pi*acorde(1);
nota_musical(1,:)=A*sin(w0*t+fase);
for k=1:nn
w0=2*pi*acorde(k);
nota_musical(k,:)=A*sin(w0*t+fase);
end
%
ftotal=[nota_musical(1,:),nota_musical(2,:),nota_musical(3,:),nota_musical(4,:)...
% nota_musical(5,:),nota_musical(6,:),nota_musical(7,:)];
Do=nota_musical(1,:);
Re=nota_musical(2,:);
Mi=nota_musical(3,:);
Fa=nota_musical(4,:);
Sol=nota_musical(5,:);
La=nota_musical(6,:);
Si=nota_musical(7,:);
ftotal=[Do,Sol,Mi,Sol,Sol,Mi,Re];
%sound(nota_musical(5,:),fs)
%
% plot(t,nota_musical(1,:))
% figure(1);
% xlabel('tiempo (s)')
% ylabel('Attenuation (dB)')
% title('Señal de acorde generado con 1 nota');
6
w0total=2*pi*ftotal;
fasetotal=pi/6;
%Reproducir acorde
sound(ftotal,fstotal)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%datos en frecuencia
%graficar en espectro de frecuencia
% Fourier transform of signal including high frequency content
L=length(ftotal);
Y_S=fft(ftotal);
P2 = abs(Y_S/L);
% Take magnitude at each point and normalize tonumber of data points
% The 2nd half of the Fourier trasnform is a mirror of the 1st half.% Only use the
first half of the points.% Double the magnitude of all the frequencies except the
first and the% last. This accounts for 1/2 the magnitude is in the 2nd half of
theP2 array% which we are discarding.
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
% The frequencies are the sampling frequency normalized to the numberof% points
f = fs*(0:(L/2))/L;
figure(1);
plot(f,P1);
axis([200,450,-0.2,1.2]);
title('Espectro de frecuencias de la señal del acorde');
xlabel('f (Hz)');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Filtrado de Señal
%%04 Diseño de filtros Butterworth,cheb1ord,ellipord
Wp=0.1912;
Ws=0.2669;
Rp=1;
Rs=6;
fm=8192;
Ts=1/fm;
[N_b,Wn_b]=buttord (Wp,Ws,Rp,Rs,'s');%que orden de filtro necesitas
[N_c,Wn_c]=cheb1ord(Wp,Ws,Rp,Rs,'s');
[N_e,Wn_e]=ellipord(Wp,Ws,Rp,Rs,'s');
[n_c,d_c]=cheby1(N_b,Rp,Wp,'s');
[n_c2,d_c2]=cheby2(N_b,Rp,Wp,'s');
%filtro discreto
[n_b,d_b]=butter(N_b,Wn_b);
[n_e,d_e]=ellip(N_e,Rp,Rs,Wp);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%datos en frecuenciasalida
%graficar en espectro de frecuencia
% Fourier transform of signal including high frequency content
L=length(sfilt);
Y_S=fft(sfilt);
P2 = abs(Y_S/L);
% Take magnitude at each point and normalize tonumber of data points
% The 2nd half of the Fourier trasnform is a mirror of the 1st half.% Only use the
first half of the points.% Double the magnitude of all the frequencies except the
first and the% last. This accounts for 1/2 the magnitude is in the 2nd half of
theP2 array% which we are discarding.
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
% The frequencies are the sampling frequency normalized to the numberof% points
f = fs*(0:(L/2))/L;
figure(30);
plot(f,P1);
axis([200,450,-0.2,1.2]);
title('Espectro de frecuencias de la señal del acorde filtrada');
xlabel('f (Hz)');