17.11.2011, 02:23 AM
THD klappt jetzt auch
2 Änderungen:
Gesuchte Frequenz = (i+1)*K1
Skalierung mit freq_per_element ergänzt, da die Suche Bins und nicht Frequenzen betrachtet.
Ausgabe bissel formatiert, K1 und Frequenzen mit angezeigt.
Screenshoots: 50Hz Rechteck, mit externem kleinen Proggi generiert.
Hamming
Flat Top
Hier kann das flat top window seine Vorzüge ausspielen und liefert ziemlich exakt die theoretisch erwarteten
1/3 K3, 1/5 K5 und 1/7 K7
Gruß
2 Änderungen:
Gesuchte Frequenz = (i+1)*K1
Skalierung mit freq_per_element ergänzt, da die Suche Bins und nicht Frequenzen betrachtet.
Ausgabe bissel formatiert, K1 und Frequenzen mit angezeigt.
Code:
Dim werte(6)() As Double
For i = 0 To 6
ReDim werte(i)(1) 'werte(0=k1....6=k7)(0=leistung, 1=x-wert)
Next
Dim newF As Int32
Dim thd As Double
werte(0)(0) = (Math.Round(YMax1(0), 4))
werte(0)(1) = YMax1(1) * freq_per_element
For i = 0 To 6
If i > 0 Then
newF = CInt(werte(0)(1) * (i + 1) / freq_per_element)
werte(i) = arr.Get_local_MaxD(tempData1, newF)
werte(i)(1) *= freq_per_element
End If
thd = 100 * Math.Sqrt(werte(i)(0) / werte(0)(0))
myGraphic.DrawString("THD_k" + (i + 1).ToString + ": " + (Math.Round(thd, 4)).ToString("0.00") + "% " + vbTab + "Freq: " + werte(i)(1).ToString("F01"), myFont, Brushes.Red, 40, (i * 20) + 40)
Next
thd = 100 * Math.Sqrt((werte(1)(0) + werte(2)(0) + werte(3)(0) + werte(4)(0) + werte(5)(0) + werte(6)(0)) / werte(0)(0))
myGraphic.DrawString("THD_ges: " + (Math.Round(thd, 4)).ToString("F03") + "%", myFont, Brushes.Red, 40, 200)
Screenshoots: 50Hz Rechteck, mit externem kleinen Proggi generiert.
Hamming
Flat Top
Hier kann das flat top window seine Vorzüge ausspielen und liefert ziemlich exakt die theoretisch erwarteten
1/3 K3, 1/5 K5 und 1/7 K7
Gruß