• Viernes 1 de Noviembre de 2024, 11:29

Autor Tema:  filtro paso bajo  (Leído 1558 veces)

isa_espeja

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
filtro paso bajo
« en: Martes 17 de Febrero de 2009, 14:05 »
0
Se trata del filtro paso bajo, pero cuendo lo que queremos es meter la seöal recibida en gps despues de un mezclador para bajarla en frecuencia. :clown:
f1=1.5754e+009;
f2=1.5754e+009-1000;
fm=1.5754e+005

la f1 es la que llega y la f2 la elijo yo para q la resta salga del orden de Khz por ejemplo y la fm no es el doble de f1 pero es que sino son demasiados datos a la hora de representarla y el matlab no lo hace y por ejemplo la fm esa si deja aunq hay aliasing.
El problema es q al cambiar la fm pos el filtro no sale.. trato de variar los valores de fm y BT para ajustarme a los requisitos pero no lo logro.
Sabes en q me puedo estar equivicando.

MUCHIIIIIIIIISIIIIIIIMAS 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))


N=1000; % Número de muestras
t=(0:N-1)/Fm;
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)')