i need to get the maximum amplitude in this code but my final answer is wrong
2 views (last 30 days)
Show older comments
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 Comments
Accepted Answer
Star Strider
on 16 Apr 2019
‘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 Comments
More Answers (0)
See Also
Categories
Find more on Fourier Analysis and Filtering in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!