endolith
  • Member for 10 years, 5 months
  • Last seen this week
How do window size, sample rate influence FFT pitch estimation?
Accepted answer
8 votes

Use a Gaussian window - the Fourier transform of a Gaussian is a Gaussian Log-scale the spectrum to emphasize peaks and turn the Gaussian peaks into parabolic peaks Use parabolic interpolation to find ...

View answer
Audio output quality
8 votes

WAV or FLAC are lossless, so the digital data should be identical when fed to the DAC. Lossy formats like MP3 and OGG don't store a waveform, though. It needs to be reconstructed from sparser data, ...

View answer
Guitar pitch detection with autocorrelation
Accepted answer
7 votes

Cons: Not as accurate This is just compared to the other methods. I was measuring frequency very accurately to look for clock drift, etc: 1000.000004 Hz for 1000 Hz, for instance. For guitar pitch ...

View answer
Audio Fingerprinting
7 votes

How can i do that? Generate a 370 ms long Hann window, take a 370 ms chunk of your audio, then multiply them together, sample-by-sample. You're just taking a chunk of audio and fading it in and out ...

View answer
Conceptually, how does a Fourier transform differ from an autocorrelation?
Accepted answer
7 votes

Ok, in the context of one specific application: If you're trying to find the frequency of a waveform, you can calculate it similarly from the position of the peak in a Fourier transform or the peak of ...

View answer
Fourier series representation
6 votes

However what is conceptually wrong with using say an infinite sum of time shifted rect functions to represent it? There is nothing conceptually wrong with it. Fourier transforms decompose a signal ...

View answer
Why is Scipy implementation of Hilbert() function different from Matlab implementation of the function?
Accepted answer
6 votes

