filtro paso bajo alta frecuencia
Publicado por Isabel (1 intervención) el 17/02/2009 13:20:32
Lo que yo quiero hacer esrecibir una seöal de gps con frecuencia
f1=1.5754e+009; por lo tanto tengo q cambiar la frecuencia de muestreo y al hacerlo, el filtro ya no funciona.. y no se como hacerlo para que filtre.
la idea es mezclar esa frecuencia con otra para obtener la suma y la resta y quedarme con la resta al pasar del filtro.
Espero que alguien m ayude.
muchas gracias
close all % Cierra todas las ventanas.
clear all % Borra todas las variables del espacio de trabajo.
clc % Limpia la pantalla.
Fc=350; % Frecuencia de corte.
Fm=1000; % Frecuencia de muestreo.
BT=100; % Banda de transición.
Rs=40; % Ganancias.
rs=10^(-Rs/20);
Rp=2;
rp=(10^(Rp/20)-1)/(10^(Rp/20)+1);
[n1b,wn1]=buttord(2*Fc/Fm,2*(Fc+BT)/Fm,Rp,Rs); % Orden del filtro (función buttord).
%[N, Wn] = BUTTORD(Wp, Ws, Rp, Rs)
%Wp and Ws are the passband and stopband edge frequencies, normalized
% from 0 to 1 (where 1 corresponds to pi radians/sample).
[B1,A1]=butter(n1b,wn1); % Coeficientes del filtro (función butter).
h1=freqz(B1,A1); % Respuesta en frecuencia (función freqz).
figure(1);
title('filtro');
plot(abs(h1))
% t=0:1e-6:6*20e-3;% frecuencia de muestreo: 1 MHz
N=1000; % Número de muestras
t=(0:N-1)/Fm;
s=cos(5000*t); % frecuencia: 2500/pi= 795.775 Hz > 500=Fm/2
s=sin(2*pi*475*t); % 475 < 500; 475 > 350=Fc
s=sin(2*pi*475*t)+sin(2*pi*100*t);
figure(2);
plot(t,s), title('señal s');
S=fft(s);
figure(3);
eje_F=(0:N-1)*Fm/N; % de o Hz a Fm
plot(eje_F,abs(S).^2); %
title('señal en frec');
z=filter(B1,A1,s);
figure(4);
plot(t,z)
Z=fft(z);
plot(abs(Z));
figure(5); %
plot(eje_F,abs(Z).^2); %
title('señal al pasar por el filtro');
figure(6)
plot(eje_F,20*log10(abs(S)),'b',eje_F,20*log10(abs(Z)),'g');
grid,title('DEP S (azul) y Z (verde)')
f1=1.5754e+009; por lo tanto tengo q cambiar la frecuencia de muestreo y al hacerlo, el filtro ya no funciona.. y no se como hacerlo para que filtre.
la idea es mezclar esa frecuencia con otra para obtener la suma y la resta y quedarme con la resta al pasar del filtro.
Espero que alguien m ayude.
muchas gracias
close all % Cierra todas las ventanas.
clear all % Borra todas las variables del espacio de trabajo.
clc % Limpia la pantalla.
Fc=350; % Frecuencia de corte.
Fm=1000; % Frecuencia de muestreo.
BT=100; % Banda de transición.
Rs=40; % Ganancias.
rs=10^(-Rs/20);
Rp=2;
rp=(10^(Rp/20)-1)/(10^(Rp/20)+1);
[n1b,wn1]=buttord(2*Fc/Fm,2*(Fc+BT)/Fm,Rp,Rs); % Orden del filtro (función buttord).
%[N, Wn] = BUTTORD(Wp, Ws, Rp, Rs)
%Wp and Ws are the passband and stopband edge frequencies, normalized
% from 0 to 1 (where 1 corresponds to pi radians/sample).
[B1,A1]=butter(n1b,wn1); % Coeficientes del filtro (función butter).
h1=freqz(B1,A1); % Respuesta en frecuencia (función freqz).
figure(1);
title('filtro');
plot(abs(h1))
% t=0:1e-6:6*20e-3;% frecuencia de muestreo: 1 MHz
N=1000; % Número de muestras
t=(0:N-1)/Fm;
s=cos(5000*t); % frecuencia: 2500/pi= 795.775 Hz > 500=Fm/2
s=sin(2*pi*475*t); % 475 < 500; 475 > 350=Fc
s=sin(2*pi*475*t)+sin(2*pi*100*t);
figure(2);
plot(t,s), title('señal s');
S=fft(s);
figure(3);
eje_F=(0:N-1)*Fm/N; % de o Hz a Fm
plot(eje_F,abs(S).^2); %
title('señal en frec');
z=filter(B1,A1,s);
figure(4);
plot(t,z)
Z=fft(z);
plot(abs(Z));
figure(5); %
plot(eje_F,abs(Z).^2); %
title('señal al pasar por el filtro');
figure(6)
plot(eje_F,20*log10(abs(S)),'b',eje_F,20*log10(abs(Z)),'g');
grid,title('DEP S (azul) y Z (verde)')
Valora esta pregunta
0