People who code: we want your input. Take the Survey

Hot answers tagged

25

To demodulate a phase-shift keyed signal, of which BPSK is the simplest, you have to recover the carrier frequency, phase, and symbol timing. Bursty Signals Some signals are bursty and provide a known data sequence called a preamble or mid-amble (depending on whether it shows up at the beginning or middle of the burst). Demodulators can use a matched ...


8

Let's look at each in turn: Standard QPSK: With standard QPSK, each of the signal points are in quadrature (Note that the signal points in the constellation can be at any arbitrary phase really; either 0, 90, 180, 270 OR 45, 135, 225, 315...or any phase offset as long as the four constellation points are always in quadrature-- your interpretation of $\pi/4$ ...


6

Your timing error detector should be run once for each input symbol. As you noted, your signal is far more oversampled than you need to be, so you won't end up using most of them for the purposes of timing error detection. As the paper suggests, the detector uses three samples, each separated by half the symbol period $T$. So, for the first timing error ...


6

Unfortunately you did not mention what your channel is so I assume that merely AWGN is present. Furthermore I assume symbol-by-symbol detection is desired since a decoder for the Hammingcode is following later. So a single symbol $x$ is received as $y = x + n$ where $x \in [1,j,-j,-1]$ and $n$ is distributed according to a zero-mean complex normal ...


5

To add to the excellent information given by Cassman in his response, here is a block diagram of a carrier recover loop for QPSK and QAM modems using a decision directed approach. I have detailed the decision directed phase detector in this post Phase synchronization in BPSK and this one How to correct the phase offset for QPSK I-Q data, while the block ...


5

This question seems to be based on several misconceptions. In a QPSK modulator operating at a rate of $N$ baud, two bits enter the modulator during each $T = N^{-1}$ second interval. If the bits are entering on a single wire (at a rate of $2N$ bits per second, the QPSK modulator first converts this serial input bit stream at $2N$ bits per second into two ...


5

Your Gardner Loop would properly "Flywheel" in the absence of symbol transitions. So it would slowly drift off of synchronization, but would not spiral out of control as you describe. This is ideal for a control system with "missing updates"; to have the contributions for those updates with no additional information to contribute 0 to the accumulated error, ...


5

Wow, I'm honored by Matt L. doing what I'm often doing: Referring people to GNU Radio. The project actually has a list of recommended literature, but I don't know how well that'd fit you. It's probably still worth looking into. Then, regarding QPSK: Well, it's one of the basic constellations, and you'd probably be best off reading a textbook intro to ...


5

So this seems to be a general block diagram for these types of modulations. No, this is a block diagram of a IQ upconverter with some unspecified digital data modulator on the input. You need to mentally divide the modulation from the tools you use to implement it. There's other architectures that can produce the same signal (and they're not uncommon). But ...


4

This is to take into account the oversampling operation. Symbol time = sample time implies no oversampling. See AWGN model for more details about the conversion among EbN0, EsN0 and SNR. For example, if a complex baseband signal is oversampled by a factor of 4, then EsNo exceeds the corresponding SNR by $10\log_{10}(4)$.


4

You've pointed out a very important distinction between theory and practice. In theory, as suggested by your book and in Fat32's answer, modulation schemes where all information resides in the phase of the signal, not in the amplitude, are called "constant envelope modulation". However, in practice our systems have finite bandwidth and instantaneous phase ...


4

Yes the OP is correct in that you can implement pulse shaping in less than 2 samples per symbol for exactly the reasons that was outlined. However importantly we must also keep in mind having excess bandwidth to simplify subsequent filtering required (such as after the DAC on the transmitter side). The Nyquist criteria is the sampling rate must be twice the ...


4

Do you know how ADS is plotting the spectrum? Plotting the spectrum without doing some kind of normalization will give you a higher magnitude. Once you determine the size of the FFT, normalizing by the length will give you the same magnitude no mater what sampling rate you choose. For example let's take two rectangular signals, one sampled at 1 MHz and the ...


3

Assuming we have timing recovery resolved (meaning our system knows the correct time locations for our symbol decisions), then we can use the decided symbols along with our pre-decision values in a Decision-Directed Phase Detector. This will give us an error value that we can then feed into a phase lock loop to correct for phase error using traditional PLL ...


3

What you are seeing is the transitions from one constellation point to another. In order to reduce the signal bandwidth, the baseband signal is low-pass filtered. This causes the transitions to not be instantaneous (i.e. the I and Q are not square waves), so they take some time. You are simply seeing those transitions. The low-pass filtering also causes ...


3

It looks like your circle got bigger. The constellation is fine.


