![]() |
Circular spectrum visualizer
Projekt entfernt..
|
AW: Circular FFT visualizer die 2
Warum nennst du es nicht wie im Original einen "Circular spectrum visualizer"?
Die Fast Fourier Transformation ist doch nur die Methode, um das Spektrum zu erhalten. |
AW: Circular FFT visualizer die 2
Zitat:
Die meisten Leute stellen nur ein VU bzw.. Osci zur Verfügung von daher dachte ich das es erwähnenswert ist. gruss |
AW: Circular spectrum visualizer
Log() in Visual Basic und ln() in Delphi liefern die genau gleichen Werte.
y = ln(x) ist die Umkehrfunktion zu y = e^x. Wenn du die Umkehrfunktion von zum Beispiel y = 10^x benötigst, dann rechnest du y = ln(x)/ln(10) [in Texten wird oft lg(x) geschrieben]; ähnlich: die Umkehrfunktion von y = 2^x lautet y = ln(x)/ln(2) [oft auch als lb(x) geschrieben]. sqrt(x) in Visual Basic und sqrt(x) in Delphi liefern die gleichen Werte. y=sqrt(x) ist die Umkehrfunktion zu y = x^2. sqrt wird zum Beispiel oft verwendet um die Länge eines Vektors zu berechnen. Zum Beispiel v=(3,4) => Länge von v ¦v¦ = sqrt(3*3+4*4) = 5. sqr(x) liefert in Delphi das Quadrat von x also x^2. Beispiel sqr(4)=4*4=16 |
AW: Circular spectrum visualizer
Ich habe rasch in deinen uSpectrum Code geschaut
Du verwendest dort an zwei Orten sqr(), wo wohl eher sqrt() stehen sollte. Du hast an beiden Stellen im Code einen Vektor (SpectrumRealteil,SpectrumImaginärteil) und willst sicher die Länge dieses Vektors bestimmen. |
AW: Circular spectrum visualizer
Zitat:
Möchte mich auch nicht mit fremden Federn schmücken von daher ist der Ursprungsauthor genannt und ein Link zur Original Quelle verlinkt. Aber! Wenn so wie du sagst in VB6 die gleichen werte geliefert werden wie in Delphi.. Warum ist das Ergebnis ein anderes. Mir ging es darum ein neues Beispiel für meine Library zu erstellen und da bot sich seine Visualisierung dafür an. Habe mir aber nicht gedacht das es so schwierig wird das nach Delphi umzusetzen. Rein Mathematisch bin ich ein NOB wenn es um höhere Mathematik geht. Zitat:
Das selbe wie bei Log.. das gibt es unter Delphi nicht und liefert komplett unter schiedlichewerte als der Ersatz dafür wenn richtig LN Zitat:
Deshalb habe ich es in Delphi mit sqrt ersetzt. gruss |
AW: Circular spectrum visualizer
Zitat:
Delphi-Quellcode:
function Log(x: Real): Real;
begin result := ln(x) / ln(10); end; |
AW: Circular spectrum visualizer
Zitat:
Kann ich gerne mal versuchen. Warum gibt es diese Funktion in Delphi nicht? Hmmm.. noch um einiges schlimmer als nur LN. Danach tut sich gar nichts mehr Wenn jemand mitwirken möchte! Ich benötige 100% kompatible DatenType wenn die Visualisierung so aussehen soll wie im Original. Nur wie soll das gehen wenn dort LONG und bei mir DWORD verwendet werden muss. Wäre nett wenn mir jemand zum testen einen gleichlaufenden Sinus Generator Ton hochladen könnte (mp3? ) so im 200Hz spectrum ohne irgendwelche Schwingungen. gruss |
AW: Circular spectrum visualizer
Hab' nochmal etwas gesucht:
Log in VB Zitat:
Wie sieht der Aufruf in Deinem VB-Quelltext aus?
Delphi-Quellcode:
oder
Log(einwert)
Delphi-Quellcode:
oder irgendetwas in dieser Art?
log(einwert,10)
Wenn in VB Log mit zwei Parametern aufgerufen wird, dann könnte das in Delphi so aussehen:
Delphi-Quellcode:
Wenn der Aufruf mit nur einem Parameter erfolgt, müsste eigentlich das Log aus VB dem Ln aus Delphi entsprechen und damit zum gleichen Ergebnis kommen.
function Log(x, b: Real): Real;
begin Result := ln(x) / ln(b); end; |
AW: Circular spectrum visualizer
Danke..
Habe jetzt einen gleichbleibenden Sinuston sinus250hz-10db leider mit leichter Schwingung. Delphi.
Delphi-Quellcode:
VB6
b := (Log(Sqr(Spectrum[i1].r * Spectrum[i1].r + (Spectrum[i1].i * Spectrum[i1].i))
+ 0.0001) + 9.21034037197618) * q1;
Code:
q1 ist immer gleich = 25
b = (Log(Sqr(Spectrum(i1).r * Spectrum(i1).r + Spectrum(i1).i * Spectrum(i1).i) _
+ 0.0001) + 9.21034037197618) * q1 Log.. wie von dir vorgeschlagen.
Delphi-Quellcode:
VB6
function TSpectrum.Log(x: Real): Real;
begin result := ln(x) / ln(10); end;
Code:
Delphi
Public Type Complex
r As Single i As Single End Type Dim Spectrum() As Complex
Delphi-Quellcode:
Unterschied siehe Anhang. (Was aber nicht bedeutet das die Berechnung für Log falsch ist)
TComplex = Record
r: Single; i: Single; end; Spectrum: array of TComplex; Doch sie ist falsch. Schon hart das wenn nichts gespielt wird der Ausschlag des Spektrum bei deiner Berechnung gleich Volllast ist. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:38 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 by Thomas Breitkreuz