Einzelnen Beitrag anzeigen

LLiinnuuxx

Registriert seit: 11. Jan 2006
Ort: Rickelrath
3 Beiträge
 
Delphi 3 Professional
 
#5

Re: Frequenz von Tönen über Mikrofon ermitteln?

  Alt 24. Jan 2008, 23:29
Ich schließe mich hier mal an.
habe alles vorangehende gelesen und auch umgesetzt.
Nur sind mir die Frequenzen zu ungenau die dort ausgegeben werden. Sie sind ja meistens ohne Nachkommastellen (eine würde mir da eigtl schon reichen) und was noch viel schlimmer ist nicht auf das Herz genau sondern auf 5 Herz kann man das irgendwie optimieren?

Was mich wundert ist das es nicht immer Frequenzen sind die durch 5 teilbar sind sondern manchmal auch lange Nachkommawerte auftauchen aber halt nur sehr selten ... :-/ warum?


MfG LLiinnuuxx

PS nochmal ein wenig Quellcode:
Delphi-Quellcode:
//Quellcode aus dem Beispiel übernommen

procedure [b]MeasureFrequency [/b](var LocWaveRecord : TWaveRecord);
  var
    Channel,i,j : word;
    Freq : extended;
  begin
    with LocWaveRecord do begin
      for Channel := Le to Ri do begin
        j := 0;
        for i := 1 to BufferBlocks-1 do begin
          if ((StereoBuffer[i-1,Channel] <= 0)
          and (StereoBuffer[i,Channel] > 0))
            then j := Succ(j);
        end;
        Freq := j*cSampleRate/BufferBlocks;

//Mittelwertbilden wird nicht benötigt wurde daher nicht aus dem beispiel übernommen
        if j>2 then
        if Channel = Le then Frequency.LeftChannel:=Freq else Frequency.RightChannel:=Freq;
      end;
    end;
  end;
  Mit Zitat antworten Zitat