フィルターのクリア

How to extract phase and amplitude information from FFT?

109 ビュー (過去 30 日間)
Mayank Lakhani
Mayank Lakhani 2015 年 6 月 26 日
コメント済み: Adam 2017 年 7 月 14 日
I am doing signal processing of radar data. I applied butturworth bandpass filter and applied fft to the radar data.I want to know how to extract the phase and amplitude information of radar data so i can add it to my ideal radar simualation and make it non ideal :D . Thanks
load('fb2040'); % loading the data
x = fb2040(3,:);
y_filt = filter(b,a,x); % filtering the received signal
nfft = length(y_filt);
res = fft(y_filt,nfft)/ nfft; % normalizing the fft
f = fs/2*linspace(0,1,nfft/2+1); % choosing correct frequency axes
res = res(1:nfft/2+1);
figure, plot(f,abs(res));
xlabel('Frequency in MHz');ylabel('Amplitude');
return

採用された回答

Adam
Adam 2015 年 6 月 26 日
If you want the phase and amplitude for different frequencies then these are just:
angle( res );
real( res );
or
abs( res );
if you want the magnitude rather than amplitude.
  2 件のコメント
Peter Mbamaluikem
Peter Mbamaluikem 2017 年 7 月 13 日
Hi, Adam what if there are several frequencies and one is to extract the magnitude of one say 60Hz. what will the code be?
Adam
Adam 2017 年 7 月 14 日
'res' in the above code is a vector of results corresponding to the frequencies in 'f' in the original code in the question so just find the 'f' that is closest to 60Hz and take the magnitude of that value rather than the whole vector.

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

その他の回答 (0 件)

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by