import get from 'lodash-es/get.js'
import _fft1d from './_fft1d.mjs'
/**
* iFFT1D
*
* @param {Array} arr 輸入數據陣列
* @param {Object} [opt={}] 選項物件
* @param {String} [opt.type='dft'] 輸入計算方式字串,'dft'為使用mathjs對任意n點做真實n點iDFT(2冪次走Cooley-Tukey、其餘走Chirp-Z),數據品質最佳但非2冪次時較慢;'pow2'為先補零至2冪次(最少4點)再使用ml-fft之radix-2 iFFT,速度極快適合前端即時繪圖,但輸出點數為補零後之2冪次,預設'dft'
* @return {Array} 回傳轉換後數據陣列
* @example
*
* let arr
* let res
*
* arr = [
* [120, 0],
* [-8, 40.21871593700678],
* [-8, 19.31370849898476],
* [-7.999999999999999, 11.972846101323913],
* [-8, 8],
* [-8, 5.345429103354391],
* [-8, 3.313708498984761],
* [-7.999999999999999, 1.5912989390372623],
* [-8, 0],
* [-7.999999999999999, -1.5912989390372623],
* [-8, -3.313708498984761],
* [-8, -5.345429103354391],
* [-8, -8],
* [-7.999999999999999, -11.972846101323913],
* [-8, -19.31370849898476],
* [-8, -40.21871593700678]
* ]
* res = wf.ifft1d(arr)
* console.log(res)
* // => [
* // 0, 1,
* // 2.0000000000000004, 3.0000000000000013,
* // 4, 5.000000000000002,
* // 6, 7.000000000000001,
* // 8, 9,
* // 10, 10.999999999999998,
* // 12, 12.999999999999998,
* // 14, 15
* // ]
*
* res = wf.ifft1d(arr, { type: 'pow2' })
* console.log(res)
* // => [
* // 0, 1,
* // 2, 3.0000000000000018,
* // 4, 5.000000000000002,
* // 6, 7,
* // 8, 9,
* // 10, 10.999999999999998,
* // 12, 12.999999999999998,
* // 14, 15
* // ]
*
*/
let ifft1d = (arr, opt = {}) => {
//type
let type = get(opt, 'type', 'dft')
return _fft1d(arr, 'inv', type)
}
export default ifft1d