Usando FFT para análisis espectral: ¿Cómo convertir de potencia a dBm?

Tengo la salida de mi FFT, una matriz de números complejos, y cada uno ha sido calculado con la magnitud al cuadrado. Según tengo entendido, la magnitud al cuadrado es equivalente a la potencia, por lo que para mapear a dBm, tomaría 10 * log(x) de cada uno de estos números. Esto no parece dar niveles precisos de dBm según otro analizador espectral.

Convertir a voltaje de magnitud, tomando la raíz cuadrada de la magnitud al cuadrado y dividiendo por el tamaño de la FFT, y luego tomando el 20 * log(x) de este número parece dar un nivel de dBm más cercano en comparación con otros equipos. ¿Por qué es esto?

¿En qué unidades está tu magnitud? dBm es dB en relación con 1 mW, por lo que probablemente también deba considerar una impedancia de referencia. Los voltios solos no son suficientes.
Es posible que obtenga una coincidencia exacta con los valores esperados si tiene en cuenta el efecto de reducción de sincronización y los efectos de ventana. También para ignorar los efectos y simplemente validar el algoritmo, use 2 señales de Sin diferentes conocidas en una mezcla y compárelas con la diferencia de potencia esperada.
Ninguna de las respuestas a continuación aborda una parte importante de su pregunta: "dividir por el tamaño de la FFT" en un caso y no en el otro. Suponiendo que su algoritmo FFT solo se escala a la inversa, debe dividir por el tamaño de FFT que se debe al teorema de Parseval.

Respuestas (2)

10 Log10 de la magnitud al cuadrado produce dB, pero no dBm. dB es una medida relativa. Dado que los dB son logarítmicos, puede agregar alguna constante a una pila de números de dB y la pila aún tiene el mismo significado porque los números de dB separados solo son relativos entre sí.

Sin embargo, dBm define 0 como la representación de 1 mW. Ahora hay una referencia absoluta, por lo que los números de dBm individuales ya no son solo proporciones, sino que representan niveles de potencia fijos. Por ejemplo, 42 dBm = 15,8 W.

El problema que tiene es que aparentemente no sabe qué representan los valores de entrada en su FFT. ¿Es una señal de voltaje, una señal de corriente, algo más? La potencia es proporcional tanto al voltaje al cuadrado como a la corriente al cuadrado, pero no puedes conocer la potencia absoluta sin la constante de proporcionalidad. En el caso de tensión al cuadrado, la constante de proporcionalidad es 1/resistencia. En el caso de la corriente al cuadrado, es la resistencia.

Así que el verdadero problema es que no sabes lo que sale de tu FFT porque no sabes en qué te metiste. Esto suele ser un problema cuando las personas se descuidan con las unidades o las ignoran por completo como en este caso.

Digamos, por ejemplo, que lo que puso en la FFT fue una señal EMF en unidades de voltios. Eso significa que la magnitud al cuadrado a la que te refieres está en unidades de voltios al cuadrado. Sin embargo, eso todavía no te dice poder. Si sabía, por ejemplo, que este voltaje estaba impulsando una carga de 600 Ω, entonces puede calcular la potencia. Un valor de salida de FFT de 1 V² implicaría entonces una potencia de 1,67 mW, lo que significa 2,22 dBm. En este ejemplo, podría multiplicar los valores de V² por 1,67 primero y luego tomar 10 Log10 para obtener dBm, o equivalentemente tomar 10 Log10 de los valores de V² y luego agregar 2,22 para obtener dBm. Por supuesto, el factor real que usa para ajustar 10 Log10 (V²) a dBm depende de la resistencia que genera el voltaje original, que no nos ha dicho.

Atención a las unidades.

Creo que 42dBm es un número exacto, ya que es 10+10+10+3+3+3+3dBm, se convierte en 10*10*10*2*2*2*2 mW, así que 16 W según mi cuenta, pero podría ser incorrecto. Esto no es algo serio, pero me pregunto si estoy haciendo los cálculos incorrectamente y si lo he hecho durante años.
@Kortuk: ¡mal, mal, mal! ;-) No, no es tan malo. Log(2) = 0,3010(3), no 0,3. Así que tienes un ligero error de redondeo del 0,3%. De todos modos, nunca he necesitado más de 2 dígitos significativos para un valor de dB.
@Kortuk: Su regla general donde 3 dB es un factor de dos está bastante cerca. Obtuviste 16 W con un cálculo rápido y sucio que puedes hacer en tu cabeza, y obtuve 15,8 W haciendo las matemáticas más exactas con una calculadora. Eso es bastante bueno. La respuesta precisa es 10^4,2 mW, que es aproximadamente 15 849 mW, o 15,8 W redondeado a tres lugares. Básicamente, ambos tenemos razón.
@Kortuk: Dicho de otra manera, un factor de 2 en dB es 10 Log10(2), que es 3.01030...., para el cual 3 es una aproximación útil, especialmente cuando manipulas dB en tu cabeza. Sin embargo, hay que tener en cuenta que es un atajo y una aproximación, y no perder de vista la definición real de dB, que es 10 log10(potencia).
Sí, pensé que podría ser un error de redondeo, pero me preguntaba hasta qué punto. Gracias por tomarse el tiempo. @stevenvh ya lo respondió, pero en ese momento era más divertido preguntar y lo usé para mostrarles a otros una forma de hacer dB rápidamente. Nunca he necesitado más de 2 sig figs porque en todas mis situaciones es posible medir con mucha precisión, pero nuestros sistemas a menudo pueden tener errores en el rango de +-3dB. Divertido divertido.
@Olin - Gracias, esto fue muy útil. Estoy usando una radio USRP y GNU para buscar canales en el espectro de la banda de TV, por lo que la entrada a la FFT proviene de un convertidor analógico a digital, que debería ser en términos de voltios.
@upswim: Parece que el A/D está midiendo voltaje, o más precisamente EMF (ElectroMotive Force), pero no hay garantía de que los números estén en unidades de voltios. A menos que alguien haya hecho una conversión deliberada, probablemente no lo sea.

A mi entender, la magnitud al cuadrado es equivalente a la potencia,

La magnitud al cuadrado es proporcional a la potencia. Piénselo de esta manera, si midió el voltaje a través de una resistencia y lo elevó al cuadrado, tiene el valor numérico de la potencia normalizado a 1 ohm, es decir, la potencia que estaría asociada con ese voltaje a través de una resistencia de 1 ohm. De manera similar para la corriente a través de una resistencia de 1 ohm.

Entonces, para encontrar la potencia real, necesita saber el valor de la resistencia a través del voltaje o la corriente.

Dado que 1 voltio en 1 ohmio produce 1 vatio y 10 log (1) = 0, está encontrando la potencia en dB referenciada a 1 vatio en 1 ohmio cuando toma 10 log de la magnitud.