Hot answers tagged

25 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, ...
user avatar
  • 8,646
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 ...
user avatar
  • 32.6k
14 votes

Fastest implementation of fft in C++?

I was also searching for fast FFT library to be used from C++. Let me share what I think the situation is in 2019. FFTW is the most popular FFT library. It has planty of features and it's often used ...
user avatar
  • 241
12 votes
Accepted

Fastest implementation of fft in C++?

Matlab's fft functions are all based on FFTW (this is confirmed here), so I guess the obvious choice for you should be FFTW. FFTW is hardware-independent but it can take advantage of some hardware-...
user avatar
  • 80.4k
10 votes

Signal processing in Python vs C++ (band-pass filter)

Not really an answer but too long for a comment. Standard software development and debug techniques should solve this Don't use code on real data before it has passed all unit tests First write the ...
user avatar
  • 32.6k
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 ...
user avatar
6 votes

Image Gradient: Light to Dark, Dark to Light

The UINT8 type is limited to integer numbers on the range [0, 1, 2, ..., 255]. Hence negative values are clipped into 0. A solution could be wither use other types (Floating Points) or scale and ...
user avatar
  • 41.4k
6 votes
Accepted

removal of blackman harris window results in signal higher than expected

The reason for that is that you don't normalize the DFT samples properly. Dividing by number of samples in time domain is valid only for Rectangular Window. For simple case of DFT, you should divide ...
user avatar
  • 10.5k
6 votes

Parameters of Gaussian Kernel in the Context of Image Convolution

When dealing with Gaussian Blur in the Image Processing context the following holds: The Standard Deviation, $ \sigma $, is sometimes called radius. I think this ...
user avatar
  • 41.4k
6 votes
Accepted

Why Is Non Linear Least Squares Method from MATLAB and Alglib Gives Different Results on the Same Data?

When you solve Non Linear Least Squares problem of a non convex cost function the end solution (Which is guaranteed to be a Local Minimum) will depend on: Method of Minimization. Method Parameters. ...
user avatar
  • 41.4k
6 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 ...
user avatar
5 votes
Accepted

Recommended C/C++ General Purpose DSP Libraries

Maybe a bit late, but since others might land here like me. The following are good signal processing libraries/frameworks: * https://www.gnuradio.org/ - lots of classic signal processing + ...
user avatar
  • 66
4 votes
Accepted

Which filter for an audio equalizer

Simply put, you need a bank of passband filters. You feed your signal through each of the filters, and sum up the outputs from the filters. Designing the filters is where the fun comes in. First ...
user avatar
  • 2,180
4 votes

Power spectrum of a pure sine problems

Since FFT treats the signal as if it is periodic you need either to apply a window function (for example hanning) on your signal or make it coherent. In the image3 ...
user avatar
4 votes

Find smoothed first derivative from signal with noisy slope

I think least squares is going to be the best approach, and that's not going to be that computationally expensive (I think! Please correct me if I'm wrong). The gradient can be estimated from a ...
user avatar
  • 22.9k
4 votes

Calculating the SNR of Audio Signal (Recommended Libraries)

It is really hard to create something to estimate the SNR in all cases. Each case requires its own treatment according to model of the acquisition of the signal. For instance, if the model is AWGN ...
user avatar
  • 41.4k
3 votes
Accepted

normalize fft produced by fftw_plan_dft_r2c_1d

Reading the manual, even though only half the data is returned, the full length FFT is calculated: So you should normalize by whatever the full length is normalized to: ...
user avatar
  • 22.9k
3 votes

Vein extraction from this image

I would like to direct you to 3 references: C. Steger: “Extracting Curvilinear Structures: A Differential Geometric Approach”. In B. Buxton, R. Cipolla, eds., “Fourth European Conference on ...
user avatar
  • 5,225
3 votes

Fastest implementation of fft in C++?

There's also FFTS (written in C, not C++, though), which has some impressive benchmarks: https://github.com/anthonix/ffts I compiled it under Linux, but haven't had a chance to play with it yet.
user avatar
  • 74
3 votes

Fastest implementation of fft in C++?

I second the fftw suggestion. One of the nice features of fftw is "wisdom". That is, if you call many times the same Fourier Transform (with the same array size), you can ask fftw to look for the ...
user avatar
  • 181
3 votes
Accepted

How to implement the imaginary part of FFT equation applied to a signal in computer/C++?

In computer programs, complex numbers are usually represented by an array, field or vector containing two values: one value represents the real part, the other represents the imaginary part of the ...
user avatar
  • 4,051
3 votes
Accepted

NORM_HAMMING2 vs NORM_HAMMING

From BFMatcher constructor documentation: NORM_HAMMING should be used with ORB, BRISK and BRIEF, ...
user avatar
  • 1,742
3 votes

How can i measure soundcard latency?

Here are some approaches to consider: FMCW: Transmit a "chirp" signal where the frequency transmitted is slowly ramped from a low frequency to a high frequency (repeatably as a sawtooth or ramp ...
user avatar
  • 37.7k
3 votes
Accepted

What exactly is "sparse representation"?

Take a sine-like signal $s$. In the appropriate Fourier $\mathcal{F}$ domain, it is represented by two "peaks", the other coefficients being zero. Fourier is a sparse representation for sines or close-...
user avatar
3 votes
Accepted

DSP using audio IO from PC using C++

The best performance you will be able to squeeze out of a PC is with an audio interface that supports ASIO. To be able to get near 10ms of total delay (input and output) you will also need a very ...
user avatar
  • 10.1k
3 votes
Accepted

What did I do wrong with this simple filter build?

Your analog transfer function looks OK. For the sake of clarity - and to reduce the chance of making errors - I'd just rewrite it as $$H_a(s)=G\cdot\frac{s^2+as + b}{s^2+cs + d}\tag{1}$$ with $$\...
user avatar
  • 80.4k
3 votes

Sampling a low-frequency sound doesn't work at some sampling rates

Could be a few things You may be borderline clipping. Your sine wave has an amplitude of 1, which is just at the edge of clipping (depending on how its rendered). Try it with an amplitude of 0.5 Your ...
user avatar
  • 32.6k
3 votes

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

First of all, as others mentionned you should learn about embedded programming, real-time programming and C/C++ That being said, there are ways to minimize the Matlab to C/C++ conversion. First method,...
user avatar
  • 3,620
3 votes

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

In addition to the several answers already given here, I just want to link this superb answer from @Fat32. My focus is on MATLAB and the bad rap often directed at it (I am not one of them). As it has ...
user avatar
  • 3,272
2 votes

Recommended C/C++ General Purpose DSP Libraries

I was looking for a way of converting MATLAB code to C/C++ that I found Armadillo: http://arma.sourceforge.net/license.html. It's a C++ library covering various categories such as signal and image ...
user avatar
  • 21

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