26 votes

How can I work on DSP using C/C++?

MATLAB is a desktop computing environment, that's designed to make it easy to do math in batches. And if you were to have access to the MATLAB source code, you'd find that as you dig down into it, ...
TimWescott's user avatar
  • 11.8k
18 votes

How can I work on DSP using C/C++?

C/C++ is the standard language for real time and embedded signal processing. MATLAB is in most cases way too memory hungry and way too slow. There is a lot of signal processing happening in, for ...
Hilmar's user avatar
  • 42.5k
14 votes

Capacity of AWGN channel

Assuming a channel whose input at each time is a continuous random variable $X$ and its output is $Y=X+Z$, where $Z\sim\mathcal{N}(0,N)$ and $Z$ is independent of $X$, then $$C_{\text{CI-AWGN}}=\frac{...
msm's user avatar
  • 4,225
11 votes
Accepted

Why are QAM Constellations regular and rectangular?

The distortion you are seeing in the first figure is due to phase noise; the further you get from the origin, the further span the constellation will have for a given phase. QAM constellations are ...
Dan Boschen's user avatar
  • 48.8k
10 votes
Accepted

Location of Matched Filter

The time span of the zero crossings increases after the final RRC filtering (and the symbol sampling locations converge which is the goal for the benefit of zero ISI but the zero crossing increase in ...
Dan Boschen's user avatar
  • 48.8k
10 votes
Accepted

Phase synchronization in BPSK

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):...
Dan Boschen's user avatar
  • 48.8k
10 votes
Accepted

Confusion in Channel Encoding and Convolutional Encoding

Like other comments, I don't really understand your question. What I am trying to do is to list basic things so that other ones can suggest edit because I find it is much easier to write in answer ...
AlexTP's user avatar
  • 6,080
9 votes

Why are QAM Constellations regular and rectangular?

It's important to note that from a practical point of view QAM has two significant advantages: The in-phase and quadrature components are independent PAM signals with $\sqrt{M}$ levels each (where $M=...
Matt L.'s user avatar
  • 88.9k
9 votes
Accepted

Why are Gold codes and Kasami codes used instead of pure m-sequences?

There are very few m-sequences of any given length with good cross-correlation properties. Their autocorrelation properties are excellent, but the cross-correlation properties are variable. For ...
Dilip Sarwate's user avatar
9 votes
Accepted

QAM constellation slicer with unknown carrier phase

What you need is carrier phase synchronization. This is a complicated topic with many different approaches. The approach that you'll choose could depend on things like: Data-aided versus blind: Does ...
Jason R's user avatar
  • 24.5k
9 votes
Accepted

ADC quantization +thermal noise

Treating ADC quantization noise as a uniform white noise source is generally valid. Please refer to this post where I further detail practical limitations on using white noise assumptions for ...
Dan Boschen's user avatar
  • 48.8k
9 votes

Compress a signal by storing signal diff instead of actual samples - is there such a thing?

You can also think of delta encoding as linear predictive coding (LPC) where only the prediction residual ($x[n]-\hat{x}[n]$ in @robertbristow-johnson's notation) is stored and the predictor of the ...
Olli Niemitalo's user avatar
9 votes

Isn't Gardner's algorithm and Early-Late gate the same thing?

The Gardner Timing Error Detector is diagrammed in the graphic below, where two samples per symbol are used, and the error is determined using Prompt*(Late-Early), and when synchronized the center ...
Dan Boschen's user avatar
  • 48.8k
8 votes
Accepted

Why does FEC seem to make BER worse at low Eb/N0?

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 ...
vaz's user avatar
  • 378
8 votes

Why not use zero-signal in digital transmission?

All implementation aspects aside, the constellation you propose performs worse than QPSK in an additve white gaussian noise (AWGN) channel. I claim this based on simulations that I have run with ...
Deve's user avatar
  • 4,235
8 votes

Practicality of the assumption of i.i.d. for Rayleigh channels

I am a little late but I post my answer anyway so that someone having the same question will find it interesting and discuss. The discrete baseband multipath channel can be modeled as a FIR, i.e. $$...
AlexTP's user avatar
  • 6,080
8 votes

Coherence bandwidth/delay spread in OFDM

Indeed, the constraint $T_s(N+N_{cp}) \gg T_m$ should be derived as $T_s(N+N_{cp}) \gg T_s N_{cp} \geq T_m$. The first inequality to make sure that the CP overhead is as small as possible. The second ...
AlexTP's user avatar
  • 6,080
8 votes
Accepted

Confusion in Phase Shift Keying

Phase shift keying is linear modulation. Digital phase modulation is not necessarily linear.
AlexTP's user avatar
  • 6,080
8 votes
Accepted

Relation between Bandwidth and Baud-Rate for 8-PSK

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 ...
Dan Boschen's user avatar
  • 48.8k
8 votes
Accepted

Why zeroes near the unit circle cause a dip in frequency response, while poles cause a peak?

To answer this you need to understand what is a pole and what is a zero of a transfer function. Let's look at a simple 2 poles 2 zeros filter (also called biquad filter) transfer function : $$ H(z) = ...
Florent's user avatar
  • 684
8 votes
Accepted

What is a constant envelope modulation?

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 ...
Matt L.'s user avatar
  • 88.9k
8 votes

PSD of complex white gaussian noise

With reference to $N_o$ this usually is the symbol for the power spectral density (PSD) of thermal noise, where $N_o = kT$, where k is Boltzmann's Constant and T is the temperature in Kelvin. With ...
Dan Boschen's user avatar
  • 48.8k
7 votes

Capacity of AWGN channel

The capacity formula $$C = 0.5 \log (1+\frac{S}{N}) \tag{1}$$ is for discrete time channel. Assuming you have a sequence of data $\left\lbrace a_n \right\rbrace$ to send out, you need an orthonormal ...
AlexTP's user avatar
  • 6,080
7 votes

How to "draw" the function/wave to send symbols using QAM?

The baseband QAM signal is complex, and the only way to draw it is by doing two drawings, one for the in-phase (real) component, and one for the quadrature (imaginary) component. The passband QAM ...
MBaz's user avatar
  • 14.9k
7 votes

Lower digitisation rate for long distance communcation

At long distances, your transmit signal loses a lot of power. As a result of that, the SNR at the receiver is possibly relatively low. A low SNR means that you cannot transport many bits per second ...
Marcus Müller's user avatar
7 votes
Accepted

MATLAB: Adding Noise with Regard to Signal to Noise Ratio (SNR) or EbNo?

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} ...
AlexTP's user avatar
  • 6,080
7 votes

Acoustic waves propagation distance relation with carrier frequency?

For a sine wave of amplitude $A$ and frequency $f=1/T$, its energy from $-T/2$ to $T/2$ is $A^2T/2$. Thus the power depends only on amplitude. The energy over one period does depend on frequency, but ...
AlexTP's user avatar
  • 6,080
7 votes
Accepted

Why do we need to increase sampling frequency at the transmitter?

Three reasons to increasing the sampling rate further are 1) To relax the requirements of the post D/A conversion filtering for image rejection. 2) Increase signal SNR by spreading quantization ...
Dan Boschen's user avatar
  • 48.8k
7 votes

How can I work on DSP using C/C++?

I come from the game development world, and I knew C/C++ programming way before I did my first signal processing program (in the context of audio filters for games), so I hope I can give you another ...
Panda Pajama's user avatar
7 votes

How can I work on DSP using C/C++?

I find it borderline misleading to even call MATLAB a programming language. –Well, it is a Turing complete language... but so is Brainfuck (BF). You can theoretically write any software in it (given ...
leftaroundabout's user avatar

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