Timeline for Estimate Sine Frequency under White Noise — simple and effective method
Current License: CC BY-SA 4.0
39 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Jul 22, 2023 at 10:41 | history | edited | Royi | CC BY-SA 4.0 |
added 74 characters in body
|
Jul 17, 2023 at 5:32 | comment | added | Royi | @robertbristow-johnson, Do you mean the Maximum Likelihood textbook? | |
Jul 16, 2023 at 20:29 | comment | added | robert bristow-johnson | I'm gonna write my answer first. There is some commonality, but mine is more from the textbook. | |
Jul 16, 2023 at 19:36 | comment | added | Royi | @robertbristow-johnson, Yes, I know. OverLordGoldDragon is not satisfied. It's OK. | |
Jul 16, 2023 at 19:33 | comment | added | robert bristow-johnson | But I am unhappy with the answer. The downvote came from someone else. | |
Jul 16, 2023 at 19:24 | comment | added | Royi | @robertbristow-johnson, You're welcome! Sharing knowledge is the reason to be here :-). | |
Jul 16, 2023 at 19:01 | comment | added | robert bristow-johnson | And thanks for making a copy of the Kay paper available. | |
Jul 16, 2023 at 18:58 | comment | added | robert bristow-johnson | I need the phase increment in order to get instantaneous frequency. And then the averaging shown in the following lines is an LPF that smooths out instantaneous frequency. But at least that tells me one reason why it's better that defining the principal argument $\arg(-1) = \pi$ instead of $\arg(-1) = -\pi$. (Should be capital A for principal arg.) | |
Jul 16, 2023 at 17:55 | comment | added | Royi | @robertbristow-johnson, Exactly. Very simple. It can be optimized for that case. | |
Jul 16, 2023 at 17:49 | comment | added | robert bristow-johnson |
Then what is meant by the angle in this: angle(vX(ii)' * vX(ii + 1)) ? If vX is just real, all we get is $\pi$ or $0$.
|
|
Jul 16, 2023 at 17:36 | comment | added | Royi |
@robertbristow-johnson, It doesn't have to be. The algorithm works if it is and if it is not. The performance is different as you can see in the 2 sets of graphs. The performance is better when it is analytical. Whether you take real signal and apply hilbert() on it or if you get it from the sensor (Like in RF).
|
|
Jul 16, 2023 at 17:23 | comment | added | robert bristow-johnson |
Is vX the analytic signal or not?
|
|
Jul 16, 2023 at 17:13 | comment | added | Royi |
@robertbristow-johnson. What you see in the code block above is the estimation algorithm. Not the simulation. The simulation generates harmonic signal (Real or Signal) and pushes it to the estimator. The code block the simpler estimator (Type 1 ). In the 1st set of graphs you can see its performance on real harmonic signals. In the 2nd set of graphs you may see its performance on analytic signal (Hilbert on the real noisy signal). Its performance on the model of pure complex harmonic signal will be a bot better. I hope it clarifies things. If not, ping me.
|
|
Jul 16, 2023 at 17:04 | comment | added | Royi | @robertbristow-johnson, If you mean the code above. Then it can be sine / cosine or analytic (Harmonic Exponent). You can see I posted the performance for either case. The CRLB is Cramer Rao Lower Bound for single tone estimation. There is one for the complex case and one for the real case. Basically factor of 2 between them. | |
Jul 16, 2023 at 16:13 | comment | added | robert bristow-johnson |
Sorry, Roy. You're simply not answering the question. You haven't said clearly if vX[ii] does indeed come out of hilbert() (and is the analytic signal of the real sinusoidal plus noise input). And you haven't said what "CRLB" is.
|
|
Jul 16, 2023 at 5:24 | comment | added | Royi |
@robertbristow-johnson, In the code vX = vS + vW; . Where vW is the noise so the model is lie you wrote. Indeed hilbert() returns the analytic signal. the CRLB is just the classic CRLB for single tone estimation. Factor 12 for real signal and factor 6 for complex.
|
|
Jul 16, 2023 at 0:49 | comment | added | robert bristow-johnson | You have $$ x[n] = \cos \left( 2 \pi \frac{f}{f_\mathrm{s}} n + \phi \right) + w[n]$$ which might correspond to $$ x_\mathrm{a}[n] =e^{j2\pi \frac{f}{f_\mathrm{s}} n + j\phi} + w[n]$$ But I have see references to Kay that have $$ x_\mathrm{a}[n] =e^{j2\pi \frac{f}{f_\mathrm{s}} n + j\phi + e[n]}$$ Is that the "MSE" in your plots above? This answer is a little lacking if all it does is point to Kay and show (without demonstration) the error performance. I would like to see a more explicit and complete answer. But I didn't downvote this. That was someone else. | |
Jul 16, 2023 at 0:38 | comment | added | robert bristow-johnson |
It's not me, honest. I will +1 soon, but I want some questions answered. 1. So, is vX(ii) the complex analytic signal from using hilbert() in MATLAB? 2. I can't get the Kay paper (paywall), but your code is the Kay Type1 alg? What is the Kay Type 2 alg? and 3. What is the CRLB alg?
|
|
Jul 15, 2023 at 13:49 | history | edited | Royi | CC BY-SA 4.0 |
added 160 characters in body
|
Jul 15, 2023 at 11:56 | comment | added | Royi |
Could the one who -1 explain?
|
|
Jul 11, 2023 at 11:57 | comment | added | Peter K.♦ | Ya. As soon as you’ve hit the CRLB, you’ve done as well as possible without some other information (which will probably have a different CRLB). Of course, this assumes the regime is below (above?) threshold, and the estimator hasn’t broken down so it’s still operating in the “linear” regime. | |
May 26, 2022 at 18:56 | comment | added | Royi | @GideonGenadiKogan, It will achieve the CRLB. This is the very definition of as good as it gets. The DFT analysis can't do better than the CRLB as well. I haven't check which method is better for SNR < 10 [dB] but for SNR >= 10 [dB] this method is as good as DFT and I'd say it is simpler (No need to apply interpolation, etc...). | |
May 26, 2022 at 18:45 | comment | added | Gideon Genadi Kogan | @Royi, It will add complexity but results will be as good as it gets without DFT analysis. | |
May 26, 2022 at 18:43 | comment | added | Royi | @GideonGenadiKogan, What's the problem with the 2nd bullet? It says exactly what I wrote. To get the CRLB you need the Analytic Signal. But it works pretty well without it as well. | |
May 26, 2022 at 18:42 | comment | added | Gideon Genadi Kogan | @Royi, please consider editing the second bullet in the summary... | |
May 26, 2022 at 18:40 | comment | added | Royi | @GideonGenadiKogan, It works without the analytic signal extension as well. Indeed this method was created with complex harmonic signal in mind. | |
May 26, 2022 at 18:35 | comment | added | Gideon Genadi Kogan | @Royi, Hilbert transform is using DFT. So, is it better than max likelihood-DFT? | |
Aug 18, 2021 at 5:49 | history | edited | Royi | CC BY-SA 4.0 |
deleted 1 character in body
|
Aug 11, 2021 at 13:24 | history | edited | Royi | CC BY-SA 4.0 |
added 2726 characters in body
|
Aug 9, 2021 at 16:11 | history | edited | Royi | CC BY-SA 4.0 |
added 9 characters in body
|
S Aug 9, 2021 at 16:09 | history | suggested | Mark Omo | CC BY-SA 4.0 |
Added direct PDF link
|
Aug 9, 2021 at 14:43 | review | Suggested edits | |||
S Aug 9, 2021 at 16:09 | |||||
Aug 9, 2021 at 14:06 | comment | added | Royi | @Engineer, Indeed. This is a really nice trick with simple intuition. It is much more robust than the 3 points method in time domain. | |
Aug 9, 2021 at 14:05 | comment | added | Royi | @Neil_UK, This will work: citeseerx.ist.psu.edu/viewdoc/…. | |
Aug 9, 2021 at 13:11 | comment | added | Engineer | This is cool. The tradeoff is being able to operate at lower SNR with MLE but computation time takes longer, or have a quicker computation time but require a higher SNR | |
Aug 9, 2021 at 11:17 | comment | added | Mark | This is great. Specifically the intuition behind it. | |
Aug 9, 2021 at 11:16 | history | edited | Royi | CC BY-SA 4.0 |
added 84 characters in body
|
Aug 9, 2021 at 11:04 | comment | added | Neil_UK | The Stephen Kay link is paywalled. If there a free version of the paper available? | |
Aug 9, 2021 at 10:12 | history | answered | Royi | CC BY-SA 4.0 |