Veränderter Sinus |
24.12.2005, 23:59 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Veränderter Sinus Ich würde gerne wissen, ob es möglich ist aus einem normalen "Sinus" http://img527.imageshack.us/img527/1278/sinus0ac.jpg so etwas zu machen? http://img527.imageshack.us/img527/9096/newsinus3ix.jpg Also, ist es möglich durch Addieren von gewissen "Sinusen" (quasi wie bei Fourier) zu solch einem Ergebnis zu kommen? Oder bedarf es da anderer mathematischer Mittel? Kann mir da einer helfen? Danke mfg James |
||||||||||
25.12.2005, 00:16 | sqrt(2) | Auf diesen Beitrag antworten » | ||||||||
Eine brauchbare Fourierreihe hat das Ding mit Sicherheit. Wenn du mir ein paar Werte gibst, mach ich mal eine DFT. |
||||||||||
25.12.2005, 00:55 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Naja, es handelt sich dabei einfach um die Ausgabe eines Software-Synthesizers.. Ich meinte die Frage auch eher generell, was man zu z.B einem sin(x) addieren muss, um zu solch einer "Form" zu kommen... Aber der Ton war ein d4 (295Hz)... Deshalb könntest du eventuell nehmen... |
||||||||||
25.12.2005, 02:39 | sqrt(2) | Auf diesen Beitrag antworten » | ||||||||
Dann vermute ich, dass hier eine Sägezahnschwingung mit weniger stark abfallender Flanke auf eine Sinusschwingung addiert wurde.
Zumal sich jede "vernünftige" funktion als Reihe von Sinusschwingungen darstellen lässt, ist "mehr Sinusschwingungen" immer richtig.
Interessant für mich wären konkrete Funktionswerte. |
||||||||||
25.12.2005, 13:17 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Leider wäre es mir durch äußerst komplizierte messungen möglich funktionswerte aus dem Graphen zu bestimmen.. Sind konkrete Funktionswerte denn für eine DFT unabdiglich? PS: Gibt es denn Programme, welche mir aus einem Signal (per Microphon) eine fourier Analyse machen, so dass ich dann einen konkreten Funktionsterm erhalte: z.b f(t)=sin(t)+0.5n(2t)+... Geht das? |
||||||||||
25.12.2005, 14:14 | sqrt(2) | Auf diesen Beitrag antworten » | ||||||||
Ja.
Ja, zum Beispiel Sonogram (plattformunabhängig), andere findest du hier. (Zum Aufnehmen eines Signals kannst du Audacity (auch plattformunabhängig) verwenden.)
So direkt nicht, aber fast. |
||||||||||
Anzeige | ||||||||||
|
||||||||||
25.12.2005, 17:18 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Hm, diese beiden Programme habe ich schon vorher probiert... Man erhält halt eine Frequenzanalyse, so dass man die einzelnen Frequensmaxima visualisiert bekommt... Bei Audacity sieht man noch die dBA-Angabe (also Amplitude) jeweils zur Frequenz... Bei Sonogram gibt es diese Anzeige nicht... Screenshot: http://www.dfki.de/~clauer/sonogram/Images/SonoWin.jpg Die "Fast Fourier View" liefert ja keine konkreten Zahlenwerte für die Amplitude... Ja und wie kann ich dann aus dieser Analyse die Funktionskurve "berrechnen"? Einfach die Sinuse mit den Frequenzen aufaddieren und jeweils davor den Amplitudenwert? |
||||||||||
25.12.2005, 17:54 | sqrt(2) | Auf diesen Beitrag antworten » | ||||||||
Das brauchst du ja auch.
Echt? Das ist mir neu. In Version 1.2.4b gibt's das jedenfalls nicht.
Wichtig ist ja das Verhältnis zwischen den Frequenzen.
Ja. |
||||||||||
25.12.2005, 19:35 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Einfach auf "Analyse"->Spektrum (Frequenzanalyse) klicken...
Ja und wie bekomme ich in Sonogram ein exaktes Verhältnis? Ein manuelles Ablesen ist bei der Skala doch total ungenau... |
||||||||||
25.12.2005, 19:52 | sqrt(2) | Auf diesen Beitrag antworten » | ||||||||
Oh... der Menüpunkt ist mir bisher komplett entgangen, dabei verwende ich das Programm jetzt ... frag mich nicht, wie lange...
Ja und wie bekomme ich in Sonogram ein exaktes Verhältnis? Ein manuelles Ablesen ist bei der Skala doch total ungenau...[/quote] Jetzt, da ich diese Funktion aus Audacity kenne: Warum nimmst du nicht die? Die Maxima werden quasi automatisch ausgewählt und die Werte in dB (übrigens nicht dB(A), den Bewertungsfilter könnten wir auch gar nicht gebrauchen...) kannst du via in PCM-Einheiten umrechnen (Werte aus [0,1], 1 ist Clipping-Grenze). Kannst du eigentlich das entsprechende Soundfile irgendwo hochladen? Es würde mich interessieren, wie es klingt... |
||||||||||
25.12.2005, 20:13 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Ich habe mir gedacht, dass Sonogram professioneller/besser ist... Ich bekomme z.B bei Audacity für das erste a 453Hz und bei Sonogram 430Hz.... Hier mal die Datei (Ton=a5): http://www.deadeternity.de/filehosting/a3.wav |
||||||||||
25.12.2005, 20:28 | sqrt(2) | Auf diesen Beitrag antworten » | ||||||||
Auf jeden Fall ist es instabiler...
Die genaue Frequenz ist eigentlich unerheblich, wichtig ist nur zu wissen, die wievielte Oberschwingung es ist. Dein Ton übrigens sollte weder a5 noch a3 sein (wie die Datei heißt), sondern a4... |
||||||||||
25.12.2005, 20:41 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Falls du damit meinst, dass das 1.Maximum ein a4 ist, muss ich mich entschuldigen, denn der Ton den ich gespielt habe war kein a5 sondern schon ein a4... |
||||||||||
25.12.2005, 20:47 | sqrt(2) | Auf diesen Beitrag antworten » | ||||||||
Ja, das ist mir auch aufgefallen und ich habs daher wegediert -- hätte ich wohl nicht machen sollen. Ich komme übrigens auf ein ganz brauchbares Ergebnis... |
||||||||||
25.12.2005, 21:22 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Leider bekomme ich nun einen solchen graph, der nicht ganz symmetrisch ist: http://img319.imageshack.us/img319/7162/unbenannt4oy.jpg Funktionsgleichung: 2.511886432·SIN(2·pi·452·x) + 0.354813389·SIN(2·pi·886·x) + 0.158489319·SIN(2·pi·1323·x) + 0.063095734·SIN(2·pi·1761·x) + 0.028183829·SIN(2·pi·2196·x) + 0.006309573445·SIN(2·pi·2632·x) + 0.008912509381·SIN(2·pi·3072) Hast du da da ähnliches festgestellt? Und was könnte der Grund sein? |
||||||||||
25.12.2005, 21:39 | sqrt(2) | Auf diesen Beitrag antworten » | ||||||||
Was du da siehst, ist eine Schwebung, die daraus resultiert, dass die Frequenzen deiner Schwingungen nicht alle ganzzahlige Vielfache der Grundschwingung sind. Wie ich schon gesagt habe, sind die genauen Frequenzen der Schwingungen weniger wichtig: wir wissen, welche Frequenzen wir brauchen, nämlich . |
||||||||||
25.12.2005, 21:52 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Ah ok dankeschön...Jetzt passt der Graph... Du hast mir echt weitergeholfen... |
||||||||||
25.12.2005, 23:00 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Eine letzte Frage noch: Da ich ja nun eine diskrete Funktion habe... Könnte man denn nun das was mir Audacity ausgegeben hat in einer Funktion darstellen (die Frequensanalyse)..? Ist das mit ein er DFT möglich? Wie würde denn die Funktion lauten!? |
||||||||||
25.12.2005, 23:37 | sqrt(2) | Auf diesen Beitrag antworten » | ||||||||
Hast du nicht, deine Funktion ist kontinuierlich.
Als du das Signal mit Audacity analysiert hast, hat dieses eine DFT (Diskrete Fouriertransformation) gemacht und zwar mit dem FFT-Algoritmus (Fast Fourier Transform). Mit einer Fouriertransformation lassen sich beliebige Signale in den Frequenzbereich transformieren. Für ganz bestimmte Signale lässt sich auch eine Funktion angeben. Ich wusste über die Funktion, die du gesucht hast, eine wichte Sache: Sie ist periodisch. Periodische Signale lassen sich als Summe abzählbar unendlich vieler Sinusfunktionen darstellen, die ganzzahlige Vielfache der Frequenz der Grundschwingung als Frequenz haben. Damit ließ sich ein relativ genaues Frequenzspektrum erstellen, das du ja auch in Zahlenwerten hast. Um eine Fouriertransformierte (also quasi das Frequenzespektrum) als Funktionsvorschrift angeben zu können, muss man aber die Funktion, die man analysiert, genau kennen. Das Signal, das du Audacity zum Analysieren gegeben hast, erfüllt diese Bedingung nicht, denn es enthält Hintergrundgeräusche (deinen Rechnerlüfter zum Beispiel) und außerdem ein unvermeidbares Grundrauschen. Alles, was man also machen könnte, ist dir einen großen Haufen an Frequenz-Amplitude-Paaren vor die Füße zu werfen. Mehr als damit ein Schaubild zu erstellen, wie Audacity das gemacht hat, wirst du dann aber sowieso nicht können. |
||||||||||
26.12.2005, 00:23 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Ich meinte eher, ob ich aus der von mir ermittelten Funktion: (Jetzt mal ohne "angepasster" Frequenz) f(x) = 2.511886432·SIN(2·pi·452·x) + 0.354813389·SIN(2·pi·886·x) + 0.158489319·SIN(2·pi·1323·x) + 0.063095734·SIN(2·pi·1761·x) + 0.028183829·SIN(2·pi·2196·x) + 0.006309573445·SIN(2·pi·2632·x) + 0.008912509381·SIN(2·pi·3072·x) ...ob ich daraus mithilfe einer Fourier-Transformation wieder ein Frequenz-Spektrum ermitteln kann...? Das müsste doch möglich sei, oder? Also eine Funktion g(x), die wie in Audacity ein Spektrum darstellt... Ich hab mir die Definitionen auf Wikipedia schon reingezogen, aber aufgrund mangelnder Beispiele noch nicht wirklich verstanden... Deshalb wäre es nett, wenn du, wenn es nicht zu viel Aufwand ist, die Lösung (g(x)) angeben könntest, dann kann ich es vielleicht besser nachvollziehen. |
||||||||||
26.12.2005, 00:45 | sqrt(2) | Auf diesen Beitrag antworten » | ||||||||
Dass das aber jetzt die falsche mit der Schwebung ist, weißt du aber?
Ja, und die Fouriertransformtierte zu berechnen ist reichlich sinnlos -- du kannst das Frequenzspektrum direkt aus der Funktionsvorschrift ablesen, siehe Anhang. |
||||||||||
26.12.2005, 01:10 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Ja.
Auch das ist mir klar, es würde mich aber trotzdem mal interessieren, wie exakt die Funktion dann mit der Audacity übereinstimmt... Ich würde das auch gerne als Beispiel nutzen um die Fourier-Transformation aus mathematischer Sicht her besser zu vertstehen. Denn mir ist hier nicht klar, was man für i und w nimmt... |
||||||||||
26.12.2005, 01:14 | sqrt(2) | Auf diesen Beitrag antworten » | ||||||||
und ist die imaginäre Einheit. Da du anscheinend keine komplexen Zahlen kennst, solltest du noch nicht versuchen, dich mit der Fouriertransformation auseinanderzusetzen. Fourier-Reihen sind ohnehin ein sinnvollerer Einstieg. |
||||||||||
28.12.2005, 19:14 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Ich hatte jetzt erst Zeit mir das anzuschauen: Interresanter Artikel! EIne Frage noch: Ich hab bei der Frequenzanalyse in Audicy eine Einstellungsmöglichkeit, wo ich 128, 256, 512, 1024, 2048, .... auswählen kann. Weißt du was diese Funktion bewirkt, bzw. wofür |
||||||||||
28.12.2005, 20:16 | sqrt(2) | Auf diesen Beitrag antworten » | ||||||||
Das dürfte die Blocklänge der FFT sein. Je größer sie ist, umso genauer ist die Frequenzanalyse, umso länger dauert sie aber (und du musst mindestens so viele Samples zur Analyse ausgewählt haben, wie die Blocklänge angibt). |
||||||||||
30.12.2005, 13:28 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Hm...Ich versteh das nicht... jetzt hab ich als Ton ein A2 genommen... Dann in Audacity die Fourier-Analyse gemacht und ausgewertet... Ich bekomme aber nicht den selben Graph, wie ich ihn in Audacity sehe... Beim Aufstellen der Gleichung hab ich [latex]n*f_{a2}=n*110Hz[/latex genommen... Woran liegt das? So sollte er sein: http://img510.imageshack.us/img510/981/audacity8lm.jpg Das bekomme ich nach Auswertung der FFT http://img510.imageshack.us/img510/4963/fourier5mv.jpg Hier der Ton als .wav-File.: http://www.deadeternity.de/filehosting/02.wav |
||||||||||
30.12.2005, 14:15 | sqrt(2) | Auf diesen Beitrag antworten » | ||||||||
Diese Schwingung ist nicht nett... Sie ist zwar periodisch, aber nicht symmetrisch, das heißt, man muss auch im Phasenraum arbeiten. Spätestens jetzt kommt man um komplexe Zahlen nicht mehr herum. Außerdem hat sie bei ein Minimum und neben den Oberschwingungen, die solche von (also d2) zu sein scheinen, gibt es noch zwei Unterschwingungen der Frequenzen (g1) und (g#0). Wozu brauchst du diese Funktionen eigentlich? Eigentlich wäre es sinnvoller, die Schaltung des Synthesizers zu überprüfen (es ist ja ein Software-Synthesizer) als hier aufwändiges Reverse-Engineering zu betreiben. |
||||||||||
30.12.2005, 16:28 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Oh sorry, ich hab die falsche Datei hochgeladen (blöde Benennung) Hier is die richtige für ein A2: http://www.deadeternity.de/filehosting/06.wav Die vom letzten Post war ein D2... Das mit dem Software-Synthesizer war nur ein Beispiel, die jetzige Schwingung stammt von einer Orgel... Es wäre echt nett, wenn du mir bei der Herleiung der Gleichung behilflich sein könntest... |
||||||||||
30.12.2005, 17:23 | sqrt(2) | Auf diesen Beitrag antworten » | ||||||||
Wie gesagt, da hier nicht nur der Frequenzraum, sondern auch der Phasenraum interessant sind, hilft uns Audacity auch nicht so viel weiter. Ich denke, ich werde selbst zum Compiler greifen müssen, und das kann etwas dauern. |
||||||||||
30.12.2005, 19:06 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Hm, das ganze wurde dann doch komplizierter als ich dachte... Noch als Versändnisfrage: Der Klirrfaktor berrechnet sich ja folgendermaßen: k=\sqrt{\frac{\bar{U_2}^2+\bar{U_3}^2+\ldots}{\bar{U_1}^2+\bar{U_2}^2+\bar{U_3}^2+\ldots}} Kann ich dann hier nicht einfach die umgerrechneten Amplituden Werte aus Audicy verwenden? --------------------------------zusammengefügt von 20_Cent---------------------------- argh, ich sollte mich registrieren... ich meinte natürlich: |
||||||||||
30.12.2005, 19:17 | sqrt(2) | Auf diesen Beitrag antworten » | ||||||||
Das kannst du, das ergibt aber eigentlich nur Sinn, wenn du eine reine Sinusschwingung untersuchst, die du vorher durch einen Schaltkreis gejagt hast. |
||||||||||
30.12.2005, 19:58 | sqrt(2) | Auf diesen Beitrag antworten » | ||||||||
Mein schell zusammengeschriebener Hack hat für deine letzte Schwingung folgendes ergeben:
... was sich auf die Funktionsvorschrift mit der Grundschwingungsfrequenz bezieht. Außerdem ist . |
||||||||||
30.12.2005, 20:46 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Danke, der Graph passt perfekt... Da ich das im Rahmen einer Arbeit für weitere Töne genauso machen muss, würde mich interessieren, wie du denn auf die Lösung gekommen bist? Gibt es da weitere Programme? Oder muss man das "per Hand" machen? |
||||||||||
30.12.2005, 21:13 | sqrt(2) | Auf diesen Beitrag antworten » | ||||||||
Ich hab mir ein 49-zeiliges Java-Programm geschrieben, das rohes 16 bit PCM liest, eine DFT macht und das Ergebnis gnuplot-fähig aufbereitet. Man kann sich aus dem Plot die Maxima heraussuchen und dann die entsprechenden Zeilen aus den Plotdaten verwenden. Das Programm hat nur ein paar Schwächen: Es ist komplett undokumentiert, es ist langsam, der Quellcode ist hässlich und ich bin mir nicht sicher, ob es wirklich richtig funktioniert. |
||||||||||
30.12.2005, 22:56 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Es wäre super, wenn du mir dieses Programm zukommen lassen könntest, denn es hat sich ja bereits bewährt. Die von die ermittelten Werte scheinen ja zu stimmen. Ich sehe leider keine andere Möglichkeit, wie ich sonst auf eine derartige Gleichung kommen könnte... Wenn du jedoch noch einen anderen Weg kennst, bin ich natürlich offen... |
||||||||||
30.12.2005, 23:15 | sqrt(2) | Auf diesen Beitrag antworten » | ||||||||
Meinetwegen hänge ich den Quellcode an. Wie gesagt, du brauchst 16 bit PCM-Rohdaten. Schneide aus Audacity ein Stück der Schwingung aus, speichere sie als WAV und lasse das von SoX umwandeln ("sox daten.wav rohdaten.raw"). Nachdem du mein Programm nach DFT.java umbenannt und mit "javac DFT.java" kompiliert hast (dazu brauchst du natürlich ein Java SDK kannst du mit "java DFT rohdaten.raw > output.txt" das Programm durchlaufen lassen. In gnuplot kannst du mit "plot 'output.txt' u 1:2 w lines, 'output.txt' u 1:3 w lines" dir das Spektrum anzeigen lassen (eigentlich ist nur der Anfang interessant, deshalb kannst du auch vorher mit "set xrange [1:100]" o.ä. den Anzeigebereich begrenzen). Du siehst dann, an welchen Stellen ungefähr Maxima der beiden Kurven liegen, die du dann in output.txt heraussuchen kannst. Die rote Kurve bzw. die zweite Spalte steht für den Koeffizienten einer Kosinusschwingung, die grüne Kurve bzw. die dritte Spalte steht für den Koeffizienten einer Sinusschwingung. So aus Interesse: Was ist das denn für eine Arbeit, die du da schreibst, und worüber? |
||||||||||
30.12.2005, 23:21 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Dankeschön, ich denke das hilft mir sehr weiter... Das wird eine Facharbeit im LK Physik über Synthesizer. |
||||||||||
30.12.2005, 23:59 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Also ich habe dein Programm jetzt kompiliert wie du beschrieben hast... Allerdings kommt da bereits ein Fehler: http://img529.imageshack.us/img529/3949/error3od.jpg Es wird mir trotzdem eine "DHF.class" ausgegeben. Nun habe ich ein .wav File in ein raw umgewandelt. Hat perfekt funktioniert... Wenn ich nun aber das Programm per "java DFT 3b.raw > output.txt" ausführe, kommt folgende Fehlermeldung: "Exception in thread "main" java.lang.NoClassDefFoundError: DFT" Weißt du was da schiefgelaufen ist? |
||||||||||
31.12.2005, 00:05 | sqrt(2) | Auf diesen Beitrag antworten » | ||||||||
Das sind keine Fehler, sondern nur Warnungen, die ich nicht bekomme, was daran liegen mag, dass ich das 1.4.2er und nicht das 1.5er SDK verwende (eine Option "-Xlint:unchecked" gibt es bei meinem javac gar nicht).
Das sollte "DFT.class" heißen.
Das ist die normale Fehlermeldung, wenn keine DFT.class vorhanden ist. |
||||||||||
31.12.2005, 00:10 | JamesTheQ | Auf diesen Beitrag antworten » | ||||||||
Oh, ja ich hab mich nur verschrieben.. Die Datei heißt schon "DFT.class"...Es kommt trotzdem die Fehlermeldung. |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |
|