¿Cómo pasar de Matlab a Filter?

7

Diseño un filtro en Matlab usando estos comandos:

Fs = 2.5*10^10;
n = 2;
Wn = 5000/Fs;
[b,a] = butter(n,Wn);

y obtener

b={9.86988268891764e-14, 1.97397653778353e-13, 9.86988268891764e-14}
a={1, -1.99999911142341, 0.999999111423807}

¿Cómo hago el análogo?

enlace

    
pregunta Ramu

1 respuesta

11

Primero, probablemente diseñó su filtro digital incorrectamente. Usó Wn = 5000/Fs , pero el parámetro Wn digital quiere un número de 0 a 1, donde 1 es Fs / 2, por lo que normalmente diría, para un filtro de 5000 Hz, que Wn = 5000/(Fs/2) .

Suponiendo que esto es lo que quería decir, quiere diseñar un filtro de paso bajo Butterworth analógico de segundo orden con una frecuencia de corte de 5000 Hz.

Primero, use [b,a] = butter(n,Wn,'s') para obtener la salida en el dominio analógico en lugar del dominio z digital.

  

[b, a] = mantequilla (n, Wn, 's') diseña un filtro Butterworth analógico de paso bajo de orden con frecuencia de corte angular Wn rad / s. Devuelve los coeficientes de filtro en la longitud n + 1 vectores de fila b y a, en potencias descendentes de s, derivadas de esta función de transferencia:   

Sideseaquelafrecuenciadecorteseade5kHz(=2π⋅5000radianes/s),usebutter(2,2*pi*5000,'s'),porejemplo.EnGNUOctaveobtengo:

>[b,a]=butter(2,2*pi*5000,'s')b=9.8696e+008a=1.0000e+0004.4429e+0049.8696e+008

Entonces,lafuncióndetransferenciasería

\$H(s)={9.8696\times10^8\over{s^2+4.4429\times10^4s+9.8696\times10^8}}\$

LosfiltrosButterworthsiempreconsistenenNpolosdispuestosenunsemicírculoalrededordelladoizquierdodelcírculounitario(yustedpodríadiseñarlodirectamentedeestamanera).Estotiene2polosen-22214.4±22214.4j.Parahacerunfiltropráctico,agrupalosparesdeconjugadoscomplejosenseccionesdesegundoordenycreaunfiltrobiquadparacadauno.Ensucaso,yaesunaúnicaseccióndesegundoorden,porloquesolonecesitaunfiltro.

Luegoasignasesoauncircuito,comounodeestos: enlace

Lareactanciadelcapacitores\$1\sobreCs\$ylosinductoresson\$Ls\$,porloquelafuncióndetransferenciaes

\$H(s)={Vout(s)\overVin(s)}={{1\over{C1s}}\|R2\sobre{L1s+R1+{1\sobre{C1s}}\|R2}}=\frac{R2}{CL1R2s^2+(CR1R2+L1)s+(R2+R1)}\$

Entonces

  • numerador:
    • R2=9.8696e+008Ω=987MΩ
  • denominador:
    • C*L1*R2=1
    • C*R1*R2+L1=4.4429e+004
    • R2+R1=987MΩ

Entonces,entoncesR1=0yL1=44.4kH??yC=22.8fF??...Ohhombre,norecuerdoestascosas.

Enrealidad...aunqueestosvaloressoncompletamentelocos,funcionanenunasimulación.

Porlotanto,podríaescalartodoslosvaloressimultáneamenteavaloresmásrazonables.Multipliqueelcapacitorporalgúnvalor,ydividaelinductorylaresistenciaporelmismovalorparamantenerelfiltroigual.Porejemplo,multiplicarpor1millónnoscolocaenunrangomásrazonable:

  • C=22.8fF*1000000=22.8nF
  • R2=987MΩ/1000000=987Ω
  • L1=44.4kH/1000000=44.4mH

¡Hey,funciona!

Prácticamente, sin embargo? Simplemente use el software de diseño de filtros como todos los demás.

    
respondido por el endolith

Lea otras preguntas en las etiquetas