New answers tagged

1

Is the backwards transform just an IFFT (for forward transform)? Yes. Compare the "what FFTW actually computes", here


1

You clearly haven't digested the information from the other answers I gave you. With an odd number of points, the Nyquist frequency lies cleanly between two bins and does not occur at a bin. For conceptual purposes, an odd number of points let you set zero at the center flanked by the same number of points on each side. Likewise, the DFT can be centered at ...


2

Depends on who's practicing and what they are doing. You should know that it is mathematically equivalent to doing interpolation using the discrete sinc function (aka Dirichlet kernel, or alias sinc). As your N gets large, this approaches the normalized sinc function. Personally, I'm likely to use cubic interpolation, see Multi-channel audio upsampling ...


1

Reversing the order of the input sequence would provide the same result as what the OP achieved, but not to say this is exactly why it is occurring here. Below shows the details of the DIT algorithm after each stage; comparing each element step by step with the code should reveal the actual error. Interpreting the OP's results (I assume [x] represents the ...


0

If you think of the spectrograms as filter banks it might be easier to conceptualize. With a STFT, each bin in the bank has the same time/frequency resolution. With the Wavelet transform, the bins at lower frequencies have higher frequency resolution, which means they must also have lower time resolution. There is an inherent trade off between time and ...


0

If the phase is real (0 degrees or 180 degrees) then the spectral component is symmetric around the center of the data vector, like an integer periodic cosine wave. If the phase is imaginary, then the spectral component is anti-symmetric, like an integer periodic sine wave. If the complex FFT result contains non-insignificant values in both the real and ...


0

Sorry, I don't use MATLAB. Your situation is quite explanable. For a single pure tone with a whole number of cycles in the frame, the expecatation is that two bins, a conjugate pair, will be non-zero and the rest of the bins will be zero. The relationship between the signal definition and those bin values using a 1/N normalized DFT is this: $$ S_n = M cos( ...


0

I think that the plot you display does not show the correct answer, what makes me think that is that you inject in your fft a pure sinewave with an initial phase equal to 0. Therefore your plot should display a 0 phase shift for every frequency bins. For exemple, below you can see the phase plot of a pure sine wave with an initial phase shift of 30 degrees. ...


2

