Skip to main content
Search type Search syntax
Tags [tag]
Exact "words here"
Author user:1234
user:me (yours)
Score score:3 (3+)
score:0 (none)
Answers answers:3 (3+)
answers:0 (none)
isaccepted:yes
hasaccepted:no
inquestion:1234
Views views:250
Code code:"if (foo != bar)"
Sections title:apples
body:"apples oranges"
URL url:"*.example.com"
Saves in:saves
Status closed:yes
duplicate:no
migrated:no
wiki:no
Types is:question
is:answer
Exclude -[tag]
-apples
For more details on advanced search visit our help page
Results tagged with
Search options not deleted user 8202

The fast Fourier transform is an efficient algorithm to compute the discrete Fourier transform (DFT) and its inverse.

1 vote

Relating bin numbers to frequency non uniform fft

If you wish to dig into math, then please refer to (among many others): Particle Simulation Based on Nonequispaced FFT NUFFT and MRI …
jojeck's user avatar
  • 11.2k
4 votes
Accepted

FFT Result - which bins are useful

I believe you should use the Nyquist bin every time. By having it, you can always recreate the full DFT of your real-valued signal from the first half of spectrum. Whereas if you discard this value th …
jojeck's user avatar
  • 11.2k
6 votes
Accepted

Why does FFT generate a jaggedy signal

What you are seeing is a peak from sinusoid convolved with a spectrum of rectangular window sinc function. That is due to property: $$x(t)\star w(t) = X(f)\cdot W(f) $$ Where your signal $x(t)$ is a …
jojeck's user avatar
  • 11.2k
3 votes
Accepted

FFT of two sets of samples vs FFT of sum of samples

Fourier Transform is linear, hence if $\mathcal F[x(t)]=X(f)$ and $a$, $b$ are complex numbers, then: $$\mathcal{F}[ax(t)+by(t)] = a X(f) + bY(f) $$ So in your case, simply sum the results together. …
jojeck's user avatar
  • 11.2k
4 votes
Accepted

Problems calculating 8-point FFT of an 8-point sine wave by hand

Calculating butterfly we obtain: $[0+1\cdot 0; \ 0+(-1)\cdot 0] = [0; \ 0] $ - these are final FFT values $X[0], X[4]$. … 1.4142+1.4142i); \ 2i-(-0.7071 - 0.7071i)\cdot (1.4142+1.4142i)] = [0; \ 4i] $ So our final vector is following: $X[k] = [0; \ -4i; \ 0; \ 0; \ 0; \ 0; \ 0; \ 4i] $ Which means MATLAB is calculating FFT
jojeck's user avatar
  • 11.2k
2 votes

FFT on a random signal

First of all you should take the magnitude of the FFT (use abs function) - what you've plotted is just a real part of FFT. … This way you will avoid mistakes using FFT. …
jojeck's user avatar
  • 11.2k
1 vote

Using FFT to Unit Test a Music Player

Recently I did similar thing and I can suggest you some solutions: Play $1kHz$ sinusoid at a given level of some arbitrary length (mostly bit longer = better), then you can tell what is the gain of …
jojeck's user avatar
  • 11.2k
-1 votes

Implementing short-time Fourier transform

To make things easier, I suggest you to use MATLAB function buffer. Regarding storage of your results I recommend to save it into matrix with dimensions no_frames and $512$. So if your current frame …
jojeck's user avatar
  • 11.2k
1 vote

Matching headphone responses

Why not to simply match the frequency responses and sensitivities? That's what labs are actually doing. Since you have the IR's for each device, simply calculate the Frequency response of each repet …
jojeck's user avatar
  • 11.2k
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 y …
jojeck's user avatar
  • 11.2k
3 votes

FFT of a $N$-length real sequence via FFT of a $N/2$-length complex sequence

You can use Decimation In Time (DIT) to calculate the FFT of single $N$ length sequence, using two $N/2$ sequences and combine them later on with a single butterfly. … 0\ldots N/2-1$ Calculate the FFT of that complex sequence: $$\hat{X}=\mathrm{FFT}_{N/2}(\hat{x})$$ Now you can extract corresponding FFT's of both even and odd part: $$X_{even}(k)=\frac{\hat{X}(k)+ …
jojeck's user avatar
  • 11.2k
10 votes

MATLAB - remove the frequency at zero in FFT

X[k]=\sum_{n=0}^{N-1}x[n]e^{-i 2\pi n\cdot k} \right |_{k=0} \Rightarrow X[0]=\sum_{n=0}^{N-1}x[n]e^{-i 2\pi n\cdot 0} = \sum_{n=0}^{N-1}x[n] $$ So after you calculate the FFT and divide by number of … In order to remove that, please apply the following before the FFT calculation: Lift = Lift - mean(Lift); …
jojeck's user avatar
  • 11.2k
2 votes

Fourier transform of a normalized vector

There are different conventions in scaling of the FFT, in MATLAB you need to scale it by $\sqrt{N}$, where $N$ is your number of samples. … of normalised s1 % Scale FFT by sqrt(N) - this is convention used in MATLAB s2 = fft(s1)/sqrt(length(t)); % Calculate the norm of s2 s2_norm = norm(s2); display(sprintf('L2 norm of s2: %.2f', s2_norm) …
jojeck's user avatar
  • 11.2k
9 votes

Non Uniform FFT / DFT with FFTW?

The answer is Non-uniform discrete Fourier transform I suggest you to take a look in here: NFFT library. Tutorial for that purpose: NFFT 3.0 Tutorial. You can also find a Python wrapper: pyNFFT. …
jojeck's user avatar
  • 11.2k
3 votes
Accepted

How does amplitude scale when FFT size is smaller then signal duration?

*win; % Magnitude spectra S = abs(fft(s)); S_win = abs(fft(s_win)); % Frequency vector f = (0:fs/N:round(fs/2)); % Take one-sided spectrum S_h = 2*S(1:length(f)); S_win_h = 2*S_win(1:length(f)); % Normalisation …
jojeck's user avatar
  • 11.2k

15 30 50 per page