Questions tagged [signal-processing]

AKA digital signal processing (DSP). A signal is an information-carrying changing attribute of an entity, but in the digital sense, 'signal' refers to either received or transmitted streams/blocks of data, commonly representing real-world quantities such as audio levels, luminosity, pressure etc over time or distance. 'Processing' is the act of altering, analyzing or characterizing the data to retrieve/modify information inherent in the signal in question.

A signal is an information-carrying changing attribute of an entity, but in the digital sense, 'signal' refers to either received or transmitted streams/blocks of data, commonly representing real-world quantities such as audio levels, luminosity, pressure etc over time or distance.

These real-world quantities usually comes as analogue signals that are being sampled and quantized into a digital format, i.e. a sequence or higher-dimensional array of discrete numbers.

'Processing' is the act of altering, analyzing or characterizing the data to retrieve/modify information inherent in the signal in question.

Notice that questions not related to the programming of signal processing implementations but the signal processing theory behind are off-topic for Stack Overflow and should be posted to the appropriate sister site, dsp.stackexchange.

Common topics include:

  • digital filtering;
  • audio processing;
  • image processing;
  • sampling;
  • data compression;
  • spectral analysis;

Analysis tools commonly in practice are the Discrete Fourier Transform (DFT), especially its fast implementations (FFT); and wavelet transforms.

Common softwares used in the field include ; ; , especially with /; ///; ; and various languages.

5191 questions
309
votes
34 answers

Peak signal detection in realtime timeseries data

Update: The best performing algorithm so far is this one. This question explores robust algorithms for detecting sudden peaks in real-time timeseries data. Consider the following example data: Example of this data is in Matlab format (but this…
235
votes
9 answers

How to smooth a curve in the right way?

Lets assume we have a dataset which might be given approximately by import numpy as np x = np.linspace(0,2*np.pi,100) y = np.sin(x) + np.random.random(100) * 0.2 Therefore we have a variation of 20% of the dataset. My first idea was to use the…
varantir
  • 5,697
  • 5
  • 27
  • 50
157
votes
4 answers

Intuitive understanding of 1D, 2D, and 3D convolutions in convolutional neural networks

Can anyone please clearly explain the difference between 1D, 2D, and 3D convolutions in convolutional neural networks (in deep learning) with the use of examples?
155
votes
5 answers

How do I obtain the frequencies of each value in an FFT?

I have an FFT result. These are stored in two double arrays: a real part array and an imaginary part array. How do I determine the frequencies that correspond to each element in these arrays? In other words, I would like have create an array that…
Rango
  • 1,706
  • 3
  • 13
  • 13
110
votes
4 answers

Analyze audio using Fast Fourier Transform

I am trying to create a graphical spectrum analyzer in python. I am currently reading 1024 bytes of a 16 bit dual channel 44,100 Hz sample rate audio stream and averaging the amplitude of the 2 channels together. So now I have an array of 256…
user19745
  • 3,139
  • 8
  • 23
  • 21
91
votes
4 answers

Understanding FFT output

I need some help understanding the output of the DFT/FFT computation. I'm an experienced software engineer and need to interpret some smartphone accelerometer readings, such as finding the principal frequencies. Unfortunately, I slept through most…
stackoverflowuser2010
  • 29,060
  • 31
  • 142
  • 184
86
votes
3 answers

How to implement band-pass Butterworth filter with Scipy.signal.butter

UPDATE: I found a Scipy Recipe based in this question! So, for anyone interested, go straight to: Contents » Signal processing » Butterworth Bandpass I'm having a hard time to achieve what seemed initially a simple task of implementing a…
heltonbiker
  • 23,225
  • 20
  • 121
  • 212
86
votes
6 answers

Why does FFT produce complex numbers instead of real numbers?

All the FFT implementations we have come across result in complex values (with real and imaginary parts), even if the input to the algorithm was a discrete set of real numbers (integers). Is it not possible to represent frequency domain in terms of…
steve landiss
  • 1,579
  • 1
  • 15
  • 23
85
votes
1 answer

Creating lowpass filter in SciPy - understanding methods and units

I am trying to filter a noisy heart rate signal with python. Because heart rates should never be above about 220 beats per minute, I want to filter out all noise above 220 bpm. I converted 220/minute into 3.66666666 Hertz and then converted that…
user3123955
  • 2,299
  • 4
  • 18
  • 21
80
votes
13 answers

Detecting patterns in waves

I'm trying to read a image from a electrocardiography and detect each one of the main waves in it (P wave, QRS complex and T wave). Now I can read the image and get a vector like (4.2; 4.4; 4.9; 4.7; ...) representative of the values in the…
79
votes
12 answers

How to detect the BPM of a song in php

How can the tempo/BPM of a song be determined programmatically? What algorithms are commonly used, and what considerations must be made?
haresh
73
votes
9 answers

An implementation of the fast Fourier transform (FFT) in C#

Where can I find a free, very quick, and reliable implementation of FFT in C#? That can be used in a product? Or are there any restrictions?
AnnaR
  • 3,116
  • 6
  • 31
  • 38
71
votes
4 answers

Using the Apple FFT and Accelerate Framework

Has anybody used the Apple FFT for an iPhone app yet or know where I might find a sample application as to how to use it? I know that Apple has some sample code posted, but I'm not really sure how to implement it into an actual project.
Ian Oswald
  • 1,245
  • 3
  • 15
  • 27
64
votes
2 answers

WebRTC AGC (Automatic Gain Control)

I am testing the WebRTC AGC but I must be doing something wrong because the signal just passes through unmodified. Here's how I create and initialize the AGC: agcConfig.compressionGaindB = 9; agcConfig.limiterEnable = 1; agcConfig.targetLevelDbfs =…
user1884325
  • 2,726
  • 1
  • 24
  • 44
57
votes
7 answers

How can I calculate audio dB level?

I want to calculate room noise level with the computer's microphone. I record noise as an audio file, but how can I calculate the noise dB level? I don't know how to start!
oBlank
  • 687
  • 1
  • 6
  • 8
1
2 3
99 100