Find the nonzero maximum frequency corresponding to FFT graph.

I want to find the maximum corresponding frequency for the ftt graph. The graph shows the maximum frequency at zero frequency, this is not what I want. I am expecting to have a value around 664 Hz.
The codes:
so=dat.data(:,2); %original signal
t=dat.data(:,1); %time
dt=t(2)-t(1);
Fs=1/dt; %sampling frequency
f=linspace(0,Fs,length(t));
%Fourier Transform
SO=fft(so);
SOa=abs(SO);
F_fake=f(find(SOa(1:round(length(SOa)/2))==max(SOa))); % I am getting zero instead of 663.9 Hz.
I want a value which is nonzero. How to eliminate the zero Hz frequency ?
FFT graph.

 채택된 답변

David Goodmanson
David Goodmanson 2023년 4월 27일
편집: David Goodmanson 2023년 4월 27일

0 개 추천

Hi Zahra,
the peak at zero frequency is because your signal does not have average value of zero, but has a DC offset. To eliminate the zero freq peak you can remove the offset by subracting the mean off of the signal. So you can use not fft(signal) but rather fft(signal-mean(signal)). (This assumes that the DC offset is not of interest in this case).

댓글 수: 2

Thank you. Would you please explain more about what does DC offset mean?
DC offset is a bit of a slang term in the sense that it refers to electrical voltage or current signals, not the most general possible signal. Suppose you have a complicated signal and take the fft. The zero frequency term from the fft corresponds to a constant value in the time domain. Now consider a simple example of constant term of value 3 and just one nonzero frequency of amplitude 10. In terms of voltage this is modeled as a 10V cosine signal in series with a 3V battery, 10*cos(2*pi*f) + 3. The cosine term of course has mean value of 0 and the constant term, 3, is called the DC offset.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Paul
Paul 2023년 4월 27일
편집: Paul 2023년 4월 27일
If the DC offset is of interest (or even if it isn't)
[maxSOa,index] = max(SOa(2:end)); % ignores first point a f=0
F_fake = f(index+1)
This approach will find the the frequency corresponding to the first maximum value in SOa(2:end) should there be multiple occurrences of the maximum value.

제품

릴리스

R2023a

질문:

2023년 4월 27일

댓글:

2023년 4월 28일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by