energy of a signal in t and f domain

2 visualizaciones (últimos 30 días)
Ray Lee
Ray Lee el 3 de Dic. de 2014
Comentada: Ray Lee el 5 de Dic. de 2014
The energy of a signal is expected to be the same in t and f domain.
n = 1e4;
dx = 0.25;
x = rand(n,1) -0.5;
ex = sum(x.^2) *dx; % energy in t domain
y = fft(x);
fs = 1/dx;
df = fs/n;
ya = abs(y);
ey = sum(ya.^2) *df; % energy in f domain
but from the code, ey/ex=16, exactly the squared fs.
what's the problem?

Respuesta aceptada

Star Strider
Star Strider el 3 de Dic. de 2014
You need to normalise the fft by dividing it by the length of the signal:
y = fft(x)/length(x);
See the documentation for fft for details.
  2 comentarios
Ray Lee
Ray Lee el 4 de Dic. de 2014
Before, I got ey/ex=16
after normalization, I got ey/ex=1.6000e-07
Ray Lee
Ray Lee el 5 de Dic. de 2014
it seems y = fft(x) / fs

Iniciar sesión para comentar.

Más respuestas (1)

Ray Lee
Ray Lee el 5 de Dic. de 2014
I found the solution myself.
Normalizing spectral amplitude by fs will work.
But I don't know why to do this.

Categorías

Más información sobre Spectral Measurements en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by