Analyzing signals per segments, with proper windowing, is a way to cope with non-stationary in audio samples. With full-size analysis, features can get mixed. Segment-splitting is thus at play in many algorithms (mp3, shazam). The length of window is often a matter of trade-offs, between data information and computing advantages: signal sampling (window ...


0

Equalizing a channel by inverting its frequency response is NOT recommended. This is because only systems that have a minimum phase response (all zeros inside the unit circle) have a stable causal inverse. For example, any channel with leading and trailing echos (most wireless channels) are a mixed phase system so therefore cannot simply be inverted. The ...


1

Since Discrete Fourier Basis Vectors are $2\pi$-Periodic, hence, negative frequencies $-\frac{2\pi k}{N}$ are conventionally represented as $(2\pi - \frac{2\pi k}{N} = \frac{2\pi}{N} (N-k))$. It has nothing to do with Butterfly Structure of FFT Algorithm. The above statement basically means that $-k^{th}$ tone is represented as $(N-k)^{th}$ tone in DFT/FFT. ...


0

The "spikes" that you see are coming from a "half-done" inverse Discrete Fourier Transform (DFT). The main thing to note is that when you specify a filter in the frequency domain (as it is hapenning here), that filter has to "fit" the DFT spectrum ordering too. You conclude (correctly) "I'm splitting the transforms range in ...


0

That sounds like a usual FMCW sonar. It's technically identical to FMCW radar. So, multiply your receive with your transmit signal, you get a signal at the beat frequency, which is proportional to the range. Standard FMCW approaches; there's a wealth of info out there.


0

The fft product alone is not the convolution, but the frequency domain of the convolution. To complete the operation the OP must also take the inverse FFT to get a circular convolution result. $$CONV = \text{ifft}(\text{fft}(a) \text{fft}(b))$$ However, similarity would be determined using correlation not convolution. To do this, simply complex conjugate one ...


1

Fourier transforms possess a form of (in magnitude) shift-invariance, also called time-invariance, or shift property (see Properties of the Fourier Transform-shift properties): "a shift in time corresponds to a phase rotation in the frequency domain": $$F\{x(t−t_0)\}=\exp(−j2πft_0)F\{x(t)\}\,.$$ This property of the continuous Fourier transform has ...


0

Does FFT on the two samples return (roughly) the same shape? Yes, it's "roughly" the same shape Is there a way for me to sync the two samples? Depends a bit on the details. If both have the same sampling clock source but just a constant sampling offset. However if the clocks are not phase locked, than the sampling offset will drift slowly over ...


1

As @hotpaw2 says, the FFT assumes periodic boundary conditions, that is the next point on the right should be equal to the first point on the left. It's not the case in your code because the time $t=10$ is included in your time array. The next point on the right is thus $t=10+dt$ and you get the discontinuity because $y(10+dt) \neq y(0)$. You can fix this by ...


1

In terms of the performance, one only needs to check the receive equations before demodulation/decoding: $y=hx+w$, where $x$ is the signal to demodulate/decode (maybe vector), $h$ is the channel (maybe in frequency domain, and maybe in matrix form), $y$ is the available data (maybe vector), $w$ is the AWGN (maybe vector). If they are the same, then their ...


5

A FFT "butterfly" is the name for an algorithmic structure inside the FFT. It has two complex inputs two complex outputs one complex multiply sum and difference of two complex numbers There are two basic types. The decimation-in-time butterfly does the multiply first $$y_0 = x_0 + x_1 \cdot W$$ $$ y_1 = x_0 - x_1 \cdot W $$ Decimation-in-...


0

In general the filter you want to implement is an infinite impulse response (IIR) filter, unless all poles are at the origin of the complex plane (assuming causality), in which case it is a finite impulse response (FIR) filter. In the general (IIR) case, your suggested method will not result in an exact implementation of the filter. There are two reasons for ...


2

The variable NI in the book is just a typo, it should be N instead (not N*L as in your code). Apart from that, remember that book was written about $25$ years ago, and the code was run on a $33$ MHz $486$ PC. So in order to see some effects on today's computers, you should crank up the value of L. I've modified the code a bit (see below). Now the figure ...


1

The power spectral density (PSD) is a natural measure of the signal's power content with respect to frequency. A central part of non-parametric signal processing is to provide a "best" estimate of the "true" PSD from knowing only one or some "realizations" with finite length. By taking into account the influence of stationary ...


0

Multiplication in the frequency by itself implements circular convolution. With proper zero padding and overlap management this can be extended to perform linear convolution as well. Google "Overlap Add" or "Overlap Save" for more info


3

We can! In your example, $N=4$, and the DFT is real-valued, so you get $X[k]=X[4-k]$, and that's true: $$\begin{align}k=0:\;X[0]&=X[4]=0\\k=1:\;X[1]&=X[3]=0\\k=2:\;X[2]&=X[2]=-4\end{align}$$ Note that by definition the DFT is $N$-periodic, so $X[N]=X[0]$.


3

The reason the Radix-4 FFT is of interest is in the simplicity of multiplying by $\pm j$ in actual implementation. Below shows the Radix-4 4 point DFT core processing element as part of the Radix-4 FFT Butterfly in comparision to the Radix-2 FFT butterfly (with 2 point DFT core processing element) and the resulting decrease in number of operations, ...


4

Please see below diagram to see the Stage 2 and Stage 3 butterflies.


1

First you will need to build the frequency tables for each note scale ex. [B, A, G, F, E, D, C], you will need say what scale you will use to compare with each window pitch, of course you also have to worry that your frequency table includes major or minor chords. But the essence of one basic autotunes works by adjusting to the chromatic scale, In other ...


0

Astronomers are talking about the Rayleigh distance. The (angular) distance between two point sources (stars) where they can be resolved with some robustness using diffraction limited optics: https://courses.lumenlearning.com/physics/chapter/27-6-limits-of-resolution-the-rayleigh-criterion/ This article by Julius Orion Smith discuses spectral interpolation ...


Top 50 recent answers are included