Seite 1 von 1

[Fertig] [Bilder] Fourier-Transformator

Verfasst: Mo Apr 01, 2013 1:40 am
von kubi
Edit: April, April
(Also, bitte nicht mehr mit Fragen bzgl. Dokumentation oder Stromlaufplänen anschreiben, positives Feedback lese ich aber weiterhin sehr gerne :wink:)


Hallo zusammen,

das hier ist etwas wirklich beeindruckendes:

Die Fourier-Transformation ( https://de.wikipedia.org/wiki/Fourier-Transformation ) kennt bekanntlich jeder von euch, allerdings wissen die wenigsten, dass der Joseph Fourier ( https://de.wikipedia.org/wiki/Joseph_Fourier ) im 18./19. Jahrhundert lebte, lange vor flotten DSPs, die seine Transformation in Echtzeit ausführen konnten.
Er hat seine Transformation theoretisch aufgestellt und bewiesen, später wurden solche Transformationen analog abgehandelt mit einem Transformator, dem sog. Fourier-Transformator.
Ich habe lange gesucht, bis ich alle benötigten Unterlagen gefunden habe. Durch Glück habe ich einen mehr oder weniger brauchbaren Transformator in der Bucht gefunden. Den Hersteller, Körting, gibt es heute nicht mehr, damals war das eine bekannte Marke. Die beiden anderen Transformatoren im Bild sind UIS-1 von Triode-Electronics ( http://triodeelectronics.com/unintrui.html ). Ich habe sie ausgewählt, weil sie mit vielen Wicklungen einige "arithmetische" Aufgaben wie Multiplizieren mit Konstanten und Addieren/Subtrahieren übernehmen können und das beitragen, was dem alten Übertrager noch fehlt.
Alle drei Transformatoren vollziehen zusammen die Fourier-Transformation:

Bild

Zerlegt man einen 1kHz-Sinus, sieht das ganze wie auf dem nächsten Bild aus. Oben auf dem Oszilloskop-Schirm ist der ursprüngliche Sinus (Zeitdomäne: https://de.wikipedia.org/wiki/Zeitbereich ) zu sehen, unten das Signal nach der Überführung in die Frequenzdomäne ( https://de.wikipedia.org/wiki/Frequenzspektrum ):

Bild

Im Gegensatz zu der Diskreten-Fourier-Transformation ( https://de.wikipedia.org/wiki/Diskrete_ ... sformation ) ist diese analoge Transformation kontinuierlich, da rein analog, und entsprechend gibt es also unendlich viele Nuancen, die ebenfalls umgewandelt werden und die nicht einer Abtastrate (wie sie bei diskreten Signalen notwendig ist) zum Opfer fallen.
Auch mit Fenstern ( https://de.wikipedia.org/wiki/Fensterfunktion ), die jeder von der FFT kennt, muss man sich nicht abgeben.
Beschränkt wird das Frequenzband lediglich durch die Induktivität des Fourier-Transformators und die parasitären Kapazitäten - wie eben bei jedem Übertrager. Mit den hier verwendeten Transformatoren löse ich Signale zwischen ca. 5Hz und ca. 150kHz auf.
Die auf dem Oszilloskop-Bild gut sichtbaren Obertöne rechts neben der dominierenden 1kHz-Spitze sind Klirr, der aus der Hysterese ( https://de.wikipedia.org/wiki/Hysterese ) des Übertragerkerns stammt. Vielleicht finde ich in Zukunft einen besseren Fourier-Transformator oder schaffe es, die drei abgebildeten Transformatoren zu einem großen Fourier-Transformator zu vereinen und mir auf einem Kern einen solchen Übertrager zu wickeln. Die Auflösung macht mir noch etwas Sorgen. Natürlich hat eine 256Bit-FPU eine bessere Genauigkeit als meine Transformatoren mit ihrem Klirr und dem Rauschen. Bei mir ist das sog. Gras (Rauschen) höher. (Kein Witz, die "Reste", die unten zwischen den Spitzen in der Frequenzdarstellung entstehen, nennen sich wirklich "Gras", weil es wie das Gras zwischen Bäumen und Büschen aussieht)

Da man einen Transformator immer in beide Richtungen verwenden kann, kann dieser Transformator die Fourier-Transformation in beide Richtungen durchführen, man bekommt also die Inverse-Fourier-Transformation ( https://de.wikipedia.org/wiki/IFFT ) gleich dazu. Beeindruckend, oder?

Ich finde, das ist wirklich beeindruckend, insbesondere weil das meiste Wissen zu Fourier-Transformatoren bereits verschollen ist. Seien wir ehrlich, von einem Fourier-Transformator haben wir vielleicht einmal kurz in einer Vorlesung "Nachrichtentechnik" gehört, mehr nicht. Hier wird spannende Geschichte wieder aufgerollt.

Genial, oder?

Überlegt mal, was damit möglich ist: Einige Leute schwärmen davon, Signale von L+R nach M+S zu wandeln, um mehr Möglichkeiten bei Komprimieren oder Entzerren zu haben. Jetzt stellt euch mal vor, man wendet die Effekte auf das Frequenzspektrum an. Kompression oder Begrenzung eines Frequenzspektrums, ist das GEIL???

Verfasst: Mo Apr 01, 2013 2:35 am
von olafmatt
Hallo Lord Kubi,

vielleicht kannst du noch einen Schritt weiter gehen und mechanische Fourier-Synthese betreiben? Da gibt es so ein nettes DIY Maschinchen von William Thomson (aka. Lord Kelvin):

Bild

Beschreibung dazu gibts hier: http://en.wikipedia.org/wiki/Tide-predicting_machine

Mit nur 10 "bins" könnt die Auflösung für Audio allerdings etwas zu wünschen übrig lassen.

Olaf

Verfasst: Mo Apr 01, 2013 5:32 pm
von holger777
Booah .... wie geil ist das denn! :cool:

Ich versuche schon seit Jahren eine solarbetriebene Taschensonnenuhr mit Beleuchtung
(damit man auch im Dunkeln die Zeit ablesen kann) zu entwickeln, aber irgendwie kriege ich das nicht hin ...... :roll:


---
Holger

Re: [Fertig] [Bilder] Fourier-Transformator

Verfasst: Mo Apr 01, 2013 7:49 pm
von hugoderwolf
kubi hat geschrieben: Auch mit Fenstern ( https://de.wikipedia.org/wiki/Fensterfunktion ), die jeder von der FFT kennt, muss man sich nicht abgeben.
[...]
Die auf dem Oszilloskop-Bild gut sichtbaren Obertöne rechts neben der dominierenden 1kHz-Spitze sind Klirr, der aus der Hysterese ( https://de.wikipedia.org/wiki/Hysterese ) des Übertragerkerns stammt.
Mit Verlaub, aber das scheint mir Unsinn zu sein. Klirr würde anders aussehen, wir haben es hier eindeutig mit einer Rechteckfensterung zu tun. Sicher dass du dir nicht irgendwo einen parasitären VCA mit Rechteck-LFO eingehandelt hast? Mach am besten mal ein gescheites PCB und verwende Hann-gefensterte Leiterquerschnitte, damit sollte die Kanaltrennung verbessert werden.

Verfasst: Mi Apr 03, 2013 4:28 pm
von kubi
Einige kamen dahinter, einige nicht, der Fourier-Transformator ist natürlich nur ein April-Scherz. :wink:
Vielen Dank allen, die ihren Spaß hatten und die mir geschrieben haben. Und weil zwei oder drei danach fragten: Nein, ich kann euch weder einen Schaltplan noch irgendwelche alten Unterlagen zu dem Thema zukommen lassen.

Vielleicht gibt es nächstes Jahr im April den Laplace-Transformator ( https://de.wikipedia.org/wiki/Laplace-Transformation ) :D

Verfasst: Mi Apr 03, 2013 4:38 pm
von kubi
olafmatt hat geschrieben:vielleicht kannst du noch einen Schritt weiter gehen und mechanische Fourier-Synthese betreiben? Da gibt es so ein nettes DIY Maschinchen von William Thomson (aka. Lord Kelvin)...
Spannend, danke für den Link.
Aus heutiger Zeit sieht das alles so einfach und selbstverständlich aus, damals war das bahnbrechend.
olafmatt hat geschrieben:Mit nur 10 "bins" könnt die Auflösung für Audio allerdings etwas zu wünschen übrig lassen.
Stimmt. Aber Sprache ist damit bereits verständlich. Ich glaube, das frühe SIGSALY-System arbeitete mit 10 Bändern als eine Art Vocoder.
Letztens habe ich einen Artikel über Hörgeräte in einem Fachblatt gelesen, das Gerät verstärkte nicht nur wie herkömmliche Hörgeräte das Signal, sondern analysierte es und erregte über Elektroden direkt die Nerven in der Schnecke. (Der Träger hatte einen Schaden im Bereich Trommelfell/Hammer/Amboss/Steigbügel, so dass dieser Bereich umgangen werden musste). Mit zehn Bändern konnte er gesprochenes gut verstehen. Aber natürlich hast du Recht, für Musik ist das zu wenig. Ok, außer für Techno :wink:

Verfasst: Mi Apr 03, 2013 4:55 pm
von olafmatt
Man könnte natürlich drüber nachdenken, ob man 10 Bänder basteln kann, die "frequenzadaptiv" sind. Also dass die ihre Eigenfrequenz verschieben können, um sich besser dem Signal anzupassen. So ähnlich wie die Haarzellen im Ohr, die werden ja auch dynamisch "nachgestimmt", um die hohe Genauigkeit in der Tonhöhenwahrnehmung zu erzielen.

Olaf

Verfasst: Mi Apr 03, 2013 6:06 pm
von [silent:arts]
Ohne BOM baue ich gar nichts mehr :twisted:

Verfasst: Mi Apr 03, 2013 7:22 pm
von kubi
olafmatt hat geschrieben:Man könnte natürlich drüber nachdenken, ob man 10 Bänder basteln kann, die "frequenzadaptiv" sind. Also dass die ihre Eigenfrequenz verschieben können, um sich besser dem Signal anzupassen. So ähnlich wie die Haarzellen im Ohr, die werden ja auch dynamisch "nachgestimmt", um die hohe Genauigkeit in der Tonhöhenwahrnehmung zu erzielen.
Gute Idee.
Du erinnerst dich bestimmt noch an AFC bei Radios oder Videorekordern. Das war diese tolle Funktion, die dafür sorgte, dass ein abgespeicherter, guter aber schwacher Sender langsam zu einer anderen Frequenz eines schlechten, dafür stärkeren Senders hin kroch und man am Ende immer manuell nachstimmen musste.
https://de.wikipedia.org/wiki/Automatic ... cy_Control
So etwas in mehreren Bändern umgesetzt würde deiner Idee entsprechen. Der automatisch gestimmte Oszillator müsste nur noch neben dem 0° auch ein 90° verschobenes Signal erzeugen (Sinus/Kosinus) und mit zwei Analogmultiplizierern könnte man die Fouriertransformation in der Tat analog durchführen. Die beiden Produkte wären dann der jeweils reelle und imaginäre Teil der Amplitude.
Radizieren und Arkustangens wären analog zu aufwendig, um die Amplituden-Phasen-Notation anzugeben, auch wenn das bei alten Analogrechnern mit einem entsprechenden Schaltungsaufwand betrieben wurde.

Ok, nach Murphy würden am Ende sowieso alle zehn Bänder auf die gleiche Frequenz verweisen und dort unabhängig vom Signal verharren.

Aber bei zehn Bändern wäre vielleicht die Fourier-Analyse, die genau eine Frequenz herauspickt und analysiert, weniger gut geeignet. Bandfilter, die einen Bereich abdecken, wären vielleicht besser geeignet. Die Analyse wäre leichter erledigt. Es wären dann nicht die zu analysierenden Frequenzen in Echtzeit anzupassen, sondern die Eckfrequenzen der Filter. Machbar.

Verfasst: Mi Apr 03, 2013 7:40 pm
von olafmatt
kubi hat geschrieben:Ok, nach Murphy würden am Ende sowieso alle zehn Bänder auf die gleiche Frequenz verweisen und dort unabhängig vom Signal verharren.
Genau, ich hab auch ein Murphy-Dauerabo. - Hab mich vor ein paar Jahren mal länger mit Tempo-Erkennung in MIDI Signalen beschäftigt. Das geht mit adaptiven Oscillatoren. Man startet also auf Verdacht einen Haufen Oszillatoren und guckt dann, welcher am dichtesten dran ist. Danach wird geschaut wie weit der Beat neben der Schwingungsspitze des Oszillators liegt und daraus ein Korrektursignal berechnet (je größer die Steigung der Kurve, um so mehr liegt man daneben), dass dann den Oszillator entsprechend verlangsamt oder beschleunigt.
Das geht leider so richtig gut auch nur im Test-Setup. Mit echten Musikern müssen die wollen, dass das Ding ihnen folgt und dem Algorythmus "helfen", indem sie die passenden Betonungen immer schön auf den Beat setzen.

Aber zu den adaptiven Bins: das geht doch sowieso nur mit periodischen Signalen (deswegen kam ich auf meine adaptiven Oszillatoren für's Tempo). Und wenn man es für die Synthese einsetzt ist es ja nichts anders als einen Haufen Sinusgeneratoren auf verschiedenen Frequenzen, die dann Grundton und Obertöne erzeugen (wie in der elektronischen Heimorgel meines Vaters).
Insofern wäre die wirklich gute Aufgabe, endlich mal eine FFT zu erfinden, bei der die Bänder nicht linear sondern logarythmisch "gespaced" sind. Aber nun gut, das schaffen wir ja nichtmal bei EQs, die Bänder mit "wirklichen" Tonhöhen statt mit Frequenzen aus der Messtechnik zu beschriften.

Olaf

Verfasst: Mi Apr 03, 2013 7:58 pm
von kubi
olafmatt hat geschrieben:Aber zu den adaptiven Bins: das geht doch sowieso nur mit periodischen Signalen...
Daher die Idee mit den Bandfiltern statt der Fourieranalyse.

Die Einschränkung lässt sich dennoch mit der Kurzzeit-Fourier-Transformation mildern, oder noch besser: Wavelet-Transformation.
Damit sind auch nicht-periodische Signale analysierbar. Kennt man vom Wasserfalldiagramm. Aber da verlassen wir schon den Bereich, der noch irgendwie praktischen Wert hätte.

Verfasst: Do Apr 04, 2013 11:02 am
von hugoderwolf
olafmatt hat geschrieben: Insofern wäre die wirklich gute Aufgabe, endlich mal eine FFT zu erfinden, bei der die Bänder nicht linear sondern logarythmisch "gespaced" sind. Aber nun gut, das schaffen wir ja nichtmal bei EQs, die Bänder mit "wirklichen" Tonhöhen statt mit Frequenzen aus der Messtechnik zu beschriften.
Gibbet schon. Constant-Q-Transformation zum Beispiel. Mit Wavelets geht das auch, oder mit Frequency-Warping durch Allpass-Ketten.

Das Problem: der Kram ist deutlich weniger dankbar zu implementieren als die FFT und daher in Echtzeit kaum praktisch zu gebrauchen.

Verfasst: Do Apr 04, 2013 2:50 pm
von kubi
Das letzte mal hatte ich mit Wavelets auf 68030 + 68882 zu tun, also offensichtlich lange her. So schlimm war es aber nicht.
Heute gibt es zum Glück unzählige freie Bibliotheken, die die Funktionen anbieten, so kann man die Transformationen von außen bequem als Blackbox ansehen.

Verfasst: Do Apr 04, 2013 3:57 pm
von hugoderwolf
Naja, auch eine Blackbox will verstanden sein, will man ihren Output richtig interpretieren. Das schwierigste am Messen ist bekanntlich, herauszufinden was man da überhaupt misst. ;)