dsp-collection 0.2.5 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/README.md +6 -2
  2. package/filter/FirFilterWin.d.ts +8 -0
  3. package/filter/FirFilterWin.d.ts.map +1 -0
  4. package/filter/FirFilterWin.js +55 -0
  5. package/filter/FirFilterWin.js.map +1 -0
  6. package/filter/SpecFilt.d.ts +11 -10
  7. package/filter/SpecFilt.d.ts.map +1 -0
  8. package/filter/SpecFilt.js +98 -98
  9. package/filter/SpecFilt.js.map +1 -1
  10. package/math/Complex.d.ts +43 -42
  11. package/math/Complex.d.ts.map +1 -0
  12. package/math/Complex.js +130 -129
  13. package/math/Complex.js.map +1 -1
  14. package/math/ComplexArray.d.ts +37 -36
  15. package/math/ComplexArray.d.ts.map +1 -0
  16. package/math/ComplexArray.js +170 -170
  17. package/math/ComplexArray.js.map +1 -1
  18. package/math/MathUtils.d.ts +10 -7
  19. package/math/MathUtils.d.ts.map +1 -0
  20. package/math/MathUtils.js +116 -81
  21. package/math/MathUtils.js.map +1 -1
  22. package/math/MutableComplex.d.ts +24 -22
  23. package/math/MutableComplex.d.ts.map +1 -0
  24. package/math/MutableComplex.js +68 -64
  25. package/math/MutableComplex.js.map +1 -1
  26. package/math/NumApprox.d.ts +4 -3
  27. package/math/NumApprox.d.ts.map +1 -0
  28. package/math/NumApprox.js +67 -67
  29. package/math/NumApprox.js.map +1 -1
  30. package/math/PolyReal.d.ts +14 -13
  31. package/math/PolyReal.d.ts.map +1 -0
  32. package/math/PolyReal.js +226 -226
  33. package/math/PolyReal.js.map +1 -1
  34. package/package.json +11 -3
  35. package/signal/AdaptiveStft.d.ts +13 -12
  36. package/signal/AdaptiveStft.d.ts.map +1 -0
  37. package/signal/AdaptiveStft.js +57 -57
  38. package/signal/AdaptiveStft.js.map +1 -1
  39. package/signal/Autocorrelation.d.ts +6 -5
  40. package/signal/Autocorrelation.d.ts.map +1 -0
  41. package/signal/Autocorrelation.js +53 -53
  42. package/signal/Autocorrelation.js.map +1 -1
  43. package/signal/Dft.d.ts +10 -9
  44. package/signal/Dft.d.ts.map +1 -0
  45. package/signal/Dft.js +87 -87
  46. package/signal/Dft.js.map +1 -1
  47. package/signal/EnvelopeDetection.d.ts +2 -1
  48. package/signal/EnvelopeDetection.d.ts.map +1 -0
  49. package/signal/EnvelopeDetection.js +9 -9
  50. package/signal/EnvelopeDetection.js.map +1 -1
  51. package/signal/Fft.d.ts +10 -9
  52. package/signal/Fft.d.ts.map +1 -0
  53. package/signal/Fft.js +275 -275
  54. package/signal/Fft.js.map +1 -1
  55. package/signal/Goertzel.d.ts +6 -5
  56. package/signal/Goertzel.d.ts.map +1 -0
  57. package/signal/Goertzel.js +48 -48
  58. package/signal/Goertzel.js.map +1 -1
  59. package/signal/InstFreq.d.ts +9 -8
  60. package/signal/InstFreq.d.ts.map +1 -0
  61. package/signal/InstFreq.js +26 -26
  62. package/signal/InstFreq.js.map +1 -1
  63. package/signal/PitchDetectionHarm.d.ts +27 -26
  64. package/signal/PitchDetectionHarm.d.ts.map +1 -0
  65. package/signal/PitchDetectionHarm.js +72 -68
  66. package/signal/PitchDetectionHarm.js.map +1 -1
  67. package/signal/Resampling.d.ts +8 -7
  68. package/signal/Resampling.d.ts.map +1 -0
  69. package/signal/Resampling.js +218 -218
  70. package/signal/Resampling.js.map +1 -1
  71. package/signal/WindowFunctions.d.ts +42 -40
  72. package/signal/WindowFunctions.d.ts.map +1 -0
  73. package/signal/WindowFunctions.js +194 -194
  74. package/signal/WindowFunctions.js.map +1 -1
  75. package/utils/ArrayUtils.d.ts +10 -9
  76. package/utils/ArrayUtils.d.ts.map +1 -0
  77. package/utils/ArrayUtils.js +68 -68
  78. package/utils/ArrayUtils.js.map +1 -1
  79. package/utils/DspUtils.d.ts +5 -2
  80. package/utils/DspUtils.d.ts.map +1 -0
  81. package/utils/DspUtils.js +12 -6
  82. package/utils/DspUtils.js.map +1 -1
  83. package/utils/MiscUtils.d.ts +7 -6
  84. package/utils/MiscUtils.d.ts.map +1 -0
  85. package/utils/MiscUtils.js +20 -20
  86. package/utils/MiscUtils.js.map +1 -1
package/signal/Fft.js CHANGED
@@ -1,276 +1,276 @@
1
- import ComplexArray from "../math/ComplexArray.js";
2
- import MutableComplex from "../math/MutableComplex.js";
3
- import * as MathUtils from "../math/MathUtils.js";
4
- var cooleyTukeySineTableCache;
5
- export function fft(x, direction = true) {
6
- const n = x.length;
7
- if (n <= 1) {
8
- return x.slice();
9
- }
10
- const x2 = direction ? x : swapReIm(x);
11
- const x3 = MathUtils.isPowerOf2(n) ? fftCooleyTukey(x2) : fftBluestein(x2);
12
- const x4 = direction ? x3 : swapReIm(x3);
13
- return x4;
14
- }
15
- function fftCooleyTukey(x) {
16
- const n = x.length;
17
- const sineTable = getCachedCooleyTukeySineTable(n);
18
- const a = copyBitReversed(x);
19
- applyButterflies(a, sineTable);
20
- return a;
21
- }
22
- function applyButterflies(a, sineTable) {
23
- const temp = new MutableComplex();
24
- const n = a.length;
25
- const re = a.re;
26
- const im = a.im;
27
- for (let mMax = 1; mMax < n; mMax *= 2) {
28
- const step = mMax * 2;
29
- const sinStep = n / step;
30
- for (let m = 0; m < mMax; m++) {
31
- const wIndex = m * sinStep;
32
- const wRe = sineTable.re[wIndex];
33
- const wIm = sineTable.im[wIndex];
34
- for (let i = m; i < n; i += step) {
35
- const j = i + mMax;
36
- temp.setMul(re[j], im[j], wRe, wIm);
37
- re[j] = re[i] - temp.re;
38
- im[j] = im[i] - temp.im;
39
- re[i] += temp.re;
40
- im[i] += temp.im;
41
- }
42
- }
43
- }
44
- }
45
- function copyBitReversed(a1) {
46
- const n = a1.length;
47
- const a2 = new ComplexArray(n);
48
- let i1 = 0;
49
- for (let i2 = 0; i2 < n; i2++) {
50
- a2.re[i2] = a1.re[i1];
51
- a2.im[i2] = a1.im[i1];
52
- i1 = incrementBitReversed(i1, n);
53
- }
54
- return a2;
55
- }
56
- function incrementBitReversed(i, n) {
57
- let m = n >> 1;
58
- let a = i;
59
- while (a & m) {
60
- a -= m;
61
- m >>= 1;
62
- }
63
- return a | m;
64
- }
65
- function fftBluestein(x) {
66
- const n = x.length;
67
- const m = MathUtils.getNextPowerOf2(2 * n - 3);
68
- const sineTable = createSineOfSquareTable(n, 2 * n);
69
- const a1 = new ComplexArray(m);
70
- for (let i = 0; i < n; i++) {
71
- a1.setMul(i, x.re[i], x.im[i], sineTable.re[i], -sineTable.im[i]);
72
- }
73
- const a2 = new ComplexArray(m);
74
- for (let i = 0; i < n; i++) {
75
- ComplexArray.copy1(sineTable, i, a2, i);
76
- }
77
- for (let i = 1; i < n; i++) {
78
- ComplexArray.copy1(sineTable, i, a2, m - i);
79
- }
80
- const a3 = convolve(a1, a2);
81
- const a4 = new ComplexArray(n);
82
- for (let i = 0; i < n; i++) {
83
- a4.setMul(i, a3.re[i], a3.im[i], sineTable.re[i], -sineTable.im[i]);
84
- }
85
- return a4;
86
- }
87
- function convolve(a1, a2) {
88
- const n = a1.length;
89
- if (a2.length != n) {
90
- throw new Error("Array lengths are not equal.");
91
- }
92
- const a3 = fft(a1);
93
- const a4 = fft(a2);
94
- a3.mulByArray(a4);
95
- const a5 = fft(a3, false);
96
- a5.mulAllByReal(1 / n);
97
- return a5;
98
- }
99
- function getCachedCooleyTukeySineTable(n) {
100
- if (!cooleyTukeySineTableCache) {
101
- cooleyTukeySineTableCache = new Array(16);
102
- }
103
- const log2N = MathUtils.floorLog2(n);
104
- if (!cooleyTukeySineTableCache[log2N]) {
105
- cooleyTukeySineTableCache[log2N] = createCooleyTukeySineTable(n);
106
- }
107
- return cooleyTukeySineTableCache[log2N];
108
- }
109
- function createCooleyTukeySineTable(n) {
110
- return createSineTable(n / 2, n, false);
111
- }
112
- function createSineTable(tableLength, waveLength, rotationalDirection = true) {
113
- const w = 2 * Math.PI / waveLength;
114
- const a = new ComplexArray(tableLength);
115
- for (let i = 0; i < tableLength; i++) {
116
- const t = i * w;
117
- a.re[i] = Math.cos(t);
118
- a.im[i] = rotationalDirection ? Math.sin(t) : -Math.sin(t);
119
- }
120
- return a;
121
- }
122
- function createSineOfSquareTable(tableLength, waveLength) {
123
- const w = 2 * Math.PI / waveLength;
124
- const a = new ComplexArray(tableLength);
125
- for (let i = 0; i < tableLength; i++) {
126
- const t = (i * i) % waveLength * w;
127
- a.re[i] = Math.cos(t);
128
- a.im[i] = Math.sin(t);
129
- }
130
- return a;
131
- }
132
- function swapReIm(a) {
133
- const a2 = new ComplexArray();
134
- a2.length = a.length;
135
- a2.re = a.im;
136
- a2.im = a.re;
137
- return a2;
138
- }
139
- export function fftReal(x) {
140
- return fft(new ComplexArray(x));
141
- }
142
- export function fftRealHalf(x, inclNyquist = false) {
143
- if (x.length <= 1) {
144
- return new ComplexArray(x);
145
- }
146
- const m = x.length;
147
- if (m % 2 != 0) {
148
- throw new Error("Input array size is not even.");
149
- }
150
- const n = m / 2;
151
- const a1 = new ComplexArray(n);
152
- for (let i = 0; i < n; i++) {
153
- a1.re[i] = x[2 * i];
154
- a1.im[i] = x[2 * i + 1];
155
- }
156
- const a2 = fft(a1);
157
- const a3 = new ComplexArray(n + (inclNyquist ? 1 : 0));
158
- a3.re[0] = a2.re[0] + a2.im[0];
159
- a3.im[0] = 0;
160
- if (inclNyquist) {
161
- a3.re[n] = a2.re[0] - a2.im[0];
162
- a3.im[n] = 0;
163
- }
164
- const temp1 = new MutableComplex();
165
- const temp2 = new MutableComplex();
166
- const w = Math.PI / n;
167
- for (let i = 1; i < n; i++) {
168
- const sRe = Math.sin(i * w);
169
- const sIm = Math.cos(i * w);
170
- temp1.setMul(a2.re[i], a2.im[i], (1 - sRe) / 2, -sIm / 2);
171
- temp2.setMul(a2.re[n - i], a2.im[n - i], (1 + sRe) / 2, -sIm / 2);
172
- a3.re[i] = temp1.re + temp2.re;
173
- a3.im[i] = temp1.im - temp2.im;
174
- }
175
- return a3;
176
- }
177
- export function fftRealSpectrum(x, inclNyquist = false) {
178
- const n = x.length;
179
- if (n == 0) {
180
- throw new Error("Input array must not be empty.");
181
- }
182
- let a;
183
- if (n % 2 == 0) {
184
- a = fftRealHalf(x, inclNyquist);
185
- }
186
- else {
187
- const a0 = fftReal(x);
188
- a = a0.subarray(0, Math.floor(n / 2) + 1);
189
- }
190
- for (let i = 0; i < a.length; i++) {
191
- const r = (i == 0 || i == n / 2) ? 1 / n : 2 / n;
192
- a.mulByReal(i, r);
193
- }
194
- return a;
195
- }
196
- export function fftShift(x) {
197
- const n = x.length;
198
- const d = Math.floor(n / 2);
199
- const a = new ComplexArray(n);
200
- for (let p = 0; p < n; p++) {
201
- ComplexArray.copy1(x, p, a, (p + d) % n);
202
- }
203
- return a;
204
- }
205
- export function iFftRealHalfSimple(x, len, inclNyquist = false) {
206
- if (x.length == 0 || len <= 0) {
207
- return new Float64Array(0);
208
- }
209
- const x2 = createFullSpectrumFromHalfSpectrum(x, len, inclNyquist);
210
- const a = fft(x2, false);
211
- return a.re;
212
- }
213
- function createFullSpectrumFromHalfSpectrum(x, len, inclNyquist) {
214
- const x2 = new ComplexArray(len);
215
- ComplexArray.copy1(x, 0, x2, 0);
216
- if (inclNyquist && len % 2 == 0 && x.length > len / 2) {
217
- ComplexArray.copy1(x, len / 2, x2, len / 2);
218
- }
219
- const n2 = Math.min(x.length - 1, Math.floor((len - 1) / 2));
220
- for (let i = 0; i < n2; i++) {
221
- const p1 = 1 + i;
222
- const p2 = len - 1 - i;
223
- x2.re[p2] = x.re[p1];
224
- x2.im[p2] = -x.im[p1];
225
- }
226
- return x2;
227
- }
228
- export function iFftRealHalfOpt(x, len, inclNyquist = false) {
229
- if (len <= 0) {
230
- return new Float64Array(0);
231
- }
232
- if (len % 2 != 0) {
233
- throw new Error("output length is not even.");
234
- }
235
- const n = len / 2;
236
- const a1 = new ComplexArray(n);
237
- a1.re[0] = xRe(0);
238
- a1.im[0] = xRe(0);
239
- if (inclNyquist) {
240
- a1.re[0] += xRe(n);
241
- a1.im[0] -= xRe(n);
242
- }
243
- const temp1 = new MutableComplex();
244
- const temp2 = new MutableComplex();
245
- const w = Math.PI / n;
246
- for (let i = 1; i < n; i++) {
247
- const sRe = Math.sin(i * w);
248
- const sIm = Math.cos(i * w);
249
- temp1.setMul(xRe(i), xIm(i), (1 - sRe) / 2, sIm / 2);
250
- temp2.setMul(xRe(n - i), xIm(n - i), (1 + sRe) / 2, sIm / 2);
251
- a1.re[i] = temp1.re + temp2.re;
252
- a1.im[i] = temp1.im - temp2.im;
253
- }
254
- const a2 = fft(a1, false);
255
- const a3 = new Float64Array(2 * n);
256
- for (let i = 0; i < n; i++) {
257
- a3[2 * i] = a2.re[i];
258
- a3[2 * i + 1] = a2.im[i];
259
- }
260
- return a3;
261
- function xRe(i) {
262
- return (i < x.length) ? x.re[i] : 0;
263
- }
264
- function xIm(i) {
265
- return (i < x.length) ? x.im[i] : 0;
266
- }
267
- }
268
- export function iFftRealHalf(x, len, inclNyquist = false) {
269
- if (len % 2 == 0) {
270
- return iFftRealHalfOpt(x, len, inclNyquist);
271
- }
272
- else {
273
- return iFftRealHalfSimple(x, len, inclNyquist);
274
- }
275
- }
1
+ import ComplexArray from "../math/ComplexArray.js";
2
+ import MutableComplex from "../math/MutableComplex.js";
3
+ import * as MathUtils from "../math/MathUtils.js";
4
+ var cooleyTukeySineTableCache;
5
+ export function fft(x, direction = true) {
6
+ const n = x.length;
7
+ if (n <= 1) {
8
+ return x.slice();
9
+ }
10
+ const x2 = direction ? x : swapReIm(x);
11
+ const x3 = MathUtils.isPowerOf2(n) ? fftCooleyTukey(x2) : fftBluestein(x2);
12
+ const x4 = direction ? x3 : swapReIm(x3);
13
+ return x4;
14
+ }
15
+ function fftCooleyTukey(x) {
16
+ const n = x.length;
17
+ const sineTable = getCachedCooleyTukeySineTable(n);
18
+ const a = copyBitReversed(x);
19
+ applyButterflies(a, sineTable);
20
+ return a;
21
+ }
22
+ function applyButterflies(a, sineTable) {
23
+ const temp = new MutableComplex();
24
+ const n = a.length;
25
+ const re = a.re;
26
+ const im = a.im;
27
+ for (let mMax = 1; mMax < n; mMax *= 2) {
28
+ const step = mMax * 2;
29
+ const sinStep = n / step;
30
+ for (let m = 0; m < mMax; m++) {
31
+ const wIndex = m * sinStep;
32
+ const wRe = sineTable.re[wIndex];
33
+ const wIm = sineTable.im[wIndex];
34
+ for (let i = m; i < n; i += step) {
35
+ const j = i + mMax;
36
+ temp.setMul(re[j], im[j], wRe, wIm);
37
+ re[j] = re[i] - temp.re;
38
+ im[j] = im[i] - temp.im;
39
+ re[i] += temp.re;
40
+ im[i] += temp.im;
41
+ }
42
+ }
43
+ }
44
+ }
45
+ function copyBitReversed(a1) {
46
+ const n = a1.length;
47
+ const a2 = new ComplexArray(n);
48
+ let i1 = 0;
49
+ for (let i2 = 0; i2 < n; i2++) {
50
+ a2.re[i2] = a1.re[i1];
51
+ a2.im[i2] = a1.im[i1];
52
+ i1 = incrementBitReversed(i1, n);
53
+ }
54
+ return a2;
55
+ }
56
+ function incrementBitReversed(i, n) {
57
+ let m = n >> 1;
58
+ let a = i;
59
+ while (a & m) {
60
+ a -= m;
61
+ m >>= 1;
62
+ }
63
+ return a | m;
64
+ }
65
+ function fftBluestein(x) {
66
+ const n = x.length;
67
+ const m = MathUtils.getNextPowerOf2(2 * n - 3);
68
+ const sineTable = createSineOfSquareTable(n, 2 * n);
69
+ const a1 = new ComplexArray(m);
70
+ for (let i = 0; i < n; i++) {
71
+ a1.setMul(i, x.re[i], x.im[i], sineTable.re[i], -sineTable.im[i]);
72
+ }
73
+ const a2 = new ComplexArray(m);
74
+ for (let i = 0; i < n; i++) {
75
+ ComplexArray.copy1(sineTable, i, a2, i);
76
+ }
77
+ for (let i = 1; i < n; i++) {
78
+ ComplexArray.copy1(sineTable, i, a2, m - i);
79
+ }
80
+ const a3 = convolve(a1, a2);
81
+ const a4 = new ComplexArray(n);
82
+ for (let i = 0; i < n; i++) {
83
+ a4.setMul(i, a3.re[i], a3.im[i], sineTable.re[i], -sineTable.im[i]);
84
+ }
85
+ return a4;
86
+ }
87
+ function convolve(a1, a2) {
88
+ const n = a1.length;
89
+ if (a2.length != n) {
90
+ throw new Error("Array lengths are not equal.");
91
+ }
92
+ const a3 = fft(a1);
93
+ const a4 = fft(a2);
94
+ a3.mulByArray(a4);
95
+ const a5 = fft(a3, false);
96
+ a5.mulAllByReal(1 / n);
97
+ return a5;
98
+ }
99
+ function getCachedCooleyTukeySineTable(n) {
100
+ if (!cooleyTukeySineTableCache) {
101
+ cooleyTukeySineTableCache = new Array(16);
102
+ }
103
+ const log2N = MathUtils.floorLog2(n);
104
+ if (!cooleyTukeySineTableCache[log2N]) {
105
+ cooleyTukeySineTableCache[log2N] = createCooleyTukeySineTable(n);
106
+ }
107
+ return cooleyTukeySineTableCache[log2N];
108
+ }
109
+ function createCooleyTukeySineTable(n) {
110
+ return createSineTable(n / 2, n, false);
111
+ }
112
+ function createSineTable(tableLength, waveLength, rotationalDirection = true) {
113
+ const w = 2 * Math.PI / waveLength;
114
+ const a = new ComplexArray(tableLength);
115
+ for (let i = 0; i < tableLength; i++) {
116
+ const t = i * w;
117
+ a.re[i] = Math.cos(t);
118
+ a.im[i] = rotationalDirection ? Math.sin(t) : -Math.sin(t);
119
+ }
120
+ return a;
121
+ }
122
+ function createSineOfSquareTable(tableLength, waveLength) {
123
+ const w = 2 * Math.PI / waveLength;
124
+ const a = new ComplexArray(tableLength);
125
+ for (let i = 0; i < tableLength; i++) {
126
+ const t = (i * i) % waveLength * w;
127
+ a.re[i] = Math.cos(t);
128
+ a.im[i] = Math.sin(t);
129
+ }
130
+ return a;
131
+ }
132
+ function swapReIm(a) {
133
+ const a2 = new ComplexArray();
134
+ a2.length = a.length;
135
+ a2.re = a.im;
136
+ a2.im = a.re;
137
+ return a2;
138
+ }
139
+ export function fftReal(x) {
140
+ return fft(new ComplexArray(x));
141
+ }
142
+ export function fftRealHalf(x, inclNyquist = false) {
143
+ if (x.length <= 1) {
144
+ return new ComplexArray(x);
145
+ }
146
+ const m = x.length;
147
+ if (m % 2 != 0) {
148
+ throw new Error("Input array size is not even.");
149
+ }
150
+ const n = m / 2;
151
+ const a1 = new ComplexArray(n);
152
+ for (let i = 0; i < n; i++) {
153
+ a1.re[i] = x[2 * i];
154
+ a1.im[i] = x[2 * i + 1];
155
+ }
156
+ const a2 = fft(a1);
157
+ const a3 = new ComplexArray(n + (inclNyquist ? 1 : 0));
158
+ a3.re[0] = a2.re[0] + a2.im[0];
159
+ a3.im[0] = 0;
160
+ if (inclNyquist) {
161
+ a3.re[n] = a2.re[0] - a2.im[0];
162
+ a3.im[n] = 0;
163
+ }
164
+ const temp1 = new MutableComplex();
165
+ const temp2 = new MutableComplex();
166
+ const w = Math.PI / n;
167
+ for (let i = 1; i < n; i++) {
168
+ const sRe = Math.sin(i * w);
169
+ const sIm = Math.cos(i * w);
170
+ temp1.setMul(a2.re[i], a2.im[i], (1 - sRe) / 2, -sIm / 2);
171
+ temp2.setMul(a2.re[n - i], a2.im[n - i], (1 + sRe) / 2, -sIm / 2);
172
+ a3.re[i] = temp1.re + temp2.re;
173
+ a3.im[i] = temp1.im - temp2.im;
174
+ }
175
+ return a3;
176
+ }
177
+ export function fftRealSpectrum(x, inclNyquist = false) {
178
+ const n = x.length;
179
+ if (n == 0) {
180
+ throw new Error("Input array must not be empty.");
181
+ }
182
+ let a;
183
+ if (n % 2 == 0) {
184
+ a = fftRealHalf(x, inclNyquist);
185
+ }
186
+ else {
187
+ const a0 = fftReal(x);
188
+ a = a0.subarray(0, Math.floor(n / 2) + 1);
189
+ }
190
+ for (let i = 0; i < a.length; i++) {
191
+ const r = (i == 0 || i == n / 2) ? 1 / n : 2 / n;
192
+ a.mulByReal(i, r);
193
+ }
194
+ return a;
195
+ }
196
+ export function fftShift(x) {
197
+ const n = x.length;
198
+ const d = Math.floor(n / 2);
199
+ const a = new ComplexArray(n);
200
+ for (let p = 0; p < n; p++) {
201
+ ComplexArray.copy1(x, p, a, (p + d) % n);
202
+ }
203
+ return a;
204
+ }
205
+ export function iFftRealHalfSimple(x, len, inclNyquist = false) {
206
+ if (x.length == 0 || len <= 0) {
207
+ return new Float64Array(0);
208
+ }
209
+ const x2 = createFullSpectrumFromHalfSpectrum(x, len, inclNyquist);
210
+ const a = fft(x2, false);
211
+ return a.re;
212
+ }
213
+ function createFullSpectrumFromHalfSpectrum(x, len, inclNyquist) {
214
+ const x2 = new ComplexArray(len);
215
+ ComplexArray.copy1(x, 0, x2, 0);
216
+ if (inclNyquist && len % 2 == 0 && x.length > len / 2) {
217
+ ComplexArray.copy1(x, len / 2, x2, len / 2);
218
+ }
219
+ const n2 = Math.min(x.length - 1, Math.floor((len - 1) / 2));
220
+ for (let i = 0; i < n2; i++) {
221
+ const p1 = 1 + i;
222
+ const p2 = len - 1 - i;
223
+ x2.re[p2] = x.re[p1];
224
+ x2.im[p2] = -x.im[p1];
225
+ }
226
+ return x2;
227
+ }
228
+ export function iFftRealHalfOpt(x, len, inclNyquist = false) {
229
+ if (len <= 0) {
230
+ return new Float64Array(0);
231
+ }
232
+ if (len % 2 != 0) {
233
+ throw new Error("output length is not even.");
234
+ }
235
+ const n = len / 2;
236
+ const a1 = new ComplexArray(n);
237
+ a1.re[0] = xRe(0);
238
+ a1.im[0] = xRe(0);
239
+ if (inclNyquist) {
240
+ a1.re[0] += xRe(n);
241
+ a1.im[0] -= xRe(n);
242
+ }
243
+ const temp1 = new MutableComplex();
244
+ const temp2 = new MutableComplex();
245
+ const w = Math.PI / n;
246
+ for (let i = 1; i < n; i++) {
247
+ const sRe = Math.sin(i * w);
248
+ const sIm = Math.cos(i * w);
249
+ temp1.setMul(xRe(i), xIm(i), (1 - sRe) / 2, sIm / 2);
250
+ temp2.setMul(xRe(n - i), xIm(n - i), (1 + sRe) / 2, sIm / 2);
251
+ a1.re[i] = temp1.re + temp2.re;
252
+ a1.im[i] = temp1.im - temp2.im;
253
+ }
254
+ const a2 = fft(a1, false);
255
+ const a3 = new Float64Array(2 * n);
256
+ for (let i = 0; i < n; i++) {
257
+ a3[2 * i] = a2.re[i];
258
+ a3[2 * i + 1] = a2.im[i];
259
+ }
260
+ return a3;
261
+ function xRe(i) {
262
+ return (i < x.length) ? x.re[i] : 0;
263
+ }
264
+ function xIm(i) {
265
+ return (i < x.length) ? x.im[i] : 0;
266
+ }
267
+ }
268
+ export function iFftRealHalf(x, len, inclNyquist = false) {
269
+ if (len % 2 == 0) {
270
+ return iFftRealHalfOpt(x, len, inclNyquist);
271
+ }
272
+ else {
273
+ return iFftRealHalfSimple(x, len, inclNyquist);
274
+ }
275
+ }
276
276
  //# sourceMappingURL=Fft.js.map
package/signal/Fft.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Fft.js","sourceRoot":"","sources":["../../src/signal/Fft.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Fft.js","sourceRoot":"","sources":["../../src/signal/Fft.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import MutableComplex from "../math/MutableComplex.js";
2
- import ComplexArray from "../math/ComplexArray.js";
3
- export declare function goertzelSingle(x: ArrayLike<number>, relativeFrequency: number): MutableComplex;
4
- export declare function goertzel(x: ArrayLike<number>): ComplexArray;
5
- export declare function goertzelSpectrum(x: ArrayLike<number>, inclNyquist?: boolean): ComplexArray;
1
+ import MutableComplex from "../math/MutableComplex.ts";
2
+ import ComplexArray from "../math/ComplexArray.ts";
3
+ export declare function goertzelSingle(x: ArrayLike<number>, relativeFrequency: number): MutableComplex;
4
+ export declare function goertzel(x: ArrayLike<number>): ComplexArray;
5
+ export declare function goertzelSpectrum(x: ArrayLike<number>, inclNyquist?: boolean): ComplexArray;
6
+ //# sourceMappingURL=Goertzel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Goertzel.d.ts","sourceRoot":"","sources":["../../src/signal/Goertzel.ts"],"names":[],"mappings":"AAKA,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,YAAY,MAAM,yBAAyB,CAAC;AAiBnD,wBAAgB,cAAc,CAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,iBAAiB,EAAE,MAAM,GAAI,cAAc,CAavC;AAW1D,wBAAgB,QAAQ,CAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAI,YAAY,CAMhD;AAkBd,wBAAgB,gBAAgB,CAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,UAAQ,GAAI,YAAY,CAa7E"}