# Calculate FFT from windowed time-based signal

I have a time-based signal (Raw signal) sampled at 6 MHz and need to analyze it in freq. domain. I'm learning DSP and this is very first time I work with DSP. Could you please help to check if this code is correct or not. And I have couple of questions needed to be clarify:

1. I've heard about linear scale and logarithm scale in order to observe the amplitude easier. Could you please explain to me, in this case, how can I get the logarithm scale?

2. for some function in Matlab (for example fft, spectrogram, etc), how can I get the code (just in case I want to change something to adapt my need)?

input=V5k_a100;
N=2048;     L=4096;    Fs=6e6;
spectrumTemp=[];

for index=1:length(input)/L
slice = input(1+(index-1)*L:index*L);
abcd = hann(L) .* slice;
NFFT = 2^nextpow2(N);
spectrumTemp(index, :) = fft(abcd, NFFT)/L;
end

f = [0:NFFT-1]*Fs/NFFT;
freq = f(1:length(f)/2);
time = [0:length(input)/L-1]*L/Fs;
spectrum = spectrumTemp(:, 1:length(f)/2);
mesh(time,freq',abs(spectrum'));

-
If you want verification that the code is correct more information will be required. In particular encountered problems. – Dennis Jaheruddin Dec 27 '12 at 15:44

logspectrum = log(spectrum);
edit unique