AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Circular spectrum visualizer

Circular spectrum visualizer

Ein Thema von EWeiss · begonnen am 22. Mär 2019 · letzter Beitrag vom 23. Jun 2019
Antwort Antwort
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
778 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Circular spectrum visualizer

  Alt 23. Mär 2019, 13:56
Log(x) in Visual Basic entspricht ln(x) in Delphi.

Visual Basic Log

Wie oben erwähnt gibt es in VB eine überladene Funktion log(x,Basis), welche uns aber hier nicht weiter interessiert.


Der Autor logarithmiert das Spektrum mit ln().

Problem: Wenn das Spektrum gegen 0 geht, dann geht ln(Spektrum) gegen minus Unendlich.

Der Autor wendet hier einen kleinen "Trick" an, damit dies nicht geschieht.

Er hebt das gemessene Spektrum um 0.0001 an. (Das ist Basteln - keine Mathe)

Er rechnet also nicht ln(Spektrum) sondern ln(Spektrum+0.0001).

Weiter will der Autor eine Funktion, welche für Spektrum=0 den Wert 0 annimmt.

Da ln(0+0.0001) = -9.21034037197618 ist, addiert er nun 9.21034037197618 dazu.

Insgesamt

f(x) = ln( sqrt( Sp_Real^2 + Sp_Imag^2 ) + 0.0001 ) + 9.21034037197618.



Zu: sqrt. Sowohl in Delphi wie in Visual Basic liefert sqrt die Quadratwurzel einer Zahl zurück.

https://docs.microsoft.com/en-us/dot...ramework-4.7.2

Bist du sicher, dass im Original-VB-Code sqr steht? Das macht für mich irgendwie wenig Sinn.

Das Spektrum s besteht ja aus einem Realteil sr und einem Imaginärteil si.
Insgesamt s = sqrt( sr*sr + si*si ).

Wo ist der Link auf den Originalcode in VB?
Michael Gasser
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Circular spectrum visualizer

  Alt 23. Mär 2019, 14:08
Danke Michael für dein Interesse
Es ist mir wichtig das alle Datentypen VB6 via Delphi IO sind damit ich das ausschließen kann.
Dazu Nachher mehr.

Zitat:
Bist du sicher, dass im Original-VB-Code sqr steht? Das macht für mich irgendwie wenig Sinn.
Ja das bin ich im Anhang der Source.
Zitat:
Wo ist der Link auf den Originalcode in VB?
Auf den habe ich im ersten Beitrag verlinkt.. werde ihn aber hier hochladen.

Zitat:
Log(x) in Visual Basic entspricht ln(x) in Delphi.
Ist mir unverständlich warum ihr immer auf .NET verweist...
Es geht hier um VB6 nicht um VB.net das sind 2 paar Schuhe!
Deshalb habe ich auch immer extra VB6 addiert damit das nicht verwechselt wird.
Hier kannst du lesen welche werte bzw. Formeln für LOG\SQR gültig sind. SQRT gibt es nicht unter VB6
Zitat:
Quadratwurzel: SQR
Die Funktion SQR berechnet die positive Quadratwurzel einer nicht-negativen Zahl x. Für negative Argumente wird ein Fehler ausgelöst. Es gilt: SQR(x)^2 = x.
a = SQR(x)
b = a ^ 2
Die Variable b enthält den gleichen Wert wie x.
wenn in Delphi dann so?
Delphi-Quellcode:
a := SQRT(x); // wäre noch zu klären
b := Power(2, a);
Zitat:
Wie oben erwähnt gibt es in VB eine überladene Funktion log(x,Basis), welche uns aber hier nicht weiter interessiert.
Nein gibt es nicht nur zur Richtigstellung! Nochmal VB6 nicht VB.Net

Das ist definitiv falsch weil ich dann Vollausschlag habe wenn keine Musik läuft.
Delphi-Quellcode:
function TSpectrum.Log(x: Real): Real;
begin

   result := ln(x) / ln(10);
end;
gruss

Geändert von EWeiss (19. Jun 2019 um 06:14 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz