Benutzer-Werkzeuge

Webseiten-Werkzeuge


start:themen:directshow_oszilloskop

Oszilloskop und Funktionsgenerator

Zur Auflockerung des trockenen Themas Richtiges Aussteuern möchte ich noch etwas praktisches beisteuern, was auch schön die Möglichkeiten von Directshow zeigt.

Bei den vielen Beispielen zu DirectShow, das Teil der Platform SDK ist (Verzeichnis PlatformSDK/Samples/Multimedia/Directshow/Filters) findet sich ein einfacher VCO (Voltage Controlled Oscillator)- man könnte auch von einem Funktionsgenerator sprechen, denn er produziert Impulse in den wichtigsten Grundformen Sinus, Rechteck, Sägezahn und kann auch „sweepen“ bzw. „wobbeln“, indem er sich zwischen zwei Frequenzen „durchstimmt“:

Das wäre nur ein Krachmacher, gäbe es da nicht auch noch ein Zweikanal- Oszilloskop- Filter, welches sich gut zur Darstellung von Audio- Impulsen eignet:

Mit dem bereits in Directshow beschriebenem Tool Graphedt.exe, das im Bin- Verzeichnis der Platform SDK zu finden ist, kann man diese beiden Filter und noch einige Zwischenfilter zu Filterketten zusammensetzen, um etwa die Funktionsweise von Transfer-Filtern, Decodern, Encodern oder auch zwischengeschalteten Hardware-Komponenten wie etwa den Mixer zu prüfen. Andere Filterkomponenten können auch beispielsweise einen Testton in eine Datei schreiben. Kurzum, diese beiden Filter bieten einiges an Möglichkeiten- auch wenn sie natürlich keine „echten“ Messgeräte ersetzen können.

Der folgende Filtergraph nutzt nur das Tee-Filter (hat eher was mit einem T-Stück bzw. dem Unix-Kommando „tee“ als dem Heißgetränk zu tun) und einen Sound-Renderer, sodaß man auch hört, wie ein eingestellter Impuls sich anhört. Man kann ja auch recht leicht eine Übersteuerung herbeiführen, sodaß etwa Sinuswellen „geclipped“ werden und bekommt einen Eindruck, wie sich das dann anhört.

Kurze Einführung

Zum VCO will ich nichts sagen- der ist sehr einfach und intuitiv zu benutzen. Oszilloskope gehören aber nicht zu den einfachsten Meßinstrumenten und ich kann nicht davon ausgehen, daß jeder schon mal eins benutzt hat.

Auf der linken Seite befinden sich je zwei Regler für den linken und den rechten Stereokanal. Mit dem linken, „Gain“ beschrifteten Regler kann man die Amplitude verstärken oder abschwächen. Unter dem Regler wird jeweils der Faktor angezeigt, um den die Amplitude vergrößert oder verkleinert wurde. Der rechte Regler „Offset“ dient bei normalen Oszilloskopen dazu, einen Gleichspannungsanteil wegzuregeln- man kann also mit „Offset“ die ganze Kurve rauf oder runterschieben, was dabei helfen kann, die zwei Kurven zu vergleichen. Rechts ist genau wie bei den meisten „richtigen“ Oszilloskopen die Einstellung Zeitbasis, also die Dehnung der horizontalen Achse, der Zeitachse. Unter dem Regler der Zeitbasis wird angezeigt, welcher Zeit ein Strich (Div) auf der Skala entspricht.

Durch Häkchen setzen kann man die Zeitbasis auch auf eine Amplitude „triggern“ lassen um ein horizontales „zappeln“ oder durchlaufen der Kurve zu verhindern. „Freeze“ macht das Oszilloskop schließlich zu einem Speicheroszilloskop, indem beim Häkchen setzten die aktuelle Kurve gespeichert bleibt. Mit dem unterem Schieberegler kann man sich dann alle Teile der gespeicherten Kurve in Ruhe betrachten.

Schließlich werden noch PCM- Format und Speichergröße des Speicheroszilloskops angezeigt.

Download und Installation

Die beiden Filter liegen leider nur im Quellcode in der Platform SDK vor. Das wäre nicht schlimm, wenn die Übersetzung dieser C++ Programme ohne Probleme ginge und die Filter dann sogar funktionieren würden. Leider ist der Quellcode der Beispiele sehr alt und wurde offensichtlich kaum gepflegt, sodaß die Übersetzung der Filter und der für alle Filter benötigten Basisbibliothek strmbase.lib auch mit VisualStudio 2003 nur sehr holprig vonstatten geht. Mit VisualStudio 2005 habe ich es gar nicht erst versucht, zumal dies durch das Fehlen einer atls.lib, die nicht zur Platform SDK gehört, mit der Visual C++ 2005 Express Edition sicher scheitern würde. Beim Oszilloskop fehlte die Initialisierung der verwendeten Common-Control Library und es war deshalb erst gar nicht zu sehen.

Damit nicht jeder wieder diese Fummelei samt Bugfixing erleben muß, stelle ich die fertigen Filter hier zum Download hin:

synthoszi.zip

Um die beiden Filter synth.ax und scope.dll verwenden zu können, muß man diese als COM-Objekte noch registrieren. In dem ZIP-Archiv sind deshalb noch zwei BAT-Dateien register.bat und unregister.bat welche die Filter in der Registry eintragen bzw. wieder aus ihr entfernen. synthoszi.grf ist schließlich der Filtergraph für Graphedt. Graphedt selbst liegt wie gesagt im BIN-Verzeichnis der Platform SDK.

Diesen einfach mit „Open Graph“ laden und den Play-Button in der Toolbar drücken.

DirectShow für Impulstechnik- und Video-Freaks

Wem das Sample-Oszilloskop noch nicht reicht, findet bei ..

nomad electronics

.. noch ein ausgewachsene Version, welche sich auch zur Analyse von Videosignalen gut eignet:

Sag nochmal einer, so ein Oszilloskop-Filter sei nur ein nutzloses Geek- Spielzeug…

start/themen/directshow_oszilloskop.txt · Zuletzt geändert: 2018/09/21 16:45 (Externe Bearbeitung)