0
$\begingroup$

I'm dealing with the Fourier Transform of the following signal:

func = {{-0.01, 2.94386*10^-9}, {-0.0099, 3.20212*10^-9}, {-0.0098, 
  3.42933*10^-9}, {-0.0097, 3.61787*10^-9}, {-0.0096, 
  3.76096*10^-9}, {-0.0095, 3.85295*10^-9}, {-0.0094, 
  3.88953*10^-9}, {-0.0093, 3.86802*10^-9}, {-0.0092, 
  3.78751*10^-9}, {-0.0091, 3.64904*10^-9}, {-0.009, 
  3.45571*10^-9}, {-0.0089, 3.2127*10^-9}, {-0.0088, 
  2.9273*10^-9}, {-0.0087, 2.60877*10^-9}, {-0.0086, 
  2.26828*10^-9}, {-0.0085, 1.91861*10^-9}, {-0.0084, 
  1.57396*10^-9}, {-0.0083, 1.24955*10^-9}, {-0.0082, 
  9.61273*10^-10}, {-0.0081, 7.25254*10^-10}, {-0.008, 
  5.5735*10^-10}, {-0.0079, 4.72677*10^-10}, {-0.0078, 
  4.85079*10^-10}, {-0.0077, 6.06621*10^-10}, {-0.0076, 
  8.47085*10^-10}, {-0.0075, 1.2135*10^-9}, {-0.0074, 
  1.70972*10^-9}, {-0.0073, 2.33606*10^-9}, {-0.0072, 
  3.089*10^-9}, {-0.0071, 3.961*10^-9}, {-0.007, 
  4.94042*10^-9}, {-0.0069, 6.01151*10^-9}, {-0.0068, 
  7.15456*10^-9}, {-0.0067, 8.34622*10^-9}, {-0.0066, 
  9.55982*10^-9}, {-0.0065, 1.0766*10^-8}, {-0.0064, 
  1.19333*10^-8}, {-0.0063, 1.30291*10^-8}, {-0.0062, 
  1.40202*10^-8}, {-0.0061, 1.48742*10^-8}, {-0.006, 
  1.55604*10^-8}, {-0.0059, 1.6051*10^-8}, {-0.0058, 
  1.63221*10^-8}, {-0.0057, 1.63554*10^-8}, {-0.0056, 
  1.61389*10^-8}, {-0.0055, 1.56682*10^-8}, {-0.0054, 
  1.49478*10^-8}, {-0.0053, 1.39919*10^-8}, {-0.0052, 
  1.28254*10^-8}, {-0.0051, 1.14844*10^-8}, {-0.005, 
  1.00172*10^-8}, {-0.0049, 8.48391*10^-9}, {-0.0048, 
  6.95743*10^-9}, {-0.0047, 5.52265*10^-9}, {-0.0046, 
  4.27635*10^-9}, {-0.0045, 3.3265*10^-9}, {-0.0044, 
  2.79133*10^-9}, {-0.0043, 2.79814*10^-9}, {-0.0042, 
  3.48182*10^-9}, {-0.0041, 4.9832*10^-9}, {-0.004, 
  7.44707*10^-9}, {-0.0039, 1.102*10^-8}, {-0.0038, 
  1.58482*10^-8}, {-0.0037, 2.20748*10^-8}, {-0.0036, 
  2.98374*10^-8}, {-0.0035, 3.92654*10^-8}, {-0.0034, 
  5.04775*10^-8}, {-0.0033, 6.35786*10^-8}, {-0.0032, 
  7.8658*10^-8}, {-0.0031, 9.5786*10^-8}, {-0.003, 
  1.15012*10^-7}, {-0.0029, 1.36364*10^-7}, {-0.0028, 
  1.59844*10^-7}, {-0.0027, 1.85428*10^-7}, {-0.0026, 
  2.13064*10^-7}, {-0.0025, 2.42675*10^-7}, {-0.0024, 
  2.74153*10^-7}, {-0.0023, 3.07361*10^-7}, {-0.0022, 
  3.42137*10^-7}, {-0.0021, 3.78291*10^-7}, {-0.002, 
  4.15606*10^-7}, {-0.0019, 4.53843*10^-7}, {-0.0018, 
  4.92741*10^-7}, {-0.0017, 5.3202*10^-7}, {-0.0016, 
  5.71385*10^-7}, {-0.0015, 6.10527*10^-7}, {-0.0014, 
  6.49128*10^-7}, {-0.0013, 6.86868*10^-7}, {-0.0012, 
  7.2342*10^-7}, {-0.0011, 7.58465*10^-7}, {-0.001, 
  7.91688*10^-7}, {-0.0009, 8.22785*10^-7}, {-0.0008, 
  8.51468*10^-7}, {-0.0007, 8.77466*10^-7}, {-0.0006, 
  9.00533*10^-7}, {-0.0005, 9.20445*10^-7}, {-0.0004, 
  9.37011*10^-7}, {-0.0003, 9.50068*10^-7}, {-0.0002, 
  9.59487*10^-7}, {-0.0001, 9.65176*10^-7}, {0., 
  9.67079*10^-7}, {0.0001, 9.65176*10^-7}, {0.0002, 
  9.59487*10^-7}, {0.0003, 9.50068*10^-7}, {0.0004, 
  9.37011*10^-7}, {0.0005, 9.20445*10^-7}, {0.0006, 
  9.00533*10^-7}, {0.0007, 8.77466*10^-7}, {0.0008, 
  8.51468*10^-7}, {0.0009, 8.22785*10^-7}, {0.001, 
  7.91688*10^-7}, {0.0011, 7.58465*10^-7}, {0.0012, 
  7.2342*10^-7}, {0.0013, 6.86868*10^-7}, {0.0014, 
  6.49128*10^-7}, {0.0015, 6.10527*10^-7}, {0.0016, 
  5.71385*10^-7}, {0.0017, 5.3202*10^-7}, {0.0018, 
  4.92741*10^-7}, {0.0019, 4.53843*10^-7}, {0.002, 
  4.15606*10^-7}, {0.0021, 3.78291*10^-7}, {0.0022, 
  3.42137*10^-7}, {0.0023, 3.07361*10^-7}, {0.0024, 
  2.74153*10^-7}, {0.0025, 2.42675*10^-7}, {0.0026, 
  2.13064*10^-7}, {0.0027, 1.85428*10^-7}, {0.0028, 
  1.59844*10^-7}, {0.0029, 1.36364*10^-7}, {0.003, 
  1.15012*10^-7}, {0.0031, 9.5786*10^-8}, {0.0032, 
  7.8658*10^-8}, {0.0033, 6.35786*10^-8}, {0.0034, 
  5.04775*10^-8}, {0.0035, 3.92654*10^-8}, {0.0036, 
  2.98374*10^-8}, {0.0037, 2.20748*10^-8}, {0.0038, 
  1.58482*10^-8}, {0.0039, 1.102*10^-8}, {0.004, 
  7.44707*10^-9}, {0.0041, 4.9832*10^-9}, {0.0042, 
  3.48182*10^-9}, {0.0043, 2.79814*10^-9}, {0.0044, 
  2.79133*10^-9}, {0.0045, 3.3265*10^-9}, {0.0046, 
  4.27635*10^-9}, {0.0047, 5.52265*10^-9}, {0.0048, 
  6.95743*10^-9}, {0.0049, 8.48391*10^-9}, {0.005, 
  1.00172*10^-8}, {0.0051, 1.14844*10^-8}, {0.0052, 
  1.28254*10^-8}, {0.0053, 1.39919*10^-8}, {0.0054, 
  1.49478*10^-8}, {0.0055, 1.56682*10^-8}, {0.0056, 
  1.61389*10^-8}, {0.0057, 1.63554*10^-8}, {0.0058, 
  1.63221*10^-8}, {0.0059, 1.6051*10^-8}, {0.006, 
  1.55604*10^-8}, {0.0061, 1.48742*10^-8}, {0.0062, 
  1.40202*10^-8}, {0.0063, 1.30291*10^-8}, {0.0064, 
  1.19333*10^-8}, {0.0065, 1.0766*10^-8}, {0.0066, 
  9.55982*10^-9}, {0.0067, 8.34622*10^-9}, {0.0068, 
  7.15456*10^-9}, {0.0069, 6.01151*10^-9}, {0.007, 
  4.94042*10^-9}, {0.0071, 3.961*10^-9}, {0.0072, 
  3.089*10^-9}, {0.0073, 2.33606*10^-9}, {0.0074, 
  1.70972*10^-9}, {0.0075, 1.2135*10^-9}, {0.0076, 
  8.47085*10^-10}, {0.0077, 6.06621*10^-10}, {0.0078, 
  4.85079*10^-10}, {0.0079, 4.72677*10^-10}, {0.008, 
  5.5735*10^-10}, {0.0081, 7.25254*10^-10}, {0.0082, 
  9.61273*10^-10}, {0.0083, 1.24955*10^-9}, {0.0084, 
  1.57396*10^-9}, {0.0085, 1.91861*10^-9}, {0.0086, 
  2.26828*10^-9}, {0.0087, 2.60877*10^-9}, {0.0088, 
  2.9273*10^-9}, {0.0089, 3.2127*10^-9}, {0.009, 
  3.45571*10^-9}, {0.0091, 3.64904*10^-9}, {0.0092, 
  3.78751*10^-9}, {0.0093, 3.86802*10^-9}, {0.0094, 
  3.88953*10^-9}, {0.0095, 3.85295*10^-9}, {0.0096, 
  3.76096*10^-9}, {0.0097, 3.61787*10^-9}, {0.0098, 
  3.42933*10^-9}, {0.0099, 3.20212*10^-9}, {0.01, 2.94386*10^-9}}

I found that the best way to approximate this set of data to an analytical function is by a cosine series expansion like the following one:

len = (Max[#] - Min[#]) &@func[[All, 1]];
fit = Fit[func, Table[Cos[((π n)/len)*x], {n, 0, 30}], x];

Then I apply a Fourier Transform to this fit (with normalization):

fourier = Abs[FourierTransform[fit, x, 2*π*ω]];
fourier = fourier/(fourier /. {ω -> 0.0});

Now this transformation leaves me with a series of DiracDelta functions that I wish to plot between, say 0.0 and 100.0 for the variable ω. I tried several methods like replacing the DiracDelta functions with UnitTriangle or with UnitStep but I could not manage to get it working.

How can I manage to get this done?

Thanks!

$\endgroup$
  • $\begingroup$ You can apply smth. like Fourier or FourierDCT directly to data and see spectrum, probably no need to use interpolation/approximation. $\endgroup$ – Alx Sep 10 at 12:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.