On Sun, 10 Mar 2013 06:59:41 -0500, "nahemoth" <59513@dsprelated>
wrote:
>>On Fri, 08 Mar 2013 01:33:29 -0600, "nahemoth" <59513@dsprelated>
>>wrote:
>>
>>>Hi,
>>>
>>> I am working on a short packet transmission system which uses a QPSK
>>>preamble (01 10 01 10 01 10 ...) for timing and frequency offset
>recovery.
>>>I am trying to design a preamble detector in order to enable the
>estimators
>>>when a packet is coming.
>>>
>>>I tried a very interesting algorithm based on the spectral properties of
>>>the preamble:
>>>
>>>http://w3.ele.tue.nl/fileadmin/ele/MBS/SPS/Files/Posters/SPS30/SPSciacci.pdf
>>>
>>>It uses a notch filter to eliminate the spectral line of the preamble
>and
>>>compares the power of the received signal. When you receive the preamble
>it
>>>should cross a threshold. But at this stage there is no digital AGC, so
>the
>>>received signal amplitude can change, therefore the threshold also
>>>changes.
>>>
>>>I also read about using correlation for preamble detection (not for sync
>>>word detection), but I guess that this is more useful for detecting
>>>boundaries of the preamble.
>>>
>>>Any suggestion for preamble detection?
>>>
>>>Thanks in advance.
>>
>>That's just a string of 180-degree transitions at each symbol
>>boundary. That's a good sequence for joint symbol timing and
>>frequency estimation, but it's not good for marking the beginning of
>>the message.
>>
>>How long is the sequence? What is your maximum frequency
>>uncertainty? How long can the acquisition process take?
>
>I use this preamble for timing (signal oversampled 4 times) and frequency
>coarse acquisition, which uses 10 and 20 symbols, respectively. After the
>preamble, it comes a UW to estimate the phase and mark the beginning of the
>data. These algorithms are feed forward, and taking into account that the
>payload is quite long, I use two closed loops for timing and phase tracking
>in decision directed mode.
>
>>Sorting out a suitable preamble depends on a lot of variables and
>>requirements that will affect the design the of the preamble. In
>>some systems no preamble is required, in other systems just a Unique
>>Word works well, in other systems the preamble contains multiple
>>sequences to facilitate things like coarse and fine synchronization.
>>You haven't given enough info to make any sort of determination about
>>whether the sequence you have is suitable or something else (or
>>nothing at all) would be better.
>
>I would like to use the preamble (180-degree transitions at each symbol
>boundary) for packet detection. That is, the feed forward estimators are
>disabled until the preamble detector wakes up the receiver. Is is possible
>to discriminate the preamble from the data symbols and noise? It should
>detect the preamble in less than 30 symbols.
You can correlate on that sequence in the time domain and set some
thresholds for detection for whatever SNR range you intend to run in.
High SNRs tend to need less time than low SNRs.
Eric Jacobsen
Anchor Hill Communications
http://www.anchorhill.com
Reply by nahemoth●March 10, 20132013-03-10
>On 3/8/13 7:22 AM, radams2000@gmail.com wrote:
>> I would try taking the ratio of Pc/Pm instead of the difference. This
should make he decision independent of absolute level.
>>
>> If doing a division is hard, you could also take the difference of the
log() of Pc and Pm. Fast log approximation is pretty easy, maybe easier and
faster than doing a true divide.
>>
>
>dunno what Pc and Pm are (are they in that paper?) but comparing Pc/Pm
>to some fixed threshold, a, should be the same as comparing Pc to a*Pm.
>
>no division or logs needed. maybe there is a numerical problem when
>levels get very low, but i would think you would have that anyway with
>the ratio.
>
>--
>
>r b-j rbj@audioimagination.com
>
>"Imagination is more important than knowledge."
>
>
>
Very good idea, it should work much better.
Reply by nahemoth●March 10, 20132013-03-10
>On Fri, 08 Mar 2013 01:33:29 -0600, "nahemoth" <59513@dsprelated>
>wrote:
>
>>Hi,
>>
>> I am working on a short packet transmission system which uses a QPSK
>>preamble (01 10 01 10 01 10 ...) for timing and frequency offset
recovery.
>>I am trying to design a preamble detector in order to enable the
>>compares the power of the received signal. When you receive the preamble
it
>>should cross a threshold. But at this stage there is no digital AGC, so
the
>>received signal amplitude can change, therefore the threshold also
>>changes.
>>
>>I also read about using correlation for preamble detection (not for sync
>>word detection), but I guess that this is more useful for detecting
>>boundaries of the preamble.
>>
>>Any suggestion for preamble detection?
>>
>>Thanks in advance.
>
>That's just a string of 180-degree transitions at each symbol
>boundary. That's a good sequence for joint symbol timing and
>frequency estimation, but it's not good for marking the beginning of
>the message.
>
>How long is the sequence? What is your maximum frequency
>uncertainty? How long can the acquisition process take?
I use this preamble for timing (signal oversampled 4 times) and frequency
coarse acquisition, which uses 10 and 20 symbols, respectively. After the
preamble, it comes a UW to estimate the phase and mark the beginning of the
data. These algorithms are feed forward, and taking into account that the
payload is quite long, I use two closed loops for timing and phase tracking
in decision directed mode.
>Sorting out a suitable preamble depends on a lot of variables and
>requirements that will affect the design the of the preamble. In
>some systems no preamble is required, in other systems just a Unique
>Word works well, in other systems the preamble contains multiple
>sequences to facilitate things like coarse and fine synchronization.
>You haven't given enough info to make any sort of determination about
>whether the sequence you have is suitable or something else (or
>nothing at all) would be better.
I would like to use the preamble (180-degree transitions at each symbol
boundary) for packet detection. That is, the feed forward estimators are
disabled until the preamble detector wakes up the receiver. Is is possible
to discriminate the preamble from the data symbols and noise? It should
detect the preamble in less than 30 symbols.
How about a simple matched filter for your preamble?
In other words, use a complex-valued FIR filter with the reversed conjugate
of your preamble as coefficients.
When a preamble has been received and sits centered in the FIR filter's
delay line, each preamble sample faces a coefficient with its conjugate
that rotates it back to a common phase. The filter then adds up all rotated
samples => peak at output.
If you need coarse frequency offset estimation, you can use many matched
filters in parallel with frequency-shifted versions of your preamble as
coefficient.
Reply by Eric Jacobsen●March 9, 20132013-03-09
On Fri, 08 Mar 2013 21:40:07 -0500, robert bristow-johnson
<rbj@audioimagination.com> wrote:
>On 3/8/13 3:33 PM, Eric Jacobsen wrote:
>> On Fri, 08 Mar 2013 01:33:29 -0600, "nahemoth"<59513@dsprelated>
>> wrote:
>>
>>> Hi,
>>>
>>> I am working on a short packet transmission system which uses a QPSK
>>> preamble (01 10 01 10 01 10 ...) for timing and frequency offset recovery.
>>> I am trying to design a preamble detector in order to enable the estimators
>>> when a packet is coming.
>>>
>>> I tried a very interesting algorithm based on the spectral properties of
>>> the preamble:
>>>
>>> http://w3.ele.tue.nl/fileadmin/ele/MBS/SPS/Files/Posters/SPS30/SPSciacci.pdf
>>>
>>> It uses a notch filter to eliminate the spectral line of the preamble and
>>> compares the power of the received signal. When you receive the preamble it
>>> should cross a threshold. But at this stage there is no digital AGC, so the
>>> received signal amplitude can change, therefore the threshold also
>>> changes.
>>>
>>> I also read about using correlation for preamble detection (not for sync
>>> word detection), but I guess that this is more useful for detecting
>>> boundaries of the preamble.
>>>
>>> Any suggestion for preamble detection?
>>>
>>> Thanks in advance.
>>
>> That's just a string of 180-degree transitions at each symbol
>> boundary. That's a good sequence for joint symbol timing and
>> frequency estimation, but it's not good for marking the beginning of
>> the message.
>>
>> How long is the sequence? What is your maximum frequency
>> uncertainty? How long can the acquisition process take?
>>
>> Sorting out a suitable preamble depends on a lot of variables and
>> requirements that will affect the design the of the preamble. In
>> some systems no preamble is required, in other systems just a Unique
>> Word works well,
>
>what do you do if your data happens to come upon that Unique Word in the
>data? do you stuff an extra bit into the stream to break it up so that
>Unique Word never appears (except in the preamble)? isn't that how SDLC
>used to do it?
In a frame structure the UWs occur periodically so that lock generally
isn't indicated until N UWs have been detected at the expected period
(or some other criterion has been satisfied). In a burst system the
UW generally only appears at the beginning of the packet. There are
exceptions to both cases, but for the most part the probability that
the entire framing structure appears randomly in the data is
vanishingly small.
>i dunno much about QPSK (except what wikipedia says and i can connect it
>to what i remember with M-ary communication in grad school) and a few
>months ago i was asking some fundamental questions about it. in Offset
>QPSK, the 01 10 01 10 01 10 01 10 sequence generates a pure tone just
>below the carrier (or just above, depending on how you line up the
>constellation of the four symbols) and you could have a simple matched
>filter detect that and generate a frame sync, which is what i think the
>preamble is for. but a piece of data that are the same bits could do
>the same thing, so i keep asking what they do about that?
A pure tone is a very poor selection of preamble since it doesn't
contain any timing information, including symbol boundaries, and
therefore doesn't provide any phase information, either. It also has
the least white spectral structure, which some systems don't like due
to a number of reasons. Once in a while somebody uses a small chunk
of CW at the very beginning of a preamble since they're good for
initial detection and frequency offset removal, but it's then followed
by something that can provide timing and phase synch.
>does any Offset QPSK insert a contrary bit into the stream if the data
>happens to match the preamble? like let's say the preamble is 16 bits:
>
> 0110011001100110
No, because a single bit or symbol is subject to error so that you
miss the whole thing. A UW is often similar in structure to an ML
sequence so that it has very favorable autocorrelation properties.
This is for processing gain as well as timing information and phase
information and robustness in the presence of errors.
>now, whenever there are these 15 bits: 011001100110011 occuring by
>happenstance in the data, what the system should do is insert a phony
>and extra "1" (since the preamble would put in a "0" there), no matter
>what the following data bit is. and then the receiver should remove
>that extra "1" if "0110011001100111" is ever received and hold on for
>the next bit. and if "0110011001100110" is received, the receiver knows
>it's a preamble and must re-sync, no matter what state it is in.
Again, using a single bit or symbol to distinguish synch info is not
robust.
>otherwise, i dunno how to do it in a bullet-proof manner and be assured
>of resyncing when the time comes.
You could read any one of the many texts or thousands of papers on the
subject, or the specs for any number of standardized systems that do
this (any of the DVB, IEEE 802, 3GPP or many other bodies have tons of
examples).
>i was told that QPSK does not do that, and then i wonder if there is
>ever a sync problem that you can't get out of. it seems to me that the
>only bullet proof method to regain sync is to have a bit pattern that is
>never, ever used except for the preamble. so what else can you do?
There are many, many methods.
>> in other systems the preamble contains multiple
>> sequences to facilitate things like coarse and fine synchronization.
>
>could you have coarse sync be a function of the data that is contained
>between preambles?
You want synch before the data shows up in a burst system. If it's a
stream with a framing structure you don't care what's in the data
until you've confirmed frame lock, and that takes more than one UW.
>> You haven't given enough info to make any sort of determination about
>> whether the sequence you have is suitable or something else (or
>> nothing at all) would be better.
>
>and i'm still trying to figure out what they do to be bullet proof.
>
>
>--
>
>r b-j rbj@audioimagination.com
>
>"Imagination is more important than knowledge."
>
>
Reply by robert bristow-johnson●March 8, 20132013-03-08
On 3/8/13 3:33 PM, Eric Jacobsen wrote:
> On Fri, 08 Mar 2013 01:33:29 -0600, "nahemoth"<59513@dsprelated>
> wrote:
>
>> Hi,
>>
>> I am working on a short packet transmission system which uses a QPSK
>> preamble (01 10 01 10 01 10 ...) for timing and frequency offset recovery.
>> I am trying to design a preamble detector in order to enable the estimators
>> when a packet is coming.
>>
>> I tried a very interesting algorithm based on the spectral properties of
>> the preamble:
>>
>> http://w3.ele.tue.nl/fileadmin/ele/MBS/SPS/Files/Posters/SPS30/SPSciacci.pdf
>>
>> It uses a notch filter to eliminate the spectral line of the preamble and
>> compares the power of the received signal. When you receive the preamble it
>> should cross a threshold. But at this stage there is no digital AGC, so the
>> received signal amplitude can change, therefore the threshold also
>> changes.
>>
>> I also read about using correlation for preamble detection (not for sync
>> word detection), but I guess that this is more useful for detecting
>> boundaries of the preamble.
>>
>> Any suggestion for preamble detection?
>>
>> Thanks in advance.
>
> That's just a string of 180-degree transitions at each symbol
> boundary. That's a good sequence for joint symbol timing and
> frequency estimation, but it's not good for marking the beginning of
> the message.
>
> How long is the sequence? What is your maximum frequency
> uncertainty? How long can the acquisition process take?
>
> Sorting out a suitable preamble depends on a lot of variables and
> requirements that will affect the design the of the preamble. In
> some systems no preamble is required, in other systems just a Unique
> Word works well,
what do you do if your data happens to come upon that Unique Word in the
data? do you stuff an extra bit into the stream to break it up so that
Unique Word never appears (except in the preamble)? isn't that how SDLC
used to do it?
i dunno much about QPSK (except what wikipedia says and i can connect it
to what i remember with M-ary communication in grad school) and a few
months ago i was asking some fundamental questions about it. in Offset
QPSK, the 01 10 01 10 01 10 01 10 sequence generates a pure tone just
below the carrier (or just above, depending on how you line up the
constellation of the four symbols) and you could have a simple matched
filter detect that and generate a frame sync, which is what i think the
preamble is for. but a piece of data that are the same bits could do
the same thing, so i keep asking what they do about that?
does any Offset QPSK insert a contrary bit into the stream if the data
happens to match the preamble? like let's say the preamble is 16 bits:
0110011001100110
now, whenever there are these 15 bits: 011001100110011 occuring by
happenstance in the data, what the system should do is insert a phony
and extra "1" (since the preamble would put in a "0" there), no matter
what the following data bit is. and then the receiver should remove
that extra "1" if "0110011001100111" is ever received and hold on for
the next bit. and if "0110011001100110" is received, the receiver knows
it's a preamble and must re-sync, no matter what state it is in.
otherwise, i dunno how to do it in a bullet-proof manner and be assured
of resyncing when the time comes.
i was told that QPSK does not do that, and then i wonder if there is
ever a sync problem that you can't get out of. it seems to me that the
only bullet proof method to regain sync is to have a bit pattern that is
never, ever used except for the preamble. so what else can you do?
> in other systems the preamble contains multiple
> sequences to facilitate things like coarse and fine synchronization.
could you have coarse sync be a function of the data that is contained
between preambles?
> You haven't given enough info to make any sort of determination about
> whether the sequence you have is suitable or something else (or
> nothing at all) would be better.
and i'm still trying to figure out what they do to be bullet proof.
--
r b-j rbj@audioimagination.com
"Imagination is more important than knowledge."
Reply by Eric Jacobsen●March 8, 20132013-03-08
On Fri, 08 Mar 2013 01:33:29 -0600, "nahemoth" <59513@dsprelated>
wrote:
>Hi,
>
> I am working on a short packet transmission system which uses a QPSK
>preamble (01 10 01 10 01 10 ...) for timing and frequency offset recovery.
>I am trying to design a preamble detector in order to enable the estimators
>when a packet is coming.
>
>I tried a very interesting algorithm based on the spectral properties of
>the preamble:
>
>http://w3.ele.tue.nl/fileadmin/ele/MBS/SPS/Files/Posters/SPS30/SPSciacci.pdf
>
>It uses a notch filter to eliminate the spectral line of the preamble and
>compares the power of the received signal. When you receive the preamble it
>should cross a threshold. But at this stage there is no digital AGC, so the
>received signal amplitude can change, therefore the threshold also
>changes.
>
>I also read about using correlation for preamble detection (not for sync
>word detection), but I guess that this is more useful for detecting
>boundaries of the preamble.
>
>Any suggestion for preamble detection?
>
>Thanks in advance.
That's just a string of 180-degree transitions at each symbol
boundary. That's a good sequence for joint symbol timing and
frequency estimation, but it's not good for marking the beginning of
the message.
How long is the sequence? What is your maximum frequency
uncertainty? How long can the acquisition process take?
Sorting out a suitable preamble depends on a lot of variables and
requirements that will affect the design the of the preamble. In
some systems no preamble is required, in other systems just a Unique
Word works well, in other systems the preamble contains multiple
sequences to facilitate things like coarse and fine synchronization.
You haven't given enough info to make any sort of determination about
whether the sequence you have is suitable or something else (or
nothing at all) would be better.
Eric Jacobsen
Anchor Hill Communications
http://www.anchorhill.com
Reply by ●March 8, 20132013-03-08
Robert
You're right of course. I blame the raging snowstorm for shorting out my neurons.
Bob
Reply by Vladimir Vassilevsky●March 8, 20132013-03-08
On 3/8/2013 1:33 AM, nahemoth wrote:
> Hi,
>
> I am working on a short packet transmission system which uses a QPSK
> preamble (01 10 01 10 01 10 ...) for timing and frequency offset recovery.
> I am trying to design a preamble detector in order to enable the estimators
> when a packet is coming.
What is wrong with classic Costas and Gardner algorithms?
> It uses a notch filter to eliminate the spectral line of the preamble and
> compares the power of the received signal. When you receive the preamble it
> should cross a threshold.
Just another way to implement frequency discriminator.
> But at this stage there is no digital AGC, so the
> received signal amplitude can change, therefore the threshold also
> changes.
Keep it simple; work on zero crossings. Signal strength doesn't matter.
> I also read about using correlation for preamble detection (not for sync
> word detection), but I guess that this is more useful for detecting
> boundaries of the preamble.
That depends on what, how and what is available.
> Any suggestion for preamble detection?
Get communication textbook such as Sklar.
> Thanks in advance.
STUPIDENT
VLV
Reply by robert bristow-johnson●March 8, 20132013-03-08
On 3/8/13 7:22 AM, radams2000@gmail.com wrote:
> I would try taking the ratio of Pc/Pm instead of the difference. This should make he decision independent of absolute level.
>
> If doing a division is hard, you could also take the difference of the log() of Pc and Pm. Fast log approximation is pretty easy, maybe easier and faster than doing a true divide.
>
dunno what Pc and Pm are (are they in that paper?) but comparing Pc/Pm
to some fixed threshold, a, should be the same as comparing Pc to a*Pm.
no division or logs needed. maybe there is a numerical problem when
levels get very low, but i would think you would have that anyway with
the ratio.
--
r b-j rbj@audioimagination.com
"Imagination is more important than knowledge."