フィルターのクリア

How to interpret the frequencies on a symmteric FFT plot.

3 ビュー (過去 30 日間)
John Bach
John Bach 2023 年 11 月 12 日
コメント済み: Star Strider 2023 年 11 月 12 日
Hi there,
I've produced an FFT plot to determine the frequency of vortex shedding from a cylinder. I've done some research and now understand why my plot exhbits perfect symmetry about a central line (as seen in the diagram below), however I'm still unsure of how to interpret this mathematically.
It seems logical to me that this would simply represent a second harmonic, although I'm not sure whether this is true.
Thank you in advance for your help with this.

採用された回答

Star Strider
Star Strider 2023 年 11 月 12 日
You need to use the fftshift function to put the zero frequency (D-C or constant offset) value in the centre. Then, depending on whether the fft vector has even or odd length, the ‘Fv’ (frequency vector) would be:
Fv = linspace(-Fs/2, Fs/2-Fs/length(s), length(s)); % EVEN 'length(s)' (Asymmetric)
Fv = linspace(-Fs/2, Fs/2, length(s)); % ODD 'length(s)' (Symmetric)
where ‘Fs’ is the signal sampling frequency and ‘s’ is the fft vector. You can then determine the frequencies from that. (I always calculate a one-sided fft. It’s easier to interpret.)
  6 件のコメント
John Bach
John Bach 2023 年 11 月 12 日
Thank you for these suggestions, that's extremely useful.
Really apprecaite everyone's help here.
Star Strider
Star Strider 2023 年 11 月 12 日
As always, my pleasure!

サインインしてコメントする。

その他の回答 (1 件)

Paul
Paul 2023 年 11 月 12 日
Hi John,
The very short, and loose, answer to your question is as follows. Suppose we have a signal, like x[n] = cos(2*pi/N*k*n) (k,n and N are integers with k<N, 2*pi/N*k is the "frequency" in rad/sample). x[n] can be expressed as a sum of complex exponentials:
x[n] = cos(2*pi/N*k*n) = exp(1j*2*pi/N*k*n)/2 + exp(1j*(-2*pi/N*k)*n)/2
This is bascially what the FFT does. It determines the coefficients (to within a scale factor), in this case 1/2 and 1/2, that can be used to recononstruct x[n] as a sum of scaled complex exponentials. For a real signal x[n], we'll always have symmetry between the amplitude of the coefficients of the pairs of exponentials that correspond to +2*pi*k/N and -2*pi*k/N. Basically, the original cos has been "split" into two complex exponentials of mirror frequencies.
Because the complex exponential is perodic with period 2*pi, we can add an integer multiple of 2*pi to the second term
x[n] = exp(1j*2*pi/N*k*n)/2 + exp(1j*(2*pi/N*(-k)*n + 2*pi*n))/2
x[n] = exp(1j*2*pi/N*k*n)/2 + exp(1j*(2*pi*(-k/N+1)*n))/2
x[n] = exp(1j*2*pi/N*k*n)/2 + exp(1j*(2*pi/N*(-k+N)*n))/2
Looking at the second term on the right, we see that an equivalent frequency to -2*pi*k/N is 2*pi*(-k+N)/N, which is postive because N > k by assumption. That's the effect you're seeing in the "symmetric" FFT plot.
  1 件のコメント
John Bach
John Bach 2023 年 11 月 12 日
Hi Paul,
Thanks for your repsonse, this is very helpful in understanding why this is the way it is!

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSpectral Measurements についてさらに検索

製品


リリース

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by