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

# Tag Info

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

Phase (or carrier) Recovery for BPSK can be done over the entire sequence using the information from every sample. Here are common approaches to doing Carrier Recovery: Frequency Doubling (squaring): If you square a BPSK signal (multiply it by itself) a strong tone will be created at twice your carrier frequency. The Squaring operation strips the data ...

8

The filter that you're referring to is called a preselection filter. Its purpose is to filter out everything but the desired signal of interest before mixing to baseband. Unwanted components could include other signals that are nearby in frequency, or just noise that lies outside the desired signal's bandwidth. Preselection can serve multiple purposes: It ...

7

These stuffs $E_s/N_0, E_b/N_0 \textrm{ and SNR}$ are convertible. \begin{align} E_s/N_0 &= E_b/N_0 + 10\log_{10}(k) \\ E_s/N_0 &= 10\log_{10}(T_{sym}/T_{samp}) + \mathrm{SNR} \end{align} where $k$ is the number of information bits per symbol, $T_{sym}$ is the signal's symbol period and $T_{samp}$ is the signal's sampling period. More details can ...

6

This is a behaviour that is commonly outlined in some textbooks and tutorials on FEC, but usually in the form of an observation. For instance, Turbo Codes are sometimes characterised by their Threshold $E_b/N_o$, which can be considered as the minimum SNR per bit from where the BER starts to decrease. I have not seen a formal explanation for this property, ...

6

A PLL on its own will not work on the direct PSK modulation, assuming the symbols are equi-probable as that results in a nulled carrier, so there is nothing the PLL can track! Costas-Loops are effective for BPSK and QPSK implementations, and as Dilip had suggested, for BPSK you can square your signal and then use a PLL to lock onto the 2F frequency that ...

5

An "integrate and dump" filter is a common approach for this application, which is essentially an averaging filter averaged optimally over your symbol period. To implement this, you simply reset your accumulator at the symbol boundaries, accumulate your output over the symbol period and then "dump" your result by taking the accumulated output as the result ...

5

The final statement is correct, for PSK with proper pulse shaping the baud rate and the bandwidth are the same (the bandwidth will typically be 20-30% higher than the symbol rate, but read on). The baud rate is the symbol rate or the rate of change from one symbol to the next in the modulated constellation. Your earlier figures suggest unfiltered waveforms ...

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

The mixer/LPF filter that you describe as the receiver is typically one that is designed (possibly for optimal performance e.g. matched filter) using a mathematical model that assumes its input is the desired signal plus noise (often AWGN) and nothing else. If other signals are present, they are assumed to be orthogonal to the signal of interest (as in CDMA ...

4

Well, I took a look at your code, and spent a lot of time on it, and I have discovered some mistakes, some practicals and some theoretics. Here are my answers: (1) You can use the function filter. Just remember that it returns a vector of the same length of the input, while conv returns the $N_x + N_h - 1$, where $N_x$ is the length of your input and $... 4 The energy per bit$E_b$means one thing and one thing only: how many joules is the transmitter spending, on average, per information bit transmitted. Note that the channel has absolutely nothing to do with$E_b$. However, your question involves the SNR too. In a channel with non-unit gain, you need to decide where you'll measure the SNR. You can define ... 4 I have a PRN generator that I have validated with live captured signals that is available on the Mathworks Exchange site at this address and equally runs in Octave (Update: I also pasted the core of this in a code block below): https://www.mathworks.com/matlabcentral/fileexchange/14670-gps-c-a-code-generator The two tap coder is as given in the diagram in ... 3 The energy per bit,$E_b$, is independent of the coding rate. Note that$E_b$measures the energy per transmitted information bit, not per transmitted symbol. Let's say you're willing to spend one joule per information bit, so$E_b=1$. You use uncoded BPSK, so that each transmitted symbol carries one bit of information and so it also has energy one. Let us ... 3 A random sequence of +1 and -1 is not really a BPSK signal; it's just a sequence of bits. As such, its FFT has not much meaning, at least not in the sense you're thinking of. To create an actual BPSK signal, first denote your sequence of$N-1$bits by$a_k$, where$k=0,\ldots,N-1$is an integer. Second, choose a bit rate$R_p=1/T_p$. Then, choose a pulse ... 3 Zero-mean noise by itself can't modify the decision boundary. However, the number of things that can go wrong in your system is large. Is your channel flat or frequency-selective? You can think of the channel as the sound card and its driver, the loudspeaker, the air, the microphone, and the receiver's sound card and its driver. In my experience, there's ... 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

This problem is typically solved by preceding your actual payload data with a synchronization pattern, or sync word. This is a sequence of symbols that are known to the receiver ahead of time and are used to aid synchronization with the payload data frame. It could be detected in a couple ways: Sync pattern matched filtering: When looking for the ...

3

This question apparently is not at all about negative frequencies which is the point I addressed earlier in a separate answer but about the signal at the image frequency that occurs as a result of the It appears from the comments by the OP on an earlier answer of mine that his question is about an entirely different problem. The OP apparently creates a ...

3

An actual BPSK signal can be expressed as \begin{align} s(t) &= \operatorname{Re}\left[\sum_{n=-\infty}^\infty (-1)^{b_n}p(t-nT)e^{j(2\pi f_c t + \theta)}\right]\\ &= \left[\sum_{n=-\infty}^\infty (-1)^{b_n}p(t-nT)\right]\cos(2\pi f_c t + \theta) \end{align} where $b_n \in {0,1}$ is the $n$-th data bit (note that $(-1)^{b_n} = \pm 1$), $p(t)$ ...

3

There are three different kinds of synchronization in a passband digital communications system: Carrier synchronization: the receiver needs to know the exact frequency and phase of the carrier used by the transmitter. Symbol synchronization: the receiver needs to know the optimum instants to sample the matched filter's output. Frame synchronization: the ...

3

I commend you for using an intuitive algorithm. However, there are already established algorithms with far better performance. Phase recovery algorithms work by filtering the error signal down to zero. An example is the Costas loop structure shown in the figure below for QPSK. Let's start with phase error detectors (Highlighted in yellow). The arctan ...

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

In BPSK, BER is equal to $Q(\sqrt{2E_b/N_0})$, so you need $E_b/N_0>11.3$ to have a BER no larger than $10^{-6}$. Since the bandwidth is 200 kHz, the maximum rate is 400 kb/s. So, since $SNR\approx136$, $$\frac{Eb}{N_0}=\frac{S}{N}\frac{W}{R}=136\frac{200\cdot10^3}{400\cdot10^3}=\frac{136}{2}=68$$ Since $68>11.3$, you can be sure that you can ...

2

I figured it out. It turned out that I don't really need that 'Phase Accumulator', and I should reverse the control signal in the NCO. So, I use -PhErr(i-1) as a control signal to NCO. Here is the modified code: % Siraj Muhammad % 25/3/2015 % BPSK Demodulator %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% load RRC.mat fc = 0.05000001; phase_offset = pi/7; N = length(...

2

Neglecting square terms of the Q function, your expression is correct, but it is the symbol error probability, not the bit error probability: $$P_s=2.5\,Q\left(\frac{d}{2\sigma}\right)\tag{1}$$ With Gray encoding, the bit error probability is closely approximated by $$P_b\approx\frac13Ps\tag{2}$$ because there are $3$ bits per symbol, and the most likely ...

2

There are a few problems with your code: You are using the index ii not the actual SNR in DB in this line: y= awgn(sFilt,ii,0); You are not taking into account the filter delay in ySamp = yFilt(os:os:N*os);. Your filter is filter = rcosine(1/T,os,'sqrt',rolloff); which will design a root-raised cosine FIR filter. Your filter delay will be (length(filter)-...

2

This is solved slightly differently if you're simulating a continuous-time or discrete-time AWGN channel. I'll assume you're simulating a discrete-time channel; that is, you're simulating the output of the receiver's matched filter sampled at correct time instants. First consider the case with no noise. In this scenario, the matched filter's output is an ...

2

The spectral efficiency depends on the pulse shape. The basepand BPSK signal can be written as $$s(t)=\sum_k a_k p(t-kT_b),$$ where $a_k$ is equal to either $\sqrt{E_b}$ or $-\sqrt{E_b}$, $E_b$ is the bit energy, $T_b$ is the bit interval (so that the bit rate is $R_b=1/T_b$), and $p(t)$ is a Nyquist pulse. The bandwidth of $s(t)$ is equal to the bandwidth ...

2

You want to take a wav file, run it through a BPSK modulator and I'm guessing (from your #3) to plot some waveform or something. So you should find a wav file like handel.mat which is built into MATLAB, and convert it to binary. This may require some decisions like how many bits you choose to represent each sample if its not already something you can work ...

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