class_docstr: fft tools for arma processes
  
  This class contains several methods that are providing the same or similar
  returns to try out and test different implementations.
  
  Notes
  -----
  TODO:
  check whether we do not want to fix maxlags, and create new instance if
  maxlag changes. usage for different lengths of timeseries ?
  or fix frequency and length for fft
  
  check default frequencies w, terminology norw  n_or_w
  
  some ffts are currently done without padding with zeros
  
  returns for spectral density methods needs checking, is it always the power
  spectrum hw*hw.conj()
  
  normalization of the power spectrum, spectral density: not checked yet, for
  example no variance of underlying process is used
class_docstr_tok: ["fft","tools","for","arma","processes","This","class","contains","several","methods","that","are","providing","the","same","or","similar","returns","to","try","out","and","test","different","implementations",".","Notes","--","--","-","TODO",":","check","whether","we","do","not","want","to","fix","maxlags",",","and","create","new","instance","if","maxlag","changes",".","usage","for","different","lengths","of","timeseries","?","or","fix","frequency","and","length","for","fft","check","default","frequencies","w",",","terminology","norw","n_or_w","some","ffts","are","currently","done","without","padding","with","zeros","returns","for","spectral","density","methods","needs","checking",",","is","it","always","the","power","spectrum","hw","*","hw.conj","(",")","normalization","of","the","power","spectrum",",","spectral","density",":","not","checked","yet",",","for","example","no","variance","of","underlying","process","is","used"]
docstr: not really a method
  just for comparison, not efficient for large n or long acf
  
  this is also similarly use in tsa.stattools.periodogram with window
docstr_tok: ["not","really","a","method","just","for","comparison",",","not","efficient","for","large","n","or","long","acf","this","is","also","similarly","use","in","tsa.stattools.periodogram","with","window"]
code: def acf2spdfreq(self, acovf, nfreq=100, w=None):
      """
      not really a method
      just for comparison, not efficient for large n or long acf
  
      this is also similarly use in tsa.stattools.periodogram with window
      """
      if w is None:
          w = np.linspace(0, np.pi, nfreq)[:, None]
      nac = len(acovf)
      hw = (
          0.5
          / np.pi
          * (
              acovf[0]
              + 2 * (acovf[1:] * np.cos(w * np.arange(1, nac))).sum(1)
          )
      )
      return hw
  
imports: import numpy
  import numpy.fft
  from scipy import signal
  from statsmodels.tsa.arima_process import ArmaProcess
label_desc: Use image node_id 16 for calling the ArmaFft obj's underlying member method code with example usage: obj.acf2spdfreq(acovf, nfreq, w) and returns: hw