Assume I have a digital PLL that outputs phase estimate of the reference signal, however I am wondering can I estimate the frequency signal according to the given phase estimate? I know frequency is derivative of phase respect to time but dont we need a operating or center frequency of VCO(NCO).In another words can I get the good estimate of the frequency using PLL?
Phase is relative to something that repeats, so if you know how often you get to the same phase point, you can measure the time and derive the frequency. Usually the error in time changes the frequency so the phase stays the same, but once it is locked you should get a good time measure.
I always think of phase and frequency as independent things. But this is a good question especially when you think about FM demodulation where phase and frequency can be swapped. Maybe that is a way to look at it - FM demod can be done with a PLL, so I would think frequency measurement can be done as well. I'm going to see if I can bend my brain around this - good question!
Yes, the NCO always has the basic value of the reference frequency in its Phase Increment Register (PIR). If your loop adjusts the PIR to steer the loop to lock the reference to the input, then the value in the PIR after lock is the locked frequency. If your loop is a second-order loop, then the value in the loop integrator also represents a frequency offset of the loop from the PIR value. Adding the PIR and the integrator value together, considering any scale factors in between them, should give you a pretty accurate estimate of the locked frequency.
Actually, if you have a second order loop PLL, the frequency estimation is just the value in the loop filter register. The "accuracy" of this "estimate" will depend on the bandwidth of your loop filter. Just remeber that in some cases, like a noisy signal, a simple PLL will not lock to the signal phase without some coarse estimate of the frequency.
Thanks. I have a second order loop but I implemented it digitally, which means my NCO is just integrator in discrete domain which means it is like Z/Z-1 and I have no gain associated with it. So when you say frequency is the value of loop filter, you mean the frequency of incoming signal ? Because of NCO is producing small value since it takes the signal from phase detector and phase detector output is small (It is the error if PLL is working properly ). Can you elaborate on that please ?
The basic structure of a second order loop is a first order loop filter followed by the VCO which includes an integrator. The frequency estimation is simply the value in the loop filter internal register. The output of the loop filter is an instantaneous value of the frequency with respect to the new error value. Another way to look at at is that when the PLL is perfectly locked, the error should be zero and the frequency value is fed from the loop filter register.
Your explanation makes a perfect sense to me and that is how I think about PLL. However what I getting after lock happens is for example assume frequency of incoming signal is 100 Hz then output of loop filter is 7.5 X 10^-3 and that is what I talking about this value is really small. when I differentiate phase estimate respect to time I would get like 750 so the values are the same only the they are off by factor 10^4 and that is due to diff(time) in denominator, however my question is should I multiply or add output of NCO or VCO to get frequency I like.
The exact relationship between the loop filter output and the frequency depends on several factors. For example the over sampling rate and how do you represent the phase. From your questions I assume you are running a simulation and represent the phase between in Radians. Personally, I think you should refer to normalized frequency relative to the sampling frequency and not it's absolute value.