Dada una respuesta de frecuencia arbitraria, ¿qué métodos de procesamiento de señal pueden existir que puedan adivinar, estimar o determinar una función de transferencia (constelación de polos y cero) que proporcione una aproximación "razonablemente buena" (para algunos criterios de calidad de estimación dados) a esa respuesta de frecuencia dada? ¿Qué medios existen para estimar el número de polos y ceros requeridos para una función de transferencia dada más un margen de error de aproximación dado? ¿O cómo se puede determinar que estas restricciones no se pueden cumplir, si es posible?
Si la respuesta de frecuencia dada fue realmente producida por una función de transferencia conocida, ¿alguno de estos métodos convergerá en esa función de transferencia original? ¿Qué tal si la respuesta de frecuencia dada estuviera sujeta a errores de medición (supuestamente gaussianos)?
Suponga que trabaja en el plano Z con espectro muestreado, aunque las respuestas continuas de dominio también pueden ser interesantes.
Agregado: ¿Los métodos de solución son diferentes si solo se da la magnitud de la respuesta de frecuencia (por ejemplo, se permite una solución con cualquier respuesta de fase)?
Agregado: El último problema es lo que más me interesa, dada una respuesta de magnitud conocida alrededor del círculo unitario, pero una respuesta de fase desconocida / no medida, ¿se puede estimar el sistema medido, y si es así, bajo qué condiciones?
Respuestas:
Un enfoque sería utilizar el método de mínimos cuadrados del dominio de frecuencia (FDLS) . Dado un conjunto de muestras (complejas) de la respuesta de frecuencia de un sistema de tiempo discreto y un orden de filtro elegido por el diseñador, el método FDLS utiliza la optimización lineal de mínimos cuadrados para resolver el conjunto de coeficientes (que se asignan directamente a conjuntos de polos y ceros) para el sistema cuya respuesta de frecuencia coincide con la respuesta deseada con un error cuadrado total mínimo.
La respuesta de frecuencia de un orden -ésimo lineal sistema de tiempo discreto se puede escribir como:N
donde es la función de transferencia del sistema en el dominio . Esto generalmente se escribe en el formato racional que se deriva directamente de la ecuación de diferencia del sistema:H(z) z
La respuesta de frecuencia es por lo tanto:
Reorganice lo anterior para obtener:
Esta ecuación es lineal en los coeficientes de ecuación de diferencia de sistema desconocidos y . Dada una respuesta de frecuencia deseada , nos gustaría encontrar coeficientes que cumplan con la ecuación anterior exactamente para todos los valores de . Para el caso general, eso es difícil. Por lo tanto, buscaremos un conjunto de coeficientes para un sistema cuya respuesta de frecuencia se aproxime a la respuesta deseada en un conjunto discreto de frecuencias.2N+1 bk ak H(ω) ω
Para resolver un conjunto apropiado de coeficientes usando el método lineal de mínimos cuadrados, generamos un sistema de ecuaciones sobredeterminado en esas incógnitas. Para generar esas ecuaciones, elija una colección de frecuencias (donde , y a menudo . Para cada frecuencia, sustituya el valor correspondiente de en la ecuación anterior para obtener:ωm∈[0,2π),m=0,1,…,M−1 M>2N+1 M≫2N+1) ωk
Los valores se obtienen muestreando la respuesta de frecuencia deseada en las frecuencias elegidas . Después de generar el sistema de ecuaciones lineales, la solución de mínimos cuadrados para los coeficientes del sistema y (y, por lo tanto, sus polos y ceros) se obtiene fácilmente. Si sustituye esos coeficientes en la ecuación para muestra arriba, debería (con suerte) producir una función que esté cerca de la respuesta de frecuencia de plantilla con la que comenzó.ω k b k a k H ( ω )H(ωk) ωk bk ak H(ω)
Esta técnica tiene algunas ventajas:
Cualquier respuesta de frecuencia compleja arbitraria (magnitud y fase) se puede utilizar como plantilla. Si solo tiene una restricción de magnitud, podría elegir una respuesta de fase, como una fase lineal.
Se puede usar para diseñar filtros FIR y IIR; para una realización FIR, simplemente elimine los coeficientes de lo anterior.ak
La técnica es muy sencilla de implementar y se puede parametrizar fácilmente en función del orden deseado del sistema.
Si bien puede que no haya una buena manera de estimar a priori cuál es el orden del sistema requerido para cumplir con sus restricciones de diseño, es simple aumentar iterativamente el orden hasta que se cumpla alguna métrica de error seleccionada (como error máximo, error cuadrado total, o desviación dentro de una banda específica).N
Puede ampliar este método un poco para utilizar la optimización de mínimos cuadrados ponderados si es necesario; esto le permitiría especificar regiones de la respuesta de frecuencia cuyo error de aproximación se pondera más que otros. Esto le permite controlar más estrictamente las áreas de banda de paso / banda de detención mientras permite más pendiente en áreas de "no importa".
fuente
Mis colegas han tenido excelentes resultados con la adaptación de vectores :
Lo usamos para la conversión de FIR a IIR.
Para aplicaciones menos exigentes, puede usar un ajuste de mínimos cuadrados no lineal para un número fijo de polos y ceros. Esto se implementa en Matlab como
invfreqs
yinvfreqz
.fuente
Otro enfoque: trazar la respuesta de frecuencia y ajustar un diagrama de Bode lo mejor posible. Esto podría hacerse muy rápidamente para una solución aproximada, o en un sentido complejo de mínimos cuadrados para un mejor ajuste. GTH
fuente