Hola tengo un problema con un un selector de filtros aun esta en desarrollo le hace falta caracterizar la entrada cuadrática en funciones de estado para que se pueda operar con el filtro, y mostrar la señal en el dominio del tiempo pero tengo una duda hay algo raro con el bode los filtros están bien caracterizados pero nose porque el BODE me sale de esa forma en la entrada senoidal.
Código:
disp('1 Sinusoidal periodica')
disp('2 Cuadrada periodica')
senal=input('Ingresar señal: ')
if senal==1 then
frec_sinu=input('Frecuencia Señal: ')
amp_sinu=input('Amplitud Señal: ')
fase_sinu=input('Fase Señal: ')
x=[0:0.005:5]
y=amp_sinu*cos(2*%pi*frec_sinu*x+fase_sinu);
s=%s;
fs=amp_sinu*(s/(s^2+(2*%pi*frec_sinu)^2))*cos(fase_sinu)-amp_sinu*(frec_sinu*2*%pi)/(s^2+(2*%pi*frec_sinu)^2)*sin(fase_sinu);
fs2=syslin('c',fs);
fs1=csim('impulse',x,fs2);
bode(fs2,0.01,100)
elseif senal==2
amp_cuad=input('Amplitud señal: ')
frec_cuad=input('Frecuencia señal: ')
x=[0:0.005:5]
t=0:0.05:20;
y=amp_cuad*squarewave(%pi*frec_cuad*x)
plot(y)
end
disp('1 pasabajos')
disp('2 pasa altas')
disp('3 pasa bandas')
filtro=input('Ingrese que filtro quiere: ')
select filtro
case 1
disp('Ha escogido un filtro pasabajos')
ganancia=input('Ingrese la ganancia deseada')
frec_corte=input('Ingrese la frecuencia de corte')
s=poly(0,'s')
x=[0:0.005:5];//vector de tiempos para la simulación
pb=(ganancia)/(1+(s/frec_corte))*(fs2);
sist=syslin('c',pb);
bode(sist,0.01,100);
case 2
disp('Ha escogido un filtro pasaaltos')
ganancia=input('Ingrese la ganancia deseada')
frec_corte=input('Ingrese la frecuencia de corte')
s=poly(0,'s')
x=[0:0.005:5];//vector de tiempos para la simulación
pb=(((ganancia)*(s/frec_corte)/(1+(s/frec_corte)))*(1))*(fs2);
sist=syslin('c',pb);
bode(sist,0.01,100);
case 3
disp('Ha escogido un filtro pasa bandas')
B=input('Ingrese el ancho de banda')
Q=input('Ingrese el factor de calidad')
w=B*Q
s=poly(0,'s')
x=[0:0.005:5];//vector de tiempos para la simulación
pb=((B*s)/(s^2+B*s+w^2))*(fs2);
sist=syslin('c',pb);
bode(sist,0.01,100);
end