• .
  • Willkommen im Forum!
  • Alles beim Alten...
  • Du hast kaum etwas verpasst ;-)
  • Jetzt noch sicherer mit HTTPS
Hallo, Gast! Anmelden Registrieren


RTA
#1
Einleitung
Wie ich im Thread Breitbandchassis erwähnte, habe ich vor langer zeit einmal angefangen einen RealTimeAnalyzer zu programmieren. Leider landete das Projet irgendwann mangels Motivation in der Versenkung.

Brauchbare Software in dieser Richtung gibt es leider nur ab 200? aufwärts.
Dennoch halte ich es für sinnvoll ein solches Tool zur Hand zu haben.

So kam mir also die Idee dies hier als "Software-Gemeinschfts-Projekt" vorzuschlagen.


Wer kann sich beteiligen?
Jeder!
Ganz unabhängig von mathematischen / informationstechnischen Grundkenntnissen. Ich habe das Projekt extra auf vb.net (bitte keine Diskussion deswegen!) umgemodelt und in sinnvolle Klassen (audio_in, audio_out, mathe, anzeige,...) unterteilt.


Was brauche ich?
-PC unter Windows
-Visual Studio ab 2008 oder das kostenlose VB.NET 2010 Express Edition
-die DirectX-for-managed-code-Binaries hier enthalten
-Soundkarte mit LineIN (kein Mikrofoneingang!)


Funktionsweise
Der enthaltene Signalgenerator liefert ein Anregungsignal, mit dem unser "prüfling" gefüttert wird. Ein Abgriff ("referenz") erfolgt nun vor dem Prüfling und ein zweiter ("signal") danach. (z.B. auch auch Messmikro möglich).

[Bild: 1_1370702764_rta.jpg]

Beide Signale werden nun per FFT in den Frequenzbereich überführt und elementweise komplexwertig dividiert. Das Ergebnis ist die Übertragungsfunktion des Prüflings. In den Beträgen der komplexen werte steckt der Amplitudengang, in den Argumenten der Phasengang. Eine inverse FFT der Übertragungsfunktion liefert die Impulsantwort.
Für diese Analysen wird ein rosa Rauschen verwendet.

In den letzten zwei Tagen habe ich nun extra für Gucki noch eine THD-Messung implementiert (basierend auf periodischer Anregung), um "klirrende SE-Verstärker" betrachten zu können.


Ziele
-Verbesserung der Messmethoden
-Implementierung neuer Messungen (Impulsantwort, Verzögerung,...)
-Verbesserung der Anzeige
-Algorithmenoptimierung
-Daten Im/Export
-...
(Vielleicht wird das ja eines Tages unser interner Standard für Messungen an Lautsprechern, Verstärker, etc.)


Veröffentlichung
Ich habe mir gedacht, dass es evt. interessant wäre das Tool unter der GPL auf der Startseite des Forums zu veröffentlichen - als köder für interessierte Neuuser sozusagen Wink


Hinweise
(1)
vb.net hat aufgrund den historischen Ursprüngen bei BASIC eine recht eigentümliche Art mit Arrays umzugehen.
In BASIC war der Niedrigste Index eines Arrays immer 1, während es bei allen andern Programmiersprachen 0 war und ist.

-> dim i(2) as integer
lieferte ein Array der Länge zwei mit den Elementen i(1) und i(2)

Um nun vb.net an den Rest der Welt anzupassen hat man den "0"-ten Eintag zum Array hinzugenommen, aber an der Deklaration nichts geändert:
-> dim i(2) as integer
liefert ein Array der Länge drei mit den Einträgen i(0), i(1), i(2)

(2)
Bei dem verwendetet FFT-Algorithmus sind die Frequenzen gespiegelt. D.h. während normal die negativen Frequenzen links liegen, die 0 in der Mitte und die positiven Frequenz rechts,
kommen hier erst 0Hz, dann die pos. Frequenzen bis fmax und von fmax wieder absteigend die negativen Frequenzen.

(3)
Bitte unter "Debug"->"Exceptions" das Häckchen bei "Managed Debugging Assistants" entfernen

(4)
Als Zielplattform x86 wählen (anstatt "any")


Die Sources
gibt es hier


Screenshot (Signal durch Mischpult)
[Bild: 1_1370702828_scr.png]


Vorgehensweise
Falls tatsächlich Interesse besteht, würde ich vorschlagen, die von mir hier hochgeladene Version als 0v1 zu bezeichnen.
Wer nun Änderungen vornimmt postet ebenfalls wieder ein komplettes (funktionierendes) Projekt und ich füge von Zeit zu Zeit alle Änderungen zu einer neuen Version zusammen...
Pffffffffft. "Da entwich das Vakuum" - Heinrich Physik, 1857.
 
#2
Acuh wenn ich nicht wirklich verstehe, wozu man sowas brauchen kann: Dein Thread und Erstbeitrag ist grandios!!!!!! Heart Heart Heart
 
#3
Bin dabei, mach so'n Kram auch in der 4ma. Big Grin

 
#4
@ Gucki

Sowas is Gold wert da es derzeit KEIN EINZIGES Freewaretool zum messen am PC von Lautsprechern/Verstärkern gibt welches nicht irgend eine Vollversion hat und nur in der Demo mit Einschränkungen läuft.


Da ich mir ein Messystem zulegen wollte und knapp bei Kasse bin wäre ich auch interessiert. Wenn ich mr Das Geld für die Software spare is n besseres Micro drinn ^^. Ich hab nur leider recht wenig Ahnung von der Systemmaterie.

Was ich noch vorschlagen würde wäre die Möglichkeit zum Import des Microphonfrequenzganges, das würde die Messgenauigkeit bei kallibrierten Microphonen noch steigern, bzw. Microphonfehler verringern.

Vor allem sollte Wert auf eins gelegt werden: BEDIENBARKEIT! Das beste was mir diesbezüglich untergekommen is war bis jetzt Hobbybox, dass aber schonmal mit 200 Euro zuschlägt. Dafür einfach zu bedienen.

Also auch mein Zuspruch zu dem Projekt ^^
 
#5
Zitat:Original geschrieben von 3eepoint
@ Gucki
Sowas is Gold wert da es derzeit KEIN EINZIGES Freewaretool zum messen am PC von Lautsprechern/Verstärkern gibt welches nicht irgend eine Vollversion hat und nur in der Demo mit Einschränkungen läuft.

Gold ist überbewertet.... klappe

 
#6
Blickwinkelabhängig würd ich sagen Wink
 
#7
Zitat:Original geschrieben von 3eepoint


Da ich mir ein Messystem zulegen wollte und knapp bei Kasse bin wäre ich auch interessiert. Wenn ich mr Das Geld für die Software spare is n besseres Micro drinn ^^. Ich hab nur leider recht wenig Ahnung von der Systemmaterie.

du kannst ja mal versuchen mit Breakpoints (etc.) den Code Schritt für Schritt nachzuverfolgen - und dann frag mir Löcher in den Bauch Smile

als relativ guter Umriss der Thematik sind die entsprechenden Wikipedia-Artikel zu empfehlen:

http://de.wikipedia.org/wiki/%C3%9Cbertragungsfunktion
http://de.wikipedia.org/wiki/Kontinuierl...sformation
http://de.wikipedia.org/wiki/Schnelle_Fo...sformation
http://de.wikipedia.org/wiki/Komplexe_Zahl
Pffffffffft. "Da entwich das Vakuum" - Heinrich Physik, 1857.
 
#8
Ich werd mich da mal einlesen,danke für die Links. Sobald wa in der Schule mit C++ anfangen werd ich auch sicher mehr verstehen, in Mathe ird sowas sicher auch angeschnitten, zumindest die Formeln, wofür is man schließlich aufn Fachgym Technik ^^
 
#9
Hab mir eben mal die Sourcen angesehen.... ich hab zwar keinen Schimmer von Basic, aber alles sieht sehr schön und strukturiert aus.

;respekt
 
#10
Interessantes Projekt, alle Achtung!;respekt
...mit der Lizenz zum Löten!
 
#11
Heart

Realtime FFT....

Nach so einem Programm habe ich lange gesucht, aber leider nur eins gefunden welches nicht in der Lage ist (vielleicht bins auch ich nicht) die Frequenzskala zu logarithmieren...

Hier, vielleicht hilfts was...

Hier gibts mein aktuell genutzes Programm, das ist Freeware und hübsch anzusehen ^^

Was ich daran vermisse wäre eine Funktion um die Impulsantwort nach Frequenzbereichen aufzudröseln, irgendwie verschiedenfarbig oder so, damit man auf einen Blick erkennen kann wann welcher Lautsprecher ankommt...und welche Reflektion wann in welchem Frequenzbereich liegt. Das wäre meiner Meinung nach eine sehr mächtige Analysemöglichkeit für die Raumakustik...

Das Wasserfalldiagramm bietet zwar grundsätzlich auch diese Ansichtmöglichkeit, aber ich persönlich würde es in der Impulsantwort viel schöner und inuitiver finden...


Grüße, Tobi
 
#12
Zitat:Original geschrieben von Rumgucker

Hab mir eben mal die Sourcen angesehen.... ich hab zwar keinen Schimmer von Basic, aber alles sieht sehr schön und strukturiert aus.

;respekt

*unterschreib*

Bis auf den Teil, wo du keinen Schimmer hast, natürlich :P
 
#13
Ich hätte soweit mal 3 Vorschläge, was man/ich tun könnte:

- Verwendung des Flattop-Fensters alternativ zu Hamming
(sollte die Amplituden im Eingangssignal besser abbilden)

- Mittelwertbildung per moving average, (zur Rauschunterdrückung)

- Einbindung der FFTW3-Bibliothek (ist vermutlich etwas schneller...)

Link: http://www.fftw.org/

Was meint ihr dazu?


Gruß
 
#14
-allgemein wären mehrere fensterfkt. interessant.

-moving average ist schon drin, zudem eine mittelwertbildung über 3 messungen und smoothing via fft (hat aber deutliches verbesserungspotential)

-ich wollte eigentlich explizit auf externe bibs verzichten...
(außer von M$ natürlich Wink )

@all: wer die pointer in c++ verstanden hat, macht VB im schlaf Wink
Pffffffffft. "Da entwich das Vakuum" - Heinrich Physik, 1857.
 
#15
hey woody...nett ! Big Grin

#hans -
eine fftw3 brauchts wohl kaum...ist bei heutigen rechnern egal, ob die fft nun 140ms braucht oder nur 93ms Wink
- flat window....ist sinnfrei Rolleyes
    Don't worry about getting older.  You're still gonna do dump stuff...only slower
 
#16
Zitat:Original geschrieben von E_Tobi

Was ich daran vermisse wäre eine Funktion um die Impulsantwort nach Frequenzbereichen aufzudröseln, irgendwie verschiedenfarbig oder so, damit man auf einen Blick erkennen kann wann welcher Lautsprecher ankommt...und welche Reflektion wann in welchem Frequenzbereich liegt. Das wäre meiner Meinung nach eine sehr mächtige Analysemöglichkeit für die Raumakustik...

Das Wasserfalldiagramm bietet zwar grundsätzlich auch diese Ansichtmöglichkeit, aber ich persönlich würde es in der Impulsantwort viel schöner und inuitiver finden...


Grüße, Tobi

das klingt klasse! Heart
die impulsantwort haben wir ja schon. Jetzt kommts auf die verrechnung an...
Pffffffffft. "Da entwich das Vakuum" - Heinrich Physik, 1857.
 
#17
Zitat:Original geschrieben von 3eepoint

[...] in Mathe ird sowas sicher auch angeschnitten, zumindest die Formeln, wofür is man schließlich aufn Fachgym Technik ^^

dieses projekt ist formelfrei. Wir benötigen nur definitionen und algorithmen Wink

wir setzen nur um, was hier mathematisch kompakt zusammengefasst ist.
Pffffffffft. "Da entwich das Vakuum" - Heinrich Physik, 1857.
 
#18
Zitat:Original geschrieben von alfsch

- flat window....ist sinnfrei Rolleyes

aber blackman und gauss wären interessant...

zum thema fft: das eigentlich verlangsamende dürften die sin/cos-berechnungen sein. Lookuptables könnten da schon etwas bringen. Andererseits schaffe ich es mit einem eher lahmen intel i3 bei 128k und insges. 4 ffts im 'signalweg' gerade mal auf 50% cpu-last.
Pffffffffft. "Da entwich das Vakuum" - Heinrich Physik, 1857.
 
#19
"Flat top window" ist nicht gleich "flat window" Wink

[Bild: Window_function_%28flat_top%29.png]

Diese Fensterfunktion wird bei Ordnungsanalysen eingesetzt, und verhindert ein Auf und ab der Amplitude, wenn die beobachtete Frequenz durch die einzelnen bins marschiert und diese mal mehr, mal weniger gut trifft.

Ich schau dann erstmal nach den sin/cos, die sind mir auch schon aufgefallen...


Gruß
 
#20
Zitat:Original geschrieben von woody
wir setzen nur um, was hier mathematisch kompakt zusammengefasst ist.

Das hab ich befürchtet überrascht

"Diese Seite wurde gelöscht"

Also doch ein sinnloses Projekt lachend klappe *duck und weg*