|
From: | Henry Barton |
Subject: | Re: [Discuss-gnuradio] Lock onto QPSK signal |
Date: | Wed, 16 Mar 2016 14:24:43 +0000 |
Wow, thanks for the comprehensive reply. You covered a lot of material and I like how simple you make it.
>"amont of similarity between the RX signal shifted in time by 𝜏 and the right spreading sequence". Look for the peak. That's your timing offset. I guess that means if I have an x16 chip rate, I try applying the spreading code to the RX signal at different symbol shifts. So I might have a buffer of received symbols and shift it 1 symbol each time as I try the spreading code on it, then see which produces the strongest result? >still "pretty" orthogonal when out of sync I hadn't even considered that. So turning on your transmitter by chance at just the right time can make your orthogonal code ruin others' signals? >frequency-selective channels What's that? Is it like selective fading? I don't need high throughput; my project aims to transmit 2.064 Mbit/sec in a 24 MHz channel in the 900 MHz band. I use QPSK/4QAM because it has 1/2 the bandwidth of BPSK while still being much more error-resistant than high-order QAM. To: address@hidden From: address@hidden Date: Wed, 16 Mar 2016 14:03:32 +0100 Subject: Re: [Discuss-gnuradio] Lock onto QPSK signal Hi Henry, Interesting questions! On 16.03.2016 03:48, Henry Barton
wrote:
Have you read the GNU Radio Guided Tutorials[1]? Chapter 7 (you should really read 1-5 before) deals with PSK reception and timing recovery. A video series? Hm; to be honest, that does sound like you want to attend a full course on the basics and some lectures on advanced methods of digital communications. I do think there's some good lecture recordings out there[2], but inherently, they are pretty sequential, so although you'll learn a lot, you'd still have to have the perseverance to spend quite some hours till you come to the point of clock sync for CDMA. Personally: I'm not very much of a "I learn from videos" person. I do like the kind of introduction where someone stands in front and derives the methods and formulas "live" on a blackboard, but somehow, my concentration suffers when watching a video while mentally (and sometimes, on paper) take notes, at least for complex mathematical stuff. I'd rather go and loan a book from a local library. I think Sklar's Digital Communications would be the go-to ressource on CDMA clock sync. Assuming these 10 users used sufficiently orthogonal spreading sequences! aside from a phase offset OK, what I describe in the following is somewhat like a textbook/naive/classical approach; in practice, devices are smarter. Well, in CDMA, if you build the dot product of your received signal and User A's spreading sequency, you'll get a large magnitude as a result, if the signal actually contains A's TX. On the other hand, the spreading sequences of A and any other user are orthogonal, i.e. the dot product is zero. Assuming interference is linear (i.e. RX signal after channel(signal from A + signal from B) = RX signal after channel(signal from A) + RX signal after channel(signal from B)), and assuming the spreading sequences were chosen that they are not only perfectly orthogonal when in sync, but still "pretty" orthogonal when out of sync, this works reasonably well. That's a property that a few known spreading sequences fulfill. Knowing that the "other" users' signals won't interfere with the result much, you just correlate your RX signal (that you think might contain User A's signal) with User A's spreading sequence. That'll give you a function describing "amont of similarity between the RX signal shifted in time by 𝜏 and the right spreading sequence". Look for the peak. That's your timing offset. Note that correlation means "take signal A and multiply point wise with signal B, sum up, note down, then shift first signal a bit and repeat", which is "(<A[𝜏:𝜏+length(B)],B>), 𝜏=[0, N)" in DSP if you want so, and obviously has length(B)*N multiplications and summations – not an overly fun thing to do in real-time (N will roughly be length(B)). Hence, fast correlation based on multiplying in frequency domain (signal->FFT->multiplication->FFT) is often used. Well, yes. If you don't know the clock offset at all, you wouldn't know how much bandwidth to observe, and then you couldn't select a suitable sampling rate etc. Often, sync procedures have multiple steps, e.g. a rough frequency estimation (done by something like "let's look where there's a ca X Hz wide occupied piece of spectrum and find its center"), a fine frequency control and timing recovery. For CDMA, you can rely on the symbol-duration periodicity of the autocorrelation. If your chip rates are actually somehow fixedly related and you can make sure that the different chips still are mutually orthogonal, yes. In practice, the CDMA orthogonality breaks down for "bad" combinations especially for frequency-selective channels (which is probably one of the central reasons why CDMA was abandoned after 3G and DSSS was only used in IEEE802.11b – you can't apply it easily to wide channels, because they tend to be frequency-selective, and you need those wide bandwidths for higher data rates). Best regards, Marcus [1] https://gnuradio.org/redmine/projects/gnuradio/wiki/Guided_Tutorials [2] https://gnuradio.org/redmine/projects/gnuradio/wiki/SuggestedReading#Digital-Comms _______________________________________________ Discuss-gnuradio mailing list address@hidden https://lists.gnu.org/mailman/listinfo/discuss-gnuradio |
[Prev in Thread] | Current Thread | [Next in Thread] |