MATLAB: Errors Computing the Energy of fft

fft-energy

I am trying to calculate the energy of a Fourier Transform.
gt= 3.*triangularPulse((t-0.004)/0.002)-6.*triangularPulse((t-0.002)/0.001);
Gf1=@(f) abs(fft(gt)).^2;
EGf=integral(Gf1,0,3000)
However, I keep getting the following errors:
Error using integralCalc/finalInputChecks (line 526)
Output of the function must be the same size as the input. If FUN is an array-valued integrand, set the 'ArrayValued' option to true.
Error in integralCalc/iterateScalarValued (line 315)
finalInputChecks(x,fx);
Error in integralCalc/vadapt (line 132)
[q,errbnd] = iterateScalarValued(u,tinterval,pathlen);
Error in integralCalc (line 75)
[q,errbnd] = vadapt(@AtoBInvTransform,interval);
Error in integral (line 88)
Q = integralCalc(fun,a,b,opstruct);

Best Answer

Hi,
You can check this code. Worked fine for me.
gt= (3.*triangularPulse((t-0.004)/0.002))-(6.*triangularPulse((t-0.002)/0.001));
Gf1=@(f) abs(fft(gt)).^2;
EGf=integral(Gf1,0,3000,'ArrayValued',1)
Hope it helps !