This sounds to work like a Doppler Radar Receiver. If it is the case, it
means that the period of the first pulses could be slightly different
from the last pulses (1st.... 200th). In any case the first 10 (or 20
pulses) should have a very close period.
If this functions as a Doppler Radar, you really don't need to receive
all the 200 pulses, but just identify that what you are receiving is in
fact the expected signal and measure its period, so frequency, so
whatever you want.
In any case you should just identify one complete wave form (positive
and negative peak) with the same period, and then trigger the compare
function that will try to identify the second coincidental pulse and so
on, until your processor will make sure at least 20, 30 or 50 pulses in
sequence and in phase. If this happens, then you could wait for the end
of the carrier since you already have the pulse period.
Of course you can be receiving a repetitive noise in the same frequency
range, then to filter it out, you should expect to receive at least 200
- X, while X is the required pulses to trigger the "compare" circuit.
So, lets say that your software (or hardware) requires an average of 50
pulses to finally make sure it is the right signal, then your software
should account for some extra 130 to 150 pulses and then noise, to make
sure it was your 200 pulses carrier.
If you are thinking to do everything in PIC, hmmm... you want a
resolution of 4µs, it is a good challenge.
Perhaps the carrier identifier could be done with a phase canceling
circuit, like this:
a) Some carrier should be present.
b) An analog polarity adder (simple bipolar integrator) would add both
sides of the signal
c) If the result is close to zero, the incoming signal is (somehow) a
symmetrical wave form, not noise (*).
d) Trigger software routine to measure and count.
(*) Noise is never symmetrical (beware of Murphy's law), so it should
never generate a zero level at the bipolar integrator output. Final
decision should be made by your software routine to vote for valid
signal or not.
notes:
a) If this is not a Doppler Radar Receiver, even so it could be a good
reference literature for your application.
b) If *it is* a Doppler Radar, then you can have a clue "when" the
signal will come back, since your own circuit sent the signal to be
bounced.
Wagner Lipnharski - UST Research Inc.
Orlando, Florida - http://www.ustr.net
---------------------------------------
adastra wrote:
{Quote hidden}>
> I have an application where I need to monitor a signal line for an
> occasional burst of a periodic logic-level signal. When the signal of
> interest is not present, there may be random noise on the line. When the
> signal of interest is present, it will be anywhere in the range of 300 Hz to
> 5000 Hz. The tricky bit is that it is only present for 200 cycles, whatever
> it's frequency happens to be. During this period (which at the highest
> frequency is only 40 mS: ie, 1/5000 * 200), I must determine that it is a
> valid in-band signal (not noise), then store a number representing the
> frequency or period for further processing. I would like the resolution of
> the stored period to be about 4 uS.
>
> My first thought was to use an analog PLL and somehow lash it up to a PIC
> for further processing. However, I would really like to do the whole thing
> in the PIC if possible.
>
> We use the 16C558 in some other applications, so that would be my first
> choice.
>
> Any tips, suggestions, or pointers to a better solution would be very much
> appreciated.
>
> Thanks, Foster