New answers tagged

0

"Normalizing the variance": Since variance is a real number, normalizing it means multiplying the signal with a real number. That doesn't change the phase, ever.


0

For example we have a signal x[]: x[] = [1, 1, 1, 1, 0, 0, 0, 0] We get the DFT of x[] (only magnitude): DFT(x)[] = [4.000, 2.613, 0.000, 1.082, 0.000, 1.082, 0.000, 2.613] And DCT of x[]: DCT(x)[] = [4.000, 2.563, 0.000, -0.900, -0.000, 0.601, -0.000, -0.510] Now, we shift the signal, create new signal y[]: y[] = [0, 0, 1, 1, 1, 1, 0, 0] ...


1

A DCT is identical to a DFT, twice as long, of the input data concatenated with its mirror image. Data concatenated with its mirror results in symmetric data. Since a symmetric vector is strictly even, there are no odd (sine or imaginary) components in the DFT result. Just cosine (or real or even) components. Thus you can reconstruct the original input ...


1

If you were to change the relative phase of some FFT result bins, the place where all the peaks would line up could change, thus representing a time domain shift of some peak. The peaks or transients would be moved to occur earlier or later in the FFT window. Sometimes, an FFT analysis cares about the shape of the time domain waveforms and what time (...


1

Suppose you have a sinusoidal that has a whole number of cycles ($k$) in your DFT frame containing $N$ sample points. It can be parameterized like this: $$ x[n] = A \cos \left( \left( k\frac{2\pi}{N}\right)n + \phi \right) $$ If you take the $1/N$ normalized DFT of this (FFT is a DFT that is computed efficiently), all the bins will be zero except for bins ...


0

phi_start = rand(1,num_tones)*pi-pi/2; The line above illustrates your problem. Phase measurements always need to referenced back to something. An absolute phase measurement without a well defined reference is meaningless. I believe that the method outlined above that you don't measure the absolute phase but the phase of the output relative to the phase of ...


2

You can't design a filter that creates a phase shift that's constant with frequency for real valued input (if that's what you are trying to do). A Hilbert transformer appears to be doing this. However, the problem is, you can't implement a perfect Hilbert transformer since it's non causal with an infinite length impulse response. The tricky part is that ...


0

First off, you should realize that the FFT is just an efficient implementation of the DFT. Power of two sizes are the easiest for it, but modern implementations have slick tricks to do other sizes. Leave that up to the library. The results will be the same. If your peaks are sufficiently well spaced (two or three bins apart) the following article will ...


Top 50 recent answers are included