What matlab command can give me the area of a spectrum. I have shock response spectrum but i need to find the area under the curve.
No products are associated with this question.
The area under your curve should just be:
N = numel(x); dt = 1/fs; df = fs/N; y = fft(x)*dt;
area_y = sum(abs(y))*df; % which is also equal to: sum(abs(fft(x)))/N energy_y = sum(abs(y).^2)*df;
If you really want "energy", then energy_y should be equal to energy_x:
energy_x = sum(x.^2)*dt;
Hi Lisa, If you have the Signal Processing Toolbox, you can use the avgpower() method of a spectrum object.
Fs = 1000; t = 0:1/Fs:1-(1/Fs); x = cos(2*pi*50*t)+sin(2*pi*100*t)+randn(size(t)); psdest = psd(spectrum.periodogram,x,'Fs',Fs,'NFFT',length(x)); avgpower(psdest,[25 75])
The final line above integrates under the PSD from 25 to 75 Hz.
Note you can get the fraction of the total power in the specified interval with: