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
Seite 4 von 10   « Erste     234 56     Letzte » 
EWeiss
Projekt entfernt..

Geändert von EWeiss (24. Jul 2019 um 04:46 Uhr)
 
EWeiss
 
#31
  Alt 23. Mär 2019, 21:41
Deine Berechnung:
VB Window(3) : 7,673957E-02
Delphi 0,076739571989

7,673957E-02 bedeutet 7,673957 * 10^(-02) = 0,07673957
und dies entspricht dem Wert, den du mit Delphi erhältst.
Warum sind denn dann die Cosinus werte unterschiedlich..

Danke noch für die Info dann scheinen die werte Window(n) identisch zu sein oder nur der eine?

gruss
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins
 
#32
  Alt 23. Mär 2019, 21:42
Habe jetzt mal nur InitHamming Analysiert..
Daten sind wie folgt.
[...]

Wie man sehen kann weichen die Daten extrem von VB6 ab.
Hä? Die sind quasi identisch. Kommst du vll. gerade mit der exponentiellen Notation durcheinander?
unbenannt.png


Zitat:
Habe mich gefragt warum. Das einzige das in frage kommt ist Cosinus "Cos"

Delphi:
Die ersten 10 einträge von Cos() sind 1
von 11 > 18 ist die Value '0,999'

Nun da darf man sich nicht wundern das nichts funktioniert..
Was ist da wieder im argen.

Habe das Minus 1 wieder aktiviert.
gruss
Ich hoffe, der ist in VB6 auch in rad, ansonsten tippe ich wieder auf ein string/Anzeige-Problem
  Mit Zitat antworten Zitat
EWeiss
 
#33
  Alt 23. Mär 2019, 21:49
Zitat:
Ich hoffe, der ist in VB6 auch in rad, ansonsten tippe ich wieder auf ein string/Anzeige-Problem
Wie meinst du das?

Zitat:
Hä? Die sind quasi identisch.
Hmm nach deiner Tabelle zu urteilen eigentlich nicht.
Und genau das kann schon der unterschied sein bei der Visuellen Darstellung.

Zitat:
Kommst du vll. gerade mit der exponentiellen Notation durcheinander?
Nö habe von höherer Mathematik keine Ahnung..
Deshalb bin ich froh das hier einige Helfen um von mir überprüfte Datentypen und Ergebnisse zu bestätigen so das ich sicher sein kann das sie stimmen.
Besonders Michael II Daumen Hoch.

Hmmm..bekomme die Rings nicht ans laufen. Aber wird schon irgendwann.

gruss

Geändert von EWeiss (23. Mär 2019 um 22:00 Uhr)
  Mit Zitat antworten Zitat
TiGü

 
Delphi 10.4 Sydney
 
#34
  Alt 23. Mär 2019, 23:09
Q.e.d.
Das passiert, wenn jemand ohne grundlegende (nix mit höhere) mathematische Kenntnisse versucht, Sachen umzusetzen, ohne sich im geringsten freiwillig fortbilden zu wollen.

Das ist ja nun alles kein Hexenwerk.
Nimm dir zwei, drei Stunden, um dich per Wikipedia und Nachhilfeseiten über die wichtigsten Stichwörter schlau zu machen, sonst wird das hier nur eine Farce.
Exponentialschreibweise...Herr im Himmel.
  Mit Zitat antworten Zitat
EWeiss
 
#35
  Alt 23. Mär 2019, 23:17
Zitat:
Das passiert
Was passiert denn?
Außer das ich Zeit in mein Hobby investiere.

Wenn du doch so über schlau bist im Gegensatz zu mir dann helfe doch bitte hier mit und gut ist.
Eventuell können dann andere etwas davon lernen.

60% deiner Beiträge sind nur darauf aus hier rumzusticheln wieso kannst du es einfach nicht mal lassen?
Mache es doch so wie Michael II der zieht auch nicht über mich her.

PS:
Ach so vergessen.. Am ende zählt das Ergebnis.

gruss

Geändert von EWeiss (23. Mär 2019 um 23:25 Uhr)
  Mit Zitat antworten Zitat
Michael II

 
Delphi 11 Alexandria
 
#36
  Alt 23. Mär 2019, 23:52
Hoi EWeiss

eventuell solltest du deine FFT Funktion testen.

Ich meine damit:
Du hast ja die VB Version (ich habe VB nicht installiert) und die Delphi Version.

Du könntest mal deiner FFT Funktion und der VB Version den gleichen Array of Complex "füttern" und abspeichern was die beiden FFT Funktionen zurück liefern.

Hier findest du ein Onlinetool, mit welchem du deine FFT auch direkt überprüfen kannst:
http://scistatcalc.blogspot.com/2013...alculator.html

Du kannst deiner FFT auch einen kurzen Array von Länge 8 füttern.

Zu FFT:
Eine sehr gute Einführung findest du hier:
http://www.iti.fh-flensburg.de/lang/...en/fft/fft.htm

https://en.wikipedia.org/wiki/Cooley..._FFT_algorithm

Jene, welche schreiben, dass FFT für sie zu einfach ist, sollen doch entweder dir helfen oder aber etwas auf ihrem Mathematik Niveau lesen. Ich empfehle hier Artins wunderbares kleines Büchlein zur Galois Theorie oder vielleicht etwas Neueres; zum Beispiel aus dem Gebiet der Algebraischen Topologie, Andrew Wiles Beweis zum grossen Satz von Fermat. Viel Spass.
Michael Gasser
  Mit Zitat antworten Zitat
EWeiss
 
#37
  Alt 23. Mär 2019, 23:59
Zitat:
Jene, welche schreiben, dass FFT für sie zu einfach ist
Es ist von jeher eines der schwierigsten Mathematischen Berechnungen die ich für meine Bereiche kenne.
Ich bin wenigstens noch so ehrlich und gebe zu das ich es nicht beherrsche und versuche hier nicht den Klugscheißer herauszulassen.
Sorry für das harte Wort.

Dabei habe ich ein paar seiten vorher noch geschrieben das ich mit meinen 61 Jahren keinen Bock mehr darauf habe mich in solcher Materie einzuarbeiten
Destotrotz hindert es mich nicht daran es in irgendeiner weise umzusetzen.

Tut mir leid das ich kein Mathegenie bin Herr TiGü wie auch immer.

Zitat:
eventuell solltest du deine FFT Funktion testen.
Ich kann es nur anhand von vergleichen testen wie gesagt Ich beherrsche es nicht.

gruss

Geändert von EWeiss (24. Mär 2019 um 00:02 Uhr)
  Mit Zitat antworten Zitat
Michael II

 
Delphi 11 Alexandria
 
#38
  Alt 24. Mär 2019, 01:26
Unbedingt korrigieren:

procedure TSpectrum.FFT( [B]var[/B] Dat: array of TComplex ); (Weil var fehlte rechnete FFT für die Katz und dein Programm stellte die gemessenen Stützpunkte der Tonkurve dar und nicht wie gewollt das Spektrum.)


Deine FFT Prozedur könntest du so testen:

Delphi-Quellcode:
procedure TSpectrum.FFT(Dat: array of TComplex);
var
  i, j, n, K , io, ie, in_, nn: Integer;
  u, tp, tq, w: TComplex;
  sr: Single;

begin
  if not FFTInit then
  begin
    InitFFT;
    FFTInit := True;
  end;

  // zum Beispiel durch Überschreiben von Dat durch cos(x)
  for i := 0 to FFFTSize -1 do
  begin
    h[i].r := cos(i/FFFTSize*2*pi);
    h[i].i := 0;
  end;

Setze einen Breakpoint am Ende von FFT. Prüfe, ob FFT Dat[1].r = Date[FFFTSize-1].r = 0.5 und Dat[]=0 für alle anderen Werte.
Michael Gasser
  Mit Zitat antworten Zitat
EWeiss
 
#39
  Alt 24. Mär 2019, 01:32
Zitat:
Unbedingt korrigieren:
Werde ich sofort tun.. Danke.

EDIT:
Hat aber ein sehr seltsames verhalten.
Hast du das mal selbst versucht?

Verstehe jetzt nicht wie du das meinst

einfach
Delphi-Quellcode:
  for i := 0 to FFFTSize -1 do
  begin
     Dat[i].r := cos(i/FFFTSize*2*pi);
     Dat[i].i := 0;
  end;
einfügen und dann normal durchlaufen lassen?
Oder dahinter ein Exit um aus der Funktion zu springen.

gruss

Geändert von EWeiss (24. Mär 2019 um 01:51 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

 
Delphi 7 Professional
 
#40
  Alt 24. Mär 2019, 09:25
Zitat:
Ich hoffe, der ist in VB6 auch in rad, ansonsten tippe ich wieder auf ein string/Anzeige-Problem
Wie meinst du das?
Die Ausgabe der Zahlen erfolgte in Delphi mit 12 Nachkommastellen und in VB mit 7. D. h.: Bei der Ausgabe werden die weiteren Nachkommastellen auf- oder abgerundet.
Bzw. bei
Zitat:
Delphi:
Die ersten 10 einträge von Cos() sind 1
von 11 > 18 ist die Value '0,999'
wird die Anzeige auf drei Nachkommastellen gerundet.

Das die ersten 10 Werte bei Delphi in der Ausgabe als 1 erscheinen, liegt daran, dass sie sich erst ab der vierten Nachkommastelle unterscheiden. Die vierte und folgende Nachkommastellen werden bei der Ausgabe aber auf drei Nachkommastellen gerundet. Diese Rundung führt dazu, dass die Werte nicht mehr unterscheidbar sind.
Bei derartigen Zahlen, die sich nur marginal unterscheiden, führt die Ausgabe häufig zu einer fehlerhaften Anzeige der Werte. Die tatsächlichen Werte in den Variabeln sind jedoch korrekt.

Hier mal ein Pascalscript und seine Ausgabe. Hier wird recht gut deutlich, was mit
Zitat:
ansonsten tippe ich wieder auf ein string/Anzeige-Problem
gemeint ist:
Delphi-Quellcode:
program Test;
const
  pi = 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912;
var
        i : Integer;
        x : Double;
        n : Double;
        FFFTSize : Integer;
        sl : TStringList;
begin
  sl := TStringList.Create;
  FFFTSize := 2048;
  for i := 0 to 10 do begin
    n := i;
    x := 0.53836 - 0.46164 * Cos(6.28318530717959 * n / (FFFTSize - 1));
    sl.Add(Format('%1.18f - %1.3f',[x,x]));
  end;
  sl.Add('');
  for i := 0 to FFFTSize -1 do begin
    n := i;
    x := cos(n / FFFTSize * 2.0 * pi);
    sl.Add(Format('%.4d - %1.18f - %1.3f - %1.18f - %1.3f',[i,x,x, pi,pi]));
  end;
  sl.SaveToFile('String_Anzeige-Problem.txt');
  sl.Free;
end.
Ein Auszug aus dem Ergebnis, das sich vollstänig in der anhängenden Datei befindet:
Code:
0,076719999999999949 - 0,077
0,076722174688946714 - 0,077
0,076728698735298086 - 0,077
0,076739572077587136 - 0,077
0,076754794613369869 - 0,077
0,076774366199225946 - 0,077
0,076798286650760166 - 0,077
0,076826555742603994 - 0,077
0,076859173208418010 - 0,077
0,076896138740894182 - 0,077
0,076937451991758771 - 0,077

0000 - 1,000000000000000000 - 1,000 - 3,141592653589793280 - 3,142
0001 - 0,999995293809576192 - 1,000 - 3,141592653589793280 - 3,142
0002 - 0,999981175282601088 - 1,000 - 3,141592653589793280 - 3,142
0003 - 0,999957644551963904 - 1,000 - 3,141592653589793280 - 3,142
0004 - 0,999924701839144448 - 1,000 - 3,141592653589793280 - 3,142
0005 - 0,999882347454212608 - 1,000 - 3,141592653589793280 - 3,142
0006 - 0,999830581795823360 - 1,000 - 3,141592653589793280 - 3,142
0007 - 0,999769405351215232 - 1,000 - 3,141592653589793280 - 3,142
0008 - 0,999698818696204288 - 1,000 - 3,141592653589793280 - 3,142
0009 - 0,999618822495178624 - 1,000 - 3,141592653589793280 - 3,142
0010 - 0,999529417501093120 - 1,000 - 3,141592653589793280 - 3,142
0011 - 0,999430604555461760 - 0,999 - 3,141592653589793280 - 3,142
0012 - 0,999322384588349568 - 0,999 - 3,141592653589793280 - 3,142
0013 - 0,999204758618363904 - 0,999 - 3,141592653589793280 - 3,142
0014 - 0,999077727752645376 - 0,999 - 3,141592653589793280 - 3,142
0015 - 0,998941293186856832 - 0,999 - 3,141592653589793280 - 3,142
0016 - 0,998795456205172352 - 0,999 - 3,141592653589793280 - 3,142
0017 - 0,998640218180265216 - 0,999 - 3,141592653589793280 - 3,142
0018 - 0,998475580573294720 - 0,998 - 3,141592653589793280 - 3,142
0019 - 0,998301544933892864 - 0,998 - 3,141592653589793280 - 3,142
0020 - 0,998118112900149120 - 0,998 - 3,141592653589793280 - 3,142
0021 - 0,997925286198595968 - 0,998 - 3,141592653589793280 - 3,142
0022 - 0,997723066644191616 - 0,998 - 3,141592653589793280 - 3,142
0023 - 0,997511456140303488 - 0,998 - 3,141592653589793280 - 3,142
0024 - 0,997290456678690176 - 0,997 - 3,141592653589793280 - 3,142
0025 - 0,997060070339483008 - 0,997 - 3,141592653589793280 - 3,142
...
1525 - -0,033741171851377760 - -0,034 - 3,141592653589793280 - 3,142
1526 - -0,030674803176636486 - -0,031 - 3,141592653589793280 - 3,142
1527 - -0,027608145778966163 - -0,028 - 3,141592653589793280 - 3,142
1528 - -0,024541228522912387 - -0,025 - 3,141592653589793280 - 3,142
1529 - -0,021474080275469286 - -0,021 - 3,141592653589793280 - 3,142
1530 - -0,018406729905805165 - -0,018 - 3,141592653589793280 - 3,142
1531 - -0,015339206284988122 - -0,015 - 3,141592653589793280 - 3,142
1532 - -0,012271538285719624 - -0,012 - 3,141592653589793280 - 3,142
1533 - -0,009203754782060083 - -0,009 - 3,141592653589793280 - 3,142
1534 - -0,006135884649154417 - -0,006 - 3,141592653589793280 - 3,142
1535 - -0,003067956762965594 - -0,003 - 3,141592653589793280 - 3,142
1536 - -0,000000000000000184 - 0,000 - 3,141592653589793280 - 3,142
1537 - 0,003067956762966115 - 0,003 - 3,141592653589793280 - 3,142
1538 - 0,006135884649154048 - 0,006 - 3,141592653589793280 - 3,142
1539 - 0,009203754782059716 - 0,009 - 3,141592653589793280 - 3,142
1540 - 0,012271538285720144 - 0,012 - 3,141592653589793280 - 3,142
1541 - 0,015339206284987754 - 0,015 - 3,141592653589793280 - 3,142
1542 - 0,018406729905804797 - 0,018 - 3,141592653589793280 - 3,142
1543 - 0,021474080275469805 - 0,021 - 3,141592653589793280 - 3,142
1544 - 0,024541228522912022 - 0,025 - 3,141592653589793280 - 3,142
1545 - 0,027608145778965795 - 0,028 - 3,141592653589793280 - 3,142
1546 - 0,030674803176637005 - 0,031 - 3,141592653589793280 - 3,142
1547 - 0,033741171851377402 - 0,034 - 3,141592653589793280 - 3,142
...
2022 - 0,996820299291165824 - 0,997 - 3,141592653589793280 - 3,142
2023 - 0,997060070339483008 - 0,997 - 3,141592653589793280 - 3,142
2024 - 0,997290456678690176 - 0,997 - 3,141592653589793280 - 3,142
2025 - 0,997511456140303488 - 0,998 - 3,141592653589793280 - 3,142
2026 - 0,997723066644191616 - 0,998 - 3,141592653589793280 - 3,142
2027 - 0,997925286198595968 - 0,998 - 3,141592653589793280 - 3,142
2028 - 0,998118112900149120 - 0,998 - 3,141592653589793280 - 3,142
2029 - 0,998301544933892736 - 0,998 - 3,141592653589793280 - 3,142
2030 - 0,998475580573294720 - 0,998 - 3,141592653589793280 - 3,142
2031 - 0,998640218180265216 - 0,999 - 3,141592653589793280 - 3,142
2032 - 0,998795456205172352 - 0,999 - 3,141592653589793280 - 3,142
2033 - 0,998941293186856832 - 0,999 - 3,141592653589793280 - 3,142
2034 - 0,999077727752645376 - 0,999 - 3,141592653589793280 - 3,142
2035 - 0,999204758618363904 - 0,999 - 3,141592653589793280 - 3,142
2036 - 0,999322384588349568 - 0,999 - 3,141592653589793280 - 3,142
2037 - 0,999430604555461760 - 0,999 - 3,141592653589793280 - 3,142
2038 - 0,999529417501093120 - 1,000 - 3,141592653589793280 - 3,142
2039 - 0,999618822495178624 - 1,000 - 3,141592653589793280 - 3,142
2040 - 0,999698818696204288 - 1,000 - 3,141592653589793280 - 3,142
2041 - 0,999769405351215232 - 1,000 - 3,141592653589793280 - 3,142
2042 - 0,999830581795823360 - 1,000 - 3,141592653589793280 - 3,142
2043 - 0,999882347454212608 - 1,000 - 3,141592653589793280 - 3,142
2044 - 0,999924701839144448 - 1,000 - 3,141592653589793280 - 3,142
2045 - 0,999957644551963904 - 1,000 - 3,141592653589793280 - 3,142
2046 - 0,999981175282601088 - 1,000 - 3,141592653589793280 - 3,142
2047 - 0,999995293809576192 - 1,000 - 3,141592653589793280 - 3,142
Angehängte Dateien
Dateityp: zip String_Anzeige-Problem.zip (28,5 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
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 01:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz