-
Notifications
You must be signed in to change notification settings - Fork 0
/
findFrequency.m
47 lines (38 loc) · 1.05 KB
/
findFrequency.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
clear all;
numberOfChannel=1;
numberOfBits=8;
sapleRate=44100;
duration=1; %record blocking time:
while 1
AI = audiorecorder(sapleRate,numberOfBits,numberOfChannel);
disp('Start speaking.')
recordblocking(AI,3);
disp('End of Recording.');
ActualRate=sapleRate;
SamplesPerTrigger=duration*ActualRate;
blocksize=SamplesPerTrigger;
Fs = ActualRate;
data=getaudiodata(AI);
delete(AI)
clear AI
figure(2)
plot(data)
[f,mag] = daqdocfft(data,Fs,blocksize);
figure(1)
plot(f,mag)
grid on
ylabel('Magnitude (dB)')
xlabel('Frequency (Hz)')
title('Frequency Components of Tuning Fork')
[ymax,maxindex0]= max(mag);
% %Finding first harmonic frequency:
mag1=mag(maxindex0+50:2500);
[y1max,max2]=max(mag1);
maxindex1=maxindex0+max2+48;
%Finding second harmonic frequency:
mag2=mag(maxindex1+50:2500);
[y2max,max3]=max(mag2);
maxindex2=maxindex1+max3+48;
fprintf('fundemental frequency is %.1f \n First harmonic frequency is %.1f \n Second harmonic frequency is %.1f\n',maxindex0-1,maxindex1,maxindex2)
disp('________________________________________________________')
end