Estoy usando lenguaje C para implementar un filtro IIR de paso bajo de 4to orden simple. Usé ellip en matlab para obtener mis coeficientes, más específicamente ellip (4,0.25,10,0.25) . Esta es la respuesta de frecuencia en matlab.
Comomifrecuenciademuestreoesde48KHz,elfiltrodebecortarlasfrecuenciasporencimade6KHz.
Ahora,séquealgopodríaestarmalconmicódigo,quesubirésiesnecesario,peroestaeslasalidayentradadealgunossonidos:
Lasfrecuenciasbajasparecenpasarconunadisminuciónleve,mientrasquelasfrecuenciasporencimade6KHznosecortancompletamentehastaaproximadamente11KHz,aunquehayunadisminuciónsensibleporencimade6KHz.¿Esestoloqueseesperaodebocomenzaramirarmicódigo?
ACTUALIZACIÓN:Noheescuchadosobrelaondulacióndelabandadepasoylaatenuacióndelabandadeparadaantes.Acabodeverestapregunta:
Así que ahora mi principal objetivo es entender el elip. Tenemos una banda de paso de 0,25 dB, por lo que la pequeña disminución en las frecuencias por debajo de 6 KHz tiene sentido (si me estoy conectando correctamente). También tenemos una atenuación de banda de parada de 10dB que justifica los valores altos para frecuencias altas. Pero, ¿por qué la atenuación de la banda de parada se detiene en frecuencias muy altas? ¿La ondulación de la banda de paso y de la banda de parada se aplica a las frecuencias solo cercanas a la frecuencia de "corte"?