2016-12-11 4 views
0

Ich habe an einem Projekt gearbeitet, und ich muss den Maximalwert einer Plot, die ich in PlotlyJS gemacht habe, erhalten, ich muss die Häufigkeit einer WAV-Datei erhalten und die Musiknote zu dieser Frequenz drucken. http://samcarcagno.altervista.org/blog/basic-sound-processing-julia/ Ich habe diesen Beitrag verfolgt, aber das gab Ihnen nur das Spektrogramm der Frequenz. Um die Grundfrequenz zu erhalten, habe ich den Wert von y geändert.Wie erhalte ich den maximalen Wert eines Grundstücks in JULIA?

plot(scatter(;x=freqArray/1000, y=p), 
Layout(xaxis_title="Frecuencia (kHz)", 
     xaxis_zeroline=false, 
     xaxis_showline=true, 
     xaxis_mirror=true, 
     yaxis_title="Intensidad (dB)", 
     yaxis_zeroline=false, 
     yaxis_showline=true, 
     yaxis_mirror=true)) 

That's the plot Bitte helfen Sie mir, ich weiß nicht, wie die Frequenz

+2

'Maximum (freqArray)' nicht helfen? –

+3

Es macht keinen Sinn, über den Maximalwert einer Handlung zu sprechen. Was Sie brauchen, ist der maximale Wert der Daten, die Sie in die Handlung einbringen. –

Antwort

0

Sie zwei gekoppelten Vektoren zu erhalten. enthält den Wert der Intensitäten und freqArray enthält die übereinstimmenden Frequenzen. Ihr Diagramm zeigt eine Sequenz von (x,y) Punkten an, die durch (freqArray[i],p[i]) für alle Indizes i definiert sind.

Sie können indmax(p) verwenden, um den Index zurückzugeben, bei dem den maximalen Wert hat. Dann können Sie nachschlagen, wie hoch die Frequenz ist, indem Sie in diesen Index freqArray indexieren.

julia> p = rand(200); 
     freqArray = 5:5:1000; 

julia> idx = indmax(p) 
114 

julia> p[idx] # this is the maximum value 
0.9968329198539723 

julia> freqArray[idx] # and this is its frequency 
570 
Verwandte Themen