Question regarding estimation of signal tone parameters (frequency, amplitude, and phase) using Macleods algorithm

I plan to use Macleods algorithm in order to estimate the parameters (frequency, amplitude, and phase) of one or more sinusoids from a block of N uniformly spaced samples.

Before applying the mentioned algorithm, I would like to know how to pre- or postprocess the captured signal. Can you recommend the following two actions in order to ensure that Macleods algorithm delivers best results?

• Capture more data points of the stationary signal to increase the resolution of the estimated parameters?
• Postprocess the captured signal with a (hanning) window before applying the algorithm

• I'm not sure about Macleod, but generally windowing is not good for that style of estimator. See this paper for details about similar estimators.
– Peter K.
Sep 5 '16 at 16:12
• That's interesting. Thanks for the link Peter. Seems that this already answers the part of the question regarding windowing. How is it regarding the amount of captured data (N). The more the better? I am only interested in the frequency domain (frequency, amplitude, and phase). Temporal resolution is not an issue... Sep 5 '16 at 16:31
• Yes, generally the more data, the better for all parameters. Provided you use an estimator without bias, it should do better with more data.
– Peter K.
Sep 5 '16 at 18:14
• I plan to use Macleods "Nearly Optimum Three-Sample Interpolator". If I understood correctly, that one produces very less bias if N is sufficiently large. Sep 5 '16 at 18:38
• Hi Peter. If you wish, you may combine all your comments inside an official answer so that I can accept it. Sep 6 '16 at 20:15

If you mean the standard deviation of the estimate, then that will be governed (at higher SNRs) by the Cramer-Rao lower bound for frequency estimate $\hat{f}_0$, which is: $${\rm var}(\hat{f}_0) \ge \frac{12}{(2\pi)^2 \eta N(N^2-1)}$$ where the signal model is $$x[n] = A \cos(2\pi f_0 n + \phi) + w[n]$$ the amplitude is $A$ and phase $\phi$ (which are also both unknown), the number of samples is $N$, $\eta = A^2/(2\sigma^2)$ is the SNR and $w[n]$ is white, Gaussian noise of variance $\sigma^2$.