DSPRelated.com
Forums

Frequency tracking of randomly discontinued signal

Started by akachyan January 15, 2009
Hi,

I have a sinusodal signals with fixed frequencies(multi-tone).
But the signal is randomly on and off.
What I did is that once the signal is off, I discarded the portion and,
then, when the signal is on, I attached the signal afterward.
So, now, the signal becomes phase discontinued, same frequency,though.

My frequency tracking algorithm works with the original sinusoidal
signals(without off). Not it cannot track the phase-discontinued signal
properly.
Is there any way to track the frequency of the signal?

Thank you in advance.
timothy



On Thu, 15 Jan 2009 10:26:07 -0600, akachyan wrote:

> Hi, > > I have a sinusodal signals with fixed frequencies(multi-tone). But the > signal is randomly on and off. What I did is that once the signal is > off, I discarded the portion and, then, when the signal is on, I > attached the signal afterward. So, now, the signal becomes phase > discontinued, same frequency,though. > > My frequency tracking algorithm works with the original sinusoidal > signals(without off). Not it cannot track the phase-discontinued signal > properly. > Is there any way to track the frequency of the signal? > > Thank you in advance. > timothy
If the off period isn't too long, and if the phase is continuous even with the thing shut off (i.e. if the carrier generation is always on, it's just multiplied by 0 for a while), then you should be able to patch things in OK. If the phase just can't be expected to be right, you can still come up with an algorithm that can use the prior frequency information, with knowledge that the current phase will be random. Without even an overview of your algorithm, I can't comment on what you may need to do to it to make it work. -- Tim Wescott Control systems and communications consulting http://www.wescottdesign.com Need to learn how to apply control theory in your embedded system? "Applied Control Theory for Embedded Systems" by Tim Wescott Elsevier/Newnes, http://www.wescottdesign.com/actfes/actfes.html
>Hi, > >I have a sinusodal signals with fixed frequencies(multi-tone). >But the signal is randomly on and off. >What I did is that once the signal is off, I discarded the portion and, >then, when the signal is on, I attached the signal afterward. >So, now, the signal becomes phase discontinued, same frequency,though. > >My frequency tracking algorithm works with the original sinusoidal >signals(without off). Not it cannot track the phase-discontinued signal >properly. >Is there any way to track the frequency of the signal? > >Thank you in advance. >timothy >
Hi, How do you track the frequencies? If you use a fft-based method (looking for peaks), I think it might be better if you leave the "off-parts" in. The multiplies with zeros for the "off-parts" will introduce spurious peaks, but you could use an algorithm which "puts a question-mark" to all new peak in a new STFT frame and just considers to track them if they appear in more than one succesive STFT frame. It really depends on: 1. What method are you using to track the frequencies of the sinusoids? 2. What is the ratio between "on" and "off" parts? How much of the signal is dropped? Splicing the signals together doesn't seem to make too much sense. But maybe I'm wrong... gr. Bjoern
>On Thu, 15 Jan 2009 10:26:07 -0600, akachyan wrote: > >> Hi, >> >> I have a sinusodal signals with fixed frequencies(multi-tone). But the >> signal is randomly on and off. What I did is that once the signal is >> off, I discarded the portion and, then, when the signal is on, I >> attached the signal afterward. So, now, the signal becomes phase >> discontinued, same frequency,though. >> >> My frequency tracking algorithm works with the original sinusoidal >> signals(without off). Not it cannot track the phase-discontinued
signal
>> properly. >> Is there any way to track the frequency of the signal? >> >> Thank you in advance. >> timothy > >If the off period isn't too long, and if the phase is continuous even >with the thing shut off (i.e. if the carrier generation is always on, >it's just multiplied by 0 for a while), then you should be able to patch
>things in OK.
Thank you for your comments. The off period is random, where it can be long or short. So multiplying by 0 will not work in this case.
> >If the phase just can't be expected to be right, you can still come up >with an algorithm that can use the prior frequency information, with >knowledge that the current phase will be random. Without even an >overview of your algorithm, I can't comment on what you may need to do to
>it to make it work.
Yeah, I use several iterations of DFT filter to track its frequency incoming signal without memory (at this moment). Also, I am considering to use Goertzel filter to track. Anyway, the operations are pretty similiar, though. the problem is during DFT(Goertzel) filtering process in certain iteration, the signal changes randomly, so that tracking process will generate incorrect or loose the output. It might lead to start over the tracking process. I thought windowing function to minimize phase discontinuity. however, due to the random on and off, it is hard to apply windows on the signals without having huge memory. Thanks. Timothy
> >-- >Tim Wescott >Control systems and communications consulting >http://www.wescottdesign.com > >Need to learn how to apply control theory in your embedded system? >"Applied Control Theory for Embedded Systems" by Tim Wescott >Elsevier/Newnes, http://www.wescottdesign.com/actfes/actfes.html >
>>Hi, >> >>I have a sinusodal signals with fixed frequencies(multi-tone). >>But the signal is randomly on and off. >>What I did is that once the signal is off, I discarded the portion and, >>then, when the signal is on, I attached the signal afterward. >>So, now, the signal becomes phase discontinued, same frequency,though. >> >>My frequency tracking algorithm works with the original sinusoidal >>signals(without off). Not it cannot track the phase-discontinued signal >>properly. >>Is there any way to track the frequency of the signal? >> >>Thank you in advance. >>timothy >> > >Hi, > >How do you track the frequencies? >If you use a fft-based method (looking for peaks), >I think it might be better if you leave the "off-parts" >in. The multiplies with zeros for the "off-parts" >will introduce spurious peaks, but you could >use an algorithm which "puts a question-mark" to all new >peak in a new STFT frame and just considers to track them >if they appear in more than one succesive STFT frame. > >It really depends on: > >1. What method are you using to track the frequencies of > the sinusoids?
I use DFT filters to track frequency. FFT doesn't work in my case because I need precise frequency tracking. Furthermore, the off signal may have different frquency, i.e on freq is 15.65 Mhz and off freq is 16.59 Mhz. In this case, I have to track 15.65 Mhz freq. of course it has on/off switches.
> >2. What is the ratio between "on" and "off" parts? > How much of the signal is dropped?
It is RANDOM for now.
> >Splicing the signals together doesn't seem to make too much >sense. But maybe I'm wrong... > >gr. >Bjoern > >
>>>Hi, >>> >>>I have a sinusodal signals with fixed frequencies(multi-tone). >>>But the signal is randomly on and off. >>>What I did is that once the signal is off, I discarded the portion
and,
>>>then, when the signal is on, I attached the signal afterward. >>>So, now, the signal becomes phase discontinued, same frequency,though. >>> >>>My frequency tracking algorithm works with the original sinusoidal >>>signals(without off). Not it cannot track the phase-discontinued
signal
>>>properly. >>>Is there any way to track the frequency of the signal? >>> >>>Thank you in advance. >>>timothy >>> >> >>Hi, >> >>How do you track the frequencies? >>If you use a fft-based method (looking for peaks), >>I think it might be better if you leave the "off-parts" >>in. The multiplies with zeros for the "off-parts" >>will introduce spurious peaks, but you could >>use an algorithm which "puts a question-mark" to all new >>peak in a new STFT frame and just considers to track them >>if they appear in more than one succesive STFT frame. >> >>It really depends on: >> >>1. What method are you using to track the frequencies of >> the sinusoids? > >I use DFT filters to track frequency. FFT doesn't work in my case
because
>I need precise frequency tracking. > >Furthermore, the off signal may have different frquency, i.e on freq is >15.65 Mhz and off freq is 16.59 Mhz. In this case, I have to track 15.65 >Mhz freq. of course it has on/off switches. > >> >>2. What is the ratio between "on" and "off" parts? >> How much of the signal is dropped? > >It is RANDOM for now.
Ok, so you want to track frequencies and be independent of sudden phase discontinuities. Another factor is the spacing of the frequencies in your input signal. Have you considered to split the signal into bands with complex values (with complex coefficient bandpass filters - like a hilbert transform but with narrow passband) and track the frequencies by averaging delta phase values. That would just work if the frequencies are far enough away from each other. That idea would be based on isolating frequency regions containing sinusoids to track, so that you would have _one_ sinusoid to track per region. In that case averaged instantanious frequencies would be usefull and the distortion due to the drop-outs have very small extend in time (since the instantanious freq of a single sinusoid can be determined from just two complex valued output samples) This would be very sensitive to noise (that's why I say _averaged_ instantanious freqs) and it's probably closely related to what you are doing now. I'm just trying to suggest another way to look at it (the goertzel/dft filter thing. vs. narrow complex bandpass filters followed by delta phase measurement). gr. Bjoern
akachyan wrote:

   ...

> I use DFT filters to track frequency. FFT doesn't work in my case because > I need precise frequency tracking.
FFT is an efficient way to do DFT. If different ways to do DFT give different results, at least one of them is wrong.
> Furthermore, the off signal may have different frquency, i.e on freq is > 15.65 Mhz and off freq is 16.59 Mhz. In this case, I have to track 15.65 > Mhz freq. of course it has on/off switches.
If the off freq is 16.59 MHz, what does "off" really mean? Do you have a form of FSK? ... Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������
akachyan schrieb:
> Hi, > > I have a sinusodal signals with fixed frequencies(multi-tone). > But the signal is randomly on and off. > What I did is that once the signal is off, I discarded the portion and, > then, when the signal is on, I attached the signal afterward. > So, now, the signal becomes phase discontinued, same frequency,though. > > My frequency tracking algorithm works with the original sinusoidal > signals(without off). Not it cannot track the phase-discontinued signal > properly. > Is there any way to track the frequency of the signal? > > Thank you in advance. > timothy > > >
The question is what are you trying to achieve? Do you want to know when a frequency component is on/off. Or do you want to track the exact position of the relevant components in the frequency domain? If the second is the case I would suggest you a Kalman-Filter with a Multi-Target-Tracking Association. That way you can extrapolate the frequency positions for frames where your component is off. Otherwise there must be an easier solution. Greetz, hagbard
>akachyan wrote: > > ... > >> I use DFT filters to track frequency. FFT doesn't work in my case
because
>> I need precise frequency tracking. > >FFT is an efficient way to do DFT. If different ways to do DFT give >different results, at least one of them is wrong.
I use single-bin DFT filter. FFT may be used. But for narrow bin, calculation can be brutal. :-)
> >> Furthermore, the off signal may have different frquency, i.e on freq
is
>> 15.65 Mhz and off freq is 16.59 Mhz. In this case, I have to track
15.65
>> Mhz freq. of course it has on/off switches. > >If the off freq is 16.59 MHz, what does "off" really mean? Do you have a
>form of FSK?
It is interesting problem. For example, there is a switch. When it is ON, signal has 15.65MHz, when OFF, 16.59MHz. Presumely, system doesn't know the frequency beforehand. Now the system has to track the frequency,15.65Mhz when switch is ON. But switch is frequenctly on and off. So, I collected the signal when switch is on. The collected signal has same frequency, but a lot of phase discontinuity. It makes me hard to track the frequency. It is the problem.
> > ... > >Jerry >-- >Engineering is the art of making what you want from things you can get. >����������������������������������������������������������������������� >
On Fri, 16 Jan 2009 06:27:44 -0600, "akachyan" <akachyan@gmail.com>
wrote:

>>akachyan wrote: >> >> ... >> >>> I use DFT filters to track frequency. FFT doesn't work in my case >because >>> I need precise frequency tracking. >> >>FFT is an efficient way to do DFT. If different ways to do DFT give >>different results, at least one of them is wrong. > >I use single-bin DFT filter. FFT may be used. But for narrow bin, >calculation can be brutal. :-)
Oh, the "single bin" makes a big difference. It uses much less computation than computing all the bins of the DFT. As I recall, that's often called a Goertzel filter.
> >> >>> Furthermore, the off signal may have different frquency, i.e on freq >is >>> 15.65 Mhz and off freq is 16.59 Mhz. In this case, I have to track >15.65 >>> Mhz freq. of course it has on/off switches. >> >>If the off freq is 16.59 MHz, what does "off" really mean? Do you have a > >>form of FSK? > >It is interesting problem. > >For example, there is a switch. When it is ON, signal has 15.65MHz, when >OFF, 16.59MHz. Presumely, system doesn't know the frequency beforehand. > Now the system has to track the frequency,15.65Mhz when switch is ON. But >switch is frequenctly on and off. So, I collected the signal when switch is >on.
Are you trying to phase-lock on the 16.59 MHz signal, generating your own signal with the same frequency and phase when the switch is off? Or, are you trying to decode the switch ON and Off positions and times (this is indeed FSK, Frequency Shift Keying)? If so, you could have filters for both frequencies, and have a comparison function that tells which filter output is larger. Also, there are other ways to do this.
>The collected signal has same frequency, but a lot of phase discontinuity. >It makes me hard to track the frequency. It is the problem.
I hesitate to say this, as your English is surely much better than my knowledge of your native language, but it appears your lack of English skills are making it hard for me and others to understand your problem and what you are trying to do. Can you restate the problem in another way, or even several other ways?