MATLAB Why Use Log(1+Amplitude) in FFT?

AI Thread Summary
The discussion centers around the use of logarithmic transformations on the amplitude of the Fourier transform of a waveform. The initial command used to calculate amplitude was log(abs(fft(c))), which resulted in a plot that did not account for zero values. The suggestion to use log(1 + abs(fft(c))) was made to avoid issues with taking the logarithm of zero, which is undefined. However, there is debate about the necessity of adding 1, with some participants noting that they typically use log(abs(fft(c))) without issue, often opting for log10 for decibel conversion. Concerns were raised that adding 1 might obscure important information in the data. The purpose of the analysis is to observe the symmetry property of the Fourier transform, which is expected when the input waveform consists of real numbers, as opposed to complex numbers, which would not guarantee symmetry.
McMurry
Messages
11
Reaction score
0
I have run the following command:

c = wavread('sample.wav');
amplitude = log (abs(fft(c)));

and obtained the following plot:

[PLAIN]http://img179.imageshack.us/img179/8733/withoutplusone.jpg

however, i was told to use this instead:

amplitude = log (1+abs(fft(c)));
and obtained the following plot:

[PLAIN]http://img146.imageshack.us/img146/4594/withplusone.jpg

my question is: why do we have to take the log 1 plus amplitude, instead of just the log of amplitude.

thanks.
 
Last edited by a moderator:
Physics news on Phys.org
TheLoser said:
there are 0s :roleeyes:

do you mean that the reason is because we can't log (0)?

is that the only reason we are adding 1 to the log?
thanks.
 
I don't know why you would add 1. I never add 1, and plot log(abs(fft)) all the time (usually I do log10 because I want to get to decibels). If you are worried about zeros, you can always add eps or some other small number. By looking at your plot it is clear the adding 1 is covering up information you may care about. You should ask the person who suggested it to you.

jason
 
May I ask what you are trying to learn from the data? It would help us to answer your question. Looking for peaks in the spectrum? Total noise?
 
hi guys, thanks for the reply.

the purpose is to observe the symmetry property of Fourier transform and also to explain the spikes that is occurring.
 
It's symmetrical because the inputs are real. If the sample.wav contained complex numbers, the output would not (necessarily) be symmetrical.
 

Similar threads

Replies
8
Views
2K
Replies
5
Views
2K
Replies
4
Views
3K
Replies
1
Views
2K
Replies
2
Views
2K
Replies
7
Views
2K
Back
Top