i need to get the maximum amplitude in this code but my final answer is wrong
2 ビュー (過去 30 日間)
古いコメントを表示
The data file
i get 28400 as the answer but the answer is wrong plus the question want its to 1 dp so i am fairly certain my code is wrong please help
load('data.mat');
dt=t(2)-t(1);% t vector has equally spaced t so this seprates t values
N=length(t);
F=fft(f,N); %fast fourier transform of f/N
Fshifted=fftshift(F);%place 0 frequency in the centre
Fmag=abs(Fshifted);%magnitude of fshifted
nu_NY=(1/dt)/2;%nquist frequency
nu=linspace(0,nu_NY,N/2+1);%spectrum of frequncy vals associated with FFT frequencies
%adding postive and negative frequncies
F1=Fmag((N/2)+1:N);
F2=Fmag(N/2:-1:1);
a=[F1,0]+[0,F2];
%plotting amplitued vs assoicated frequencies
plot(nu,a)
0 件のコメント
採用された回答
Star Strider
2019 年 4 月 16 日
‘i am fairly certain my code is wrong’
So am I.
Try this:
D = load('Data.mat');
f = D.f;
t = D.t;
dt=t(2)-t(1);% t vector has equally spaced t so this seprates t values
N=numel(t);
F=fft(f)/N; %fast fourier transform of f/N
Fshifted=fftshift(F);%place 0 frequency in the centre
Fmag=abs(Fshifted);%magnitude of fshifted
nu_NY=(1/dt)/2;%nquist frequency
nu=linspace(-nu_NY,nu_NY,N);%spectrum of frequncy vals associated with FFT frequencies
%adding postive and negative frequncies
F1=Fmag((N/2)+1:N);
F2=Fmag(N/2:-1:1);
% a=[F1,0]+[0,F2];
%plotting amplitued vs assoicated frequencies
plot(nu,abs(Fshifted)*2)
[pks,locs] = findpeaks(abs(Fshifted)*2, 'MinPeakHeight',10);
fprintf(1,'Peak Frequencies & Amplitudes:\n\tFrequency\tAmplitude\n')
fprintf(1,'\t%8.4f\t%8.4f\n', [nu(locs); pks])
producing:
Peak Frequencies & Amplitudes:
Frequency Amplitude
-7.9790 14.2000
8.0290 14.2000
My changes are primarily with respect to ‘nu’, although I also correctly scaled the result of your fft call. I added a call to findpeaks (link). (I did not delete parts of your code that I believe to be irrelevant to what you want to do.)
3 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Fourier Analysis and Filtering についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!