-1
$\begingroup$

I thought that the magnitude spectra of real signals was symmetric. When I take the absolute value of the fft of a sine wave the result is not symmetric. There seems to be a peak at the first coefficient causing non symmetry.

When I plot the absolute value of the fft of a cosine wave I see symmetry.

The reason I am asking is because I was working on a project that involved taking the fft of audio data that was known to be real. When we did that, we only used half the spectrum for our analysis because the magnitude spectra of real signals is symmetric.

Specifically, the case I am talking about is when plotting $$x=\sin( 2 \pi n)$$ Then finding the magnitude spectra,

X=abs(fft(x))

The result does not have perfect symmetry.

Is this correct? Can someone clear up my confusion on why I am seeing non-symmetric properties when I view the magnitude spectra of a sine wave?

example:

Here I used matlab,

 n=0:100;
 x=sin(2*pi*n);
 X=abs(fft(x));
 plot(X)

sine fft

As you can see, there is some symmetry but the fft is not completely symmetric. Why is this? sin(2*pi*n) is definitely a real signal.

edit: It seems that matlab does approximations with this sine signal and gives small values when it should be 0 for all n. This may have solved my problem then and be the reason why the fft magnitude did not seem periodic. So question, is there any cases that symmetry does not hold for real signals? Can the 2*pi periodicity of the fft be related to nyquist sampling frequency at all?

What I had thought was going on was something similar to this:

  x= [1 2 3 4]
  X= fft(x);

which gives the result

 X= [10.0000    2.8284    2.0000    2.8284]

which is still not periodic. Which is strange to me because x= [1 2 3 4] is a real signal correct?

$\endgroup$
  • 2
    $\begingroup$ $\sin(2 \pi n) = 0$ for $n = 0, 1, 2, ...$ and the F.T. of $0$ is $0$ which is symmetric. I would recommend providing plots that illustrate the problem you are observing. Are you really inputting zeros and observing a nonzero output after taking the F.T.? $\endgroup$ – hops Jun 20 at 4:32
  • $\begingroup$ In addition to what hops said: The spectrum (Fourier transform) of a sine wave is periodic, no doubt. When you compute the Discrete Fourier transform (via an FFT) of a sampled sine wave, you are not observing the spectrum. You are looking at a finite window (so there is an inherent rectangular windowing function involved) and a finite sampling rate (so there is periodification in the frequency domain involved). If you do things right, this approximation may still be symmetric, but there are all kinds of things that can go wrong. As hops said, please provide a concrete example what you did. $\endgroup$ – Florian Jun 20 at 7:36
  • 1
    $\begingroup$ @Florian um, the (cont.-time) Fourier Transform of a sine is not periodic; it's $\frac1{2j}\left(\delta(f-f_\text{sine})-\delta(f+f_\text{sine})\right)$. $\endgroup$ – Marcus Müller Jun 20 at 7:43
  • $\begingroup$ Of course, I had looked over the fact that $$sin(2*pi*n)$$ is 0 for all n. Matlab was doing approximations with pi and giving me strange results. Question then, is sampling theorem related to the 2*pi periodicity of the fft? If I have the real signal x=[ 1 2 3 4 ] the fft is X=[10.0000 2.8284 2.0000 2.8284], which is still not symmetric... $\endgroup$ – Darklink9110 Jun 21 at 2:06
  • 1
    $\begingroup$ Are you familiar with the indexing in the FFT? This output is also symmetric, when k = 0, you have 10.0, when k = +/- 1 you have 2.8284, and when k = -2 (or +2), you have 2.0... As you can see, this is symmetric around k = 0. This is due to the sequence being real-valued in the time domain, nothing to do with periodicity. $\endgroup$ – hops Jun 21 at 2:12
1
$\begingroup$

Real-valued time-domain signals $x_n$ exhibit conjugate symmetry in the frequency-domain. Let $x_n$ denote $N$ samples of the time-domain signal, then after applying the DFT, we obtain $N$ samples $X_k$ in the frequency domain. For this formulation, conjugate symmetry means that $X_k = X^*_{N-k}$ for $0$ to $N-1$. Conjugate symmetry will become even symmetry under the magnitude operation because $|Y|=|Y^*|$ for any arbitrary complex number $Y$. "Is there any real-valued signal that does not exhibit this symmetry?" The answer is no.

$\endgroup$
0
$\begingroup$

The argument of your function is n * (2*pi) where n is an integer. sin(0), sin(2*pi), ... sin(2*pi*n) will always be 0. Basically, you tried to compute the FFT of an array of zeros... That's why you get an incoherent result.

Try this instead

"n=0:100; x=sin(2*pi*n/10); X=abs(fft(x));"

You will now have 10 samples per period and you will get a nice FFT.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.