3

OBPSK in the way that you describe it is also called $\pi/2$-BPSK meaning that the signal constellation is different from bit to bit, rotating by $\pi/2$ after it is used. There are two variations of this format. Use $\pm \cos(\omega_0 t)$ to transmit one bit and $\mp \sin(\omega_0 t)$ to transmit the next bit. Repeat this over and over again. Note the $\...


3

So not only do you need to do timing synchronization to recover the baud clock, you need to do some form of turn on detection. You could start your PSK synchronization at the first sample, but the metrics you get out of any synchronization algorithm would be worse than meaningless with no signal present. You should read a little about detection theory ...


3

Polyphase Barker sequences have been studied (Google throws up multiple hits), but from a practical viewpoint, it is usually simpler to use binary Barker sequences on the I and Q channels.


3

If you have access to Mengali's book 'Synchronization Techniques for Digital Receivers', you will find the details how to choose it for a tracking loop, be it for frequency, phase or timing. Otherwise, just read about a standard discrete-time phase locked loop and see how the choice of paramters affect the loop bandwidth, which is what you are after.


3

There's a problem with your method of computing powers. If you compute the signal power as $$P_s=\sum_{i=1}^ns_i^2$$ then the quantities $$\left(\sum_{i=1}^ns_i\cos(2\pi if_m/f_s)\right)^2\text{ and } \left(\sum_{i=1}^ns_i\sin(2\pi if_m/f_s)\right)^2$$ cannot be related to $P_s$ in any way that would be meaningful for your problem of detecting the ...


3

The answer to your question is yes, these two representations are equivalent. The first important thing to note is that in your formula, $d_k$ must be either $1$ or $-1$, because the frequency difference for MSK must be $\Delta f=1/2T$. I'll add some information showing the equivalence of the two representations. Expanding your first formula gives $$\begin{...


3

I think you may be missing some fundamental understanding of QPSK modulation, which was likely the point of the homework exercise so let me hopefully fill in some blanks, from which you can figure out how to code up in your Matlab. This diagram of a QPSK modulator may be helpful, taken from http://www.masoodkh.com/projects/communications/18-qpsk-...


3

TL;DR The theoretical BER of an ideal QPSK system is $\displaystyle Q\left(\sqrt{\frac{2E_b}{N_0}}\right)$ where $E_b$ is the energy per bit and $\frac{N_0}{2}$ is the two-sided power spectral density of the additive white Gaussian noise channel. The receiver in a standard QPSK system is essentially two BPSK receivers using phase-orthogonal carriers. With a ...


3

The question is specific to optimizing loop bandwidth for the decision directed carrier tracking loop with one sample per symbol. In other posts such as this one PLL for Phase Demodulation and Carrier Tracking I have detailed the consideration for not making the loop bandwidth too low due to increasing contributions from LO phase noise as well as less ...


3

The spectrum is that of the base pulse used in the modulation, so in this case a rectangular pulse. A single rectangular pulse in time, as given by the Fourier Transform, is a Sinc in Frequency with the first nulls spaced at $1/T$ away from the center of the Sinc, where $T$ refers to the duration of the pulse in time. (Just as that shown by the OP). If the ...


2

Your measurement of the symbol and noise energy is not correct. Please note that the following is pseudo-code, not valid Python code. EbN0_dB should be an input to this code, not an output. Esymbol = sum(real(data*conj(data))) / numSymbolsInData Eb = Es/numPayloadBitsPerSymbol Eb_dB = 10*log10(Eb) N0_dB = Eb_dB - EbN0_dB N0 = (10.)**(N0_dB/10.)


2

The reason cyclic prefix is used in OFDM systems is to avoid complex equalizers in receivers. Cyclic prefix converts linear convolution of fading channel(h) & Tx data(x) into circular convolution. Without cyclic prefix: symbol at receiver y = h*x; *- linear convolution Here is a useful link for your question.


2

sure, in reception of QPSK, you receive bit pairs as they are transmitted, and detangle them in the reverse manner that they were grouped together. what's really cool about OQPSK is that the order of the bits going in can naturally determine the order of bit changing in OQPSK. in fact, it can be made into a DSP modulation system without the need for ...


2

In digital communications, you can transmit a sequence of numbers using a train of pulses that don't interfere with each other. A given raised cosine pulse $p(t)$ has zero crossings every $T$ seconds around its peak (for a certain $T$). Let's say you want to transmit the number sequence $\lbrace 3, -5 \rbrace$. You can do this with the 2-pulse train $$s(t)=...


Only top voted, non community-wiki answers of a minimum length are eligible