It works fine for me: from scipy.signal import hilbert import numpy as np from matplotlib.pyplot import plot sensor = np.loadtxt('signal.txt') plot(sensor) analytical_signal = hilbert(sensor) plot(...

View answer
Digital Anti Aliasing Filter For Waveform Band Limiting
Accepted answer
6 votes

I am generating my waves in a "Raw" mathematical way, meaning that i am creating a ramp for a saw wave and my square wave consists of pure 1's and 0's. The issue is that this technique is inherently ...

View answer
How to find the group delay of IIR filters in Python/SciPy
6 votes

I only need the total group delay, not spectrum of group delay. Group delay is a spectrum, so this doesn't make sense. The group delay is the derivative of the phase response of the filter, so in ...

View answer
Difference between a wavelet transform and a wavelet decomposition
Accepted answer
6 votes

I don't think there is any difference. The documentation for dwt2 says Single-level discrete 2-D wavelet transform The dwt2 command performs a single-level two-dimensional wavelet ...

View answer
Window function and length of signal
Accepted answer
6 votes

What happens if I choose the length of signal L > NFFT? and what's about choosing L different form NFFT? Did you read the documentation? http://www.mathworks.com/help/techdoc/ref/fft.html Y = ...

View answer
Fail to separate sound signals by FastICA on real-world recording
6 votes

As I say further down the page: it turns out that ICA doesn’t actually work well when the signals occur at different delays in the different sensor channels; it assumes instantaneous mixing (that ...

View answer
DSP Concepts Visually Explained
5 votes

I like these animations of Fourier transforms: The continuous Fourier Transform of rect and sinc functions

View answer
Continuous Wavelet Transform with Scipy.signal: what is parameter "widths" in cwt() function? How do time-frequency?
Accepted answer
5 votes

complex morlet was added Aug 10, 2007 ricker and cwt were added Sep 20, 2011 There's no indication that cwt is meant to be compatible with morlet. As cwt docstring says: Wavelet function, which ...

View answer
Is a leaky integrator the same thing as a low pass filter?
5 votes

The frequency response is the same, yes, but the application is different: With a low-pass filter, your signal is in the passband. The cutoff frequency of the filter is set above the highest ...

View answer
FFT of sine wave not coming as expected i.e single point
5 votes

I bet your sine wave is zero at the first and last sample? It shouldn't be. It should be lined up so that the next sample after the last sample is zero, so that you can copy and paste copies of the ...

View answer
How to write lowpass filter for sampled signal in Python?
5 votes

Does this work? from __future__ import division from scipy.signal import butter, lfilter fs = 1E9 # 1 ns -> 1 GHz cutoff = 10E6 # 10 MHz B, A = butter(1, cutoff / (fs / 2), btype='low') # 1st ...

View answer
Directly compare subpixel shifts between two spectra — and get believable errors
5 votes

I think using cross-correlation and interpolating the peak would work fine. As described in Is up-sampling prior to cross-correlation useless?, interpolating or upsampling before the cross-...

View answer
Is a wavelet-based correlation measure worth any additional computational overhead?
Accepted answer
5 votes

First off, you should use whichever tool is appropriate for the job. Correlation vs coherence vs wavelet-based correlation are all different things, so this question is kind of like asking "Which is ...

View answer
Subtracting sensors output that have mutual inductnace between them
5 votes

This sounds like blind source separation. In general, you can't unmix things after they've been mixed. If you have two different recordings of two sources with some of each source in each recording, ...

View answer
Common Filter Types for Audio Applications
Accepted answer
4 votes

a lowpass with variable cutoff frequency and resonance. RBJ has a cookbook on how to do this: https://www.w3.org/TR/audio-eq-cookbook/ Here the cutoff frequency is called w0, and the resonance is ...

View answer
How to compute dBFS?
4 votes

All the standards define dBFS as an RMS measurement, relative to the RMS level of a full-scale sine wave, so the calculation is: value_dBFS = 20*log10(rms(signal) * sqrt(2)) = 20*log10(rms(signal)) + ...

View answer
Bandpass filters with python for low frequencies
Accepted answer
4 votes

I would bet this is just numerical error in the transfer function. Try using butter_sos = butter(..., output='sos') instead of ba format, and sosfreqz(butter_sos, ...) instead of freqz. Does that ...

View answer
Formula for Bessel low-pass filter coefficients
4 votes

Hi, I wrote this. It's probably more complicated/inefficient than it needs to be. :D Practical Bessel filter design involves root-finding of a polynomial to generate second-order sections; I don't ...

View answer
How to calculate an azimuth of a sound source in stereo signal
4 votes

So here's a diagram: The signal source is at $(x, y)$, left microphone is at $(-1, 0)$, right microphone is at $(+1, 0)$. $d=2$ is the distance between the microphones. $b$ is the distance from the ...

View answer
Why is there a mismatch between normalized cross-correlation and perception for basic waveforms?
4 votes

Sawtooth: Even and odd harmonics, falling off at 1/n Square: Odd harmonics only, falling off at 1/n Triangle: Odd harmonics only, falling off at 1/n2 So while triangle and square have the ...

View answer
Identify Where Singing Starts in a Voice Only Recording
4 votes

If the background noise is white-ish, you could measure spectral flatness and consider it to be voice when the amplitude is above some threshold and the spectral flatness is below some threshold. ...

View answer
I need advice about how to make an audio frequency analyzer
4 votes

So I know I should apply a window function somewhere, and I'm trying to understand how to do that. Multiply the chunk of signal by the window function before doing the FFT. The FFT operates on the ...

View answer
Profile Matching in a Point Cloud
Accepted answer
4 votes

This is always going to require a lot of computation, especially if you want to process as many as 2000 points. I'm sure there are highly-optimized solutions for this kind of pattern-matching already,...

View answer
(Radiation) Pulse detection and height characterization when pulses are stacked
3 votes

Can you use deconvolution to convert these decaying impulses back into impulses? Proof of concept: import numpy as np from scipy import signal import matplotlib.pyplot as plt impulses = np.zeros(150) ...

View answer