Ganancia de procesamiento de FFT

8

Cuando se transforma una señal ruidosa a través de la Transformada rápida de Fourier de tiempo a dominio de frecuencia, hay una "ganancia de procesamiento" de la FFT que aumenta a medida que aumenta el número de bins. Es decir, cuantos más contenedores tengo, más se reduce el ruido de fondo en el dominio de frecuencia.

1. En realidad no entiendo completamente, de dónde viene esta ganancia. ¿Esto significa que solo necesito muestrear la señal con una frecuencia de muestreo más alta para tener más contenedores, por lo tanto, una mayor ganancia de procesamiento FFT?

2. ¿Qué pasa con la FFT inversa? ¿Tengo un "Procesamiento perdido"? Al comenzar en el dominio de la frecuencia, ¿esto significa que cuantas más muestras de frecuencia tenga, más ruido aparecerá en la señal del dominio del tiempo? Sin embargo, esto sería contra-intuitivo ya que esto también conduciría a una gran distorsión de las señales cuando se aplica el relleno (de los datos del dominio de la frecuencia) para fines de interpolación en el dominio del tiempo.

Franco
fuente
1
Respuesta corta: una forma de ver el DFT es un banco uniformemente separado de filtros de paso de banda. A medida que aumenta el número de contenedores en su DFT, cada filtro tiene un ancho de banda más estrecho (y, por lo tanto, pasa menos ruido). Si está buscando una señal de banda estrecha, vale la pena tener el ancho del contenedor DFT cerca del ancho de banda de la señal de interés. De esa manera, aún pasa la señal sin cambios y al mismo tiempo pasa el menor ruido posible. Puedo ampliar esto más adelante si tengo la oportunidad.
Jason R
Agradecería una explicación ampliada.
Frank
3
designnews.com/…
random_dsp_guy
@Frank: el enlace proporcionado por Seth tiene una explicación un poco más detallada. Aumentar el tamaño de FFT para "reducir el ruido de fondo" es análogo a disminuir el ancho de banda de resolución en un analizador de espectro.
Jason R
1
OBFUSCACIÓN DE ESCHEW La FFT SNR aumenta con el número de puntos FFT debido a la DEFINICIÓN de la FFT SNR. La SNR FFT se define como la SNR en un BW igual al tamaño del BIN de frecuencia y el tamaño del BIN disminuye a medida que aumenta el número de puntos FFT.
usuario de la cuenta el

Respuestas:

5

Creo que la forma más fácil de envolver un concepto es tener un ejemplo simple:

% example of FFT of a very noisy sin wave
f0 = 1000;     % sinusoid frequency
Fs = 10000;    % sampling frequency 
n = 0:1/Fs:1; % one second worth of sample index
N = length(n);
SNR = -20;    % signal to noise ratio is -20dB
Pn  = 0.5*10^(-SNR/10); % signal power is 0.5 for sin wave
NFFT = round([N/8 N/4 N/2 N]); % FFT size to see how it effects the gain


%% signal and generation
sx = sin(2*pi*f0*n);
sn = sqrt(Pn)*randn(1, N);
%% adding noise
xn = sx + sn;
%% signal with and w/o noise in time
figure(1);
plot(n(1:100), xn(1:100)); hold on;
plot(n(1:100), x(1:100), 'r');
legend('noisy', 'clean');
%% FFT of different sizes
figure(2); 
Xf = fft(xn, NFFT(4));
plot(Fs*(0:NFFT(4)-1)/NFFT(4), abs(Xf)/N, '.-'); hold on;
Xf = fft(xn, NFFT(3));
plot(Fs*(0:NFFT(3)-1)/NFFT(3), abs(Xf)/N, 'r.-');
Xf = fft(xn, NFFT(2));
plot(Fs*(0:NFFT(2)-1)/NFFT(2), abs(Xf)/N, 'g.-'); 
Xf = fft(xn, NFFT(1));
plot(Fs*(0:NFFT(1)-1)/NFFT(1), abs(Xf)/N, 'k.-');
legend('FFT size = N', 'FFT size = N/2', 'FFT size = N/4', 'FFT size = N/8');

La trama de la onda de pecado ruidosa y limpia en el dominio del tiempo se ve así: Ruidoso vs onda limpia del pecado

Los gráficos de FFT para diferentes tamaños en el dominio de frecuencia son: ingrese la descripción de la imagen aquí

es decir, aumentar el tamaño de FFT significa agregar más muestras de señal en el cálculo y, por lo tanto, es más fácil para FFT determinar la frecuencia, ya que la información de la señal se agrega, mientras que la información de ruido no. Aquí puede ver que la señal de ruido de piso "relativo" ha disminuido.

En cuanto a la inversa de Fourier, no diré que es una pérdida, diría que volvimos de donde venimos.

hth.

aprendiz
fuente
2
Si bien no es necesariamente riguroso, este es el tipo de respuesta que buscaba el OP. Las otras respuestas que describen las ganancias constantes inherentes a muchas implementaciones de DFT no son incorrectas, pero simplemente no responden la pregunta que se hizo. Vea el enlace provisto en el comentario de Seth sobre la pregunta anterior también.
Jason R
No puedo aceptar totalmente la afirmación "no tiene sentido IFFT, si no hicimos la FFT en primer lugar". Piense en un analizador de red vectorial que proporciona valores de dominio de frecuencia. En este caso, no se aplica FFT (hacia adelante) a priori. Por lo tanto, la aplicación de la FFT inversa en estos datos originales conduciría a "Procesamiento perdido" mientras se transforma en dominio de tiempo.
Frank
@Frank esto significa que en el espectro extendido, introducimos una pérdida de procesamiento en el transmisor, ¡para aplicar la ganancia de procesamiento en el receptor! Al final no ganamos nada.
alumno
@learner: El espectro ensanchado es una especie de ejemplo artificial ya que una señal de banda estrecha se transmite "por el hombre" en el transmisor para lograr cierta ganancia en el receptor. Sin embargo, cuando se utiliza un analizador de red vectorial no hay ningún paso antes de obtener los datos del dominio de frecuencia. Por lo tanto, no existe una fuente de "SNR degenerativa" artificial para obtener SNR en algún otro punto de la cadena de procesamiento.
Frank
@Frank En realidad, cada vez que usaba el analizador de red siempre hacía el IFFT de un barrido de espectro (3GHz-11GHz), en ese caso, no podía observar una pérdida de procesamiento de IFFT. Sin embargo, su punto es válido. Eso me hizo pensar que la ganancia FFT y la pérdida IFFT son relativas a las propiedades de la señal que se está considerando. Considere una función dirac delta en el tiempo, si hacemos FFT, en lugar de ganar tendremos una pérdida. ¿Estás de acuerdo?
alumno
1

La "'ganancia de procesamiento' de la FFT que aumenta a medida que aumenta el número de contenedores" se debe únicamente a un problema de definición. el FFT es un algoritmo "rápido" para calcular el DFT. generalmente el DFT (y el DFT inverso) se define como:

X[k]n=0N1x[n]ej2πnk/N

y

x[n]=1Nk=0N1X[k]e+j2πnk/N

pero podría haberse definido como

X[k]1Nn=0N1x[n]ej2πnk/N

y

x[n]=k=0N1X[k]e+j2πnk/N

e incluso se puede definir como

X[k]1Nn=0N1x[n]ej2πnk/N

y

x[n]=1Nk=0N1X[k]e+j2πnk/N

en la última forma, no hay "ganancia de procesamiento" ni del DFT ni del iDFT.

robert bristow-johnson
fuente
No entiendo por qué esta respuesta es rechazada. No aborda la parte 2 de la pregunta, pero definitivamente no está mal.
Phonon
3
y responde a la cuestión de la ganancia de la FFT inversa tanto como a la cuestión de la ganancia de la FFT hacia adelante. así es la vida.
Robert Bristow-Johnson
1
Para la "ganancia de procesamiento" de la que hablan las otras respuestas, no importa cuál sea la normalización. La parte importante es qué tan lejos está su nivel de ruido en relación con su señal.
oystein
entonces @oystein, ¿la "ganancia de procesamiento" se aplica solo a la relación señal / ruido?
robert bristow-johnson
@robert bristow-johnson, sí, al menos eso entiendo. No importa si escala su resultado DFT en , o , ya que escala tanto 'señal' como 'ruido'. NN1
oystein
1

La ganancia de procesamiento de FFT proviene del hecho de que el DFT (del cual FFT es simplemente una implementación rápida) es una transformación lineal no normalizada. Esto es un bocado, así que veamos lo que esto significa.

Asumiré que sabes lo que es una transformación lineal . Es decir, dados los vectores y y una matriz tenemosxyA

y=Ax.

DFT es solo una transformación. De hecho, puede usar el dftmtxcomando MATLAB para generar esta matriz en función de la longitud del vector . Este este caso,x

y=DFT(x).

Esta matriz tiene algunas propiedades. En primer lugar, es una matriz cuadrada, lo que significa que probablemente sea invertible (¡y de hecho lo es!). También nos dice que esencialmente estamos tomando componentes de x y realizando un cambio de base dado por las columnas de para obtener su DFT. Hasta aquí todo bien.AA

Ahora, veamos algunas propiedades más importantes. La matriz es ortogonal. Esto significa que cada columna de es perpendicular a cualquier otra columna, o más matemáticamente, es una matriz diagonal (puede que tenga que pensar un poco sobre por qué esto es cierto). Esta es una propiedad muy agradable, ya que simplemente transponer la matriz nos da algo muy cercano a su inverso.AAATA

Para hacer estricta esta relación inversa Transponer inversa, queremos que la matriz también sea normal . Esta es una matriz cuyo vector de columna tiene una longitud 1. En otras palabras, si es una columna de , entonces Si una matriz es ortogonal y normal, la llamamos ortonormal , y en este caso , por lo que es, de hecho, la inversa de . ¡Ordenado!AaAaTa=1.ATA=IATA

La matriz DFT habitual (o la transformación DFT habitual) es ortogonal, pero no ortonormal. De hecho, si es la matriz DFT, a continuación, donde es el número de columnas (o filas, es cuadrado!) En . Para hacerlo ortonormal, debemos usar lugar. Si lo miras lo suficiente, te das cuenta de que si escalamos las transformaciones hacia adelante y hacia atrás por , estamos haciendo un trabajo adicional para realizar los cálculos, por lo que generalmente solo escalamos por en el inverso.DDTD=NNDDN1N1N

Hay mejores razones teóricas para hacerlo por un lado en lugar de por los dos. Vea mi respuesta aquí para más información.

Phonon
fuente
1

La ganancia de procesamiento de la FFT se refiere al aumento de la SNR para una sinusoide. Puede pensar en el DFT o el FFT como un banco de filtros coincidentes. El filtro adaptado maximiza la SNR en la salida. Otra forma de ver la ganancia de procesamiento, si tiene sinusoide en ruido en el dominio del tiempo en una SNR dada y luego toma la FFT y observa la potencia sinsoide frente a la potencia de ruido en el contenedor FFT (suponiendo que la frecuencia se corresponde exactamente con un FFT bin), entonces verá una mayor SNR o ganancia de procesamiento. Puede pensar en la FFT como filtros de ancho de banda y el ruido en cada intervalo de frecuencia se extiende en comparación con la señal en el dominio del tiempo donde el ruido es a través de la señal.

La ganancia de procesamiento se produce porque agrega coherentemente los componentes de la sinusoide. Entonces también verá esto llamado ganancia coherente. Esta adición coherente también es la razón por la que cuando tiene una señal más larga, obtiene más ganancia de procesamiento, es decir, más muestras se suman coherentemente. Por coherente quiero decir que asume que tienes conocimiento de la fase de la señal, en este caso la frecuencia. Alternativamente, puede pensar en un filtro más largo que tenga un ancho de banda más estrecho, por lo que pasa menos ruido a través del filtro. Por lo tanto, le brinda una mejor SNR o ganancia de procesamiento.

Tenga en cuenta que si la sinusoide no se alinea exactamente con una frecuencia de un contenedor FFT, entonces todavía habrá un pico cerca de los contenedores FFT, pero algunos de los contenedores FFT vecinos también contendrán magnitudes significativas. Habrá un pico en el contenedor FFT más cercano, pero será menor que la ganancia de procesamiento. Este efecto a menudo se denomina fuga espectral. Puede usar ventanas para reducir la fuga espectral, pero también disminuye la ganancia de procesamiento. La peor pérdida de caso es cuando su señal se encuentra exactamente entre dos frecuencias de bin FFT.

Te sugiero que leas el periódico Harris sobre Windows. Explica muchos de los detalles de los que estoy hablando.

Entonces, si tiene una sinusoide en ruido blanco, obtendrá la ganancia de procesamiento al tomar el DFT / FFT. Al tomar el IFFT / IDFT sufrirá una pérdida de procesamiento porque está difundiendo su señal de vuelta al ruido.

David
fuente
-1

La "ganancia" es en términos del conocimiento deseado (y fácil de ver). Si se transforma al dominio de la frecuencia, obtiene un conocimiento más explícito / visible (como se puede ver en un diagrama gráfico) de bandas de frecuencia particulares, pero pierde conocimiento visible (ya no puede verlo en el diagrama FFT) de la información de sincronización exacta. Si vuelve a transformarse en el dominio del tiempo, obtiene un conocimiento más explícito del tiempo (tiempo de impulso y cambios transitorios, etc.), pero pierde el conocimiento visible (si desecha el gráfico FFT anterior) de qué bandas de frecuencia ese tiempo. La forma de onda del dominio estimula.

No hay una ganancia real en la información inherente presente ni en el vector de tiempo ni en el de frecuencia, lo más probable es que se produzcan algunas pequeñas pérdidas debido a la precisión numérica dentro de la FFT.

Aumentar la frecuencia de muestreo de una señal ya limitada en la banda (ya debajo de Nyquist a la frecuencia de muestreo más baja) no agrega información nueva (excepto posiblemente mover los datos de la muestra más lejos de las distorsiones del filtro anti-alias y extender el ruido de cuantificación). No hay nada nuevo a lo que agregar más "ganancia".

Pero aumentar el tiempo total del vector de muestra (no con relleno de cero, sino con datos relevantes más reales) puede agregar nueva información nueva, lo que puede permitir que la "ganancia" de procesamiento disminuya el ruido de fondo, especialmente dada una señal estacionaria.

hotpaw2
fuente