Filtrado de señales de audio en MATLAB

1

Estoy tratando de aplicar un filtro a una señal de audio en MATLAB y tengo algunos problemas para procesarlo.

Hasta ahora, tengo una función de transferencia que describe un filtro ponderado por K, y puedo crear un diagrama de Bode que se ve correcto.

Aquíestáelscriptparaeso:

Tengootroscriptqueleeelaudiodeunarchivo.wav,loreproduceygraficalaformadeonda.

Esotambiénfuncionacorrectamente.AhoraquieroejecutaresearchivodeaudioatravésdelfiltroponderadoK,perotengoproblemasconesaparte.

Puedoutilizarlasfunciones"designfilt" y "filter" para crear varios filtros y procesar el audio, pero no puedo hacer que funcione con la función de transferencia que he creado.

Mi función de transferencia PF se expresa en el dominio z, pero no se muestra como un filtro digital adecuado en MATLAB.

¿Hay alguna forma de crear un filtro digital desde mi función de transferencia de PF o sus coeficientes directamente?

He intentado usar "filtfilt" y "lsim" para procesar el audio, pero aún no he tenido suerte.

También probé "output = filter (PF, audio)", que devuelve un mensaje de error que indica que no hay suficientes argumentos de entrada, y "output = filter (b1, a1, audio)" que devuelve una matriz que dice "NaN" repetidamente.

Estoy seguro de que hay algo obvio que me falta o algunos errores de sintaxis, espero que alguien aquí pueda indicarme la dirección correcta.

Gracias por tu tiempo.

    
pregunta Avid Pro Tool

1 respuesta

0

Necesitas filtrar los datos en algún punto. La función de filtro es buena para usar si ya ha creado una función de transferencia \ filtro, el filtro TF se está aplicando a los datos que ingresan al filtro.

 dataout = filter(TF,datain);
    
respondido por el laptop2d

Lea otras preguntas en las etiquetas