DSP Filterprogrammierung auf dem Notebook

  • Hallo,


    zur Zeit habe ich gerade begonnen, mit digitaler Filterung zu experimentieren.


    Zunächst würde ich gerne wissen, ob das Thema DSP und seine Programmierung hier viel Interesse findet. Das Thema Programmierung zeigt wenige aktuelle Threads, aber das sagt nichts. Wenns keine Fragen gibt, kann das auch Zeichen von einem hohen Informationsstand sein, oder davon, dass alle ihre Projekte perfekt und fertig haben.


    Jetzt habe ich erst mal Korrelation als Verfahren für ein CW Filter genommen und das Verfahren selbst getestet. Es gibt noch lange kein fertiges Programm. Und die Testdaten sind noch *.wav files mit synthetisch generiertem Inhalt. Also alles noch weit entfernt von praktischer Anwendbarkeit und zeitnaher Verarbeitung. Das Korrelationsverfahren hat sich aber zumindest für mich als programmierbar herausgestellt Hi.


    Ob sich die Umsetzung auch ausreichend praxisgerecht weiter entwickeln lässt, ist jetzt noch offen.


    Das Ergebnis in Relation zu den vorhandenen Eingangsdaten hört sich schon brauchbar an, aber vielleicht ist das lediglich Wunschdenken.


    Wass sind eure Meinungen und Erfahrungen?

    Die kurzen und wenig Datenvolumen beanspruchenden Hörproben bitte evtl. von der txt Erweiterung zu befreien.

    Vor der Filterung --> Nach der Filterung

    testout03-v-rausch.wav.txt sciloop-04-01.wav.txt

  • Ich habe zwar mit DSP noch nicht gespielt, aber die ganze Korrelations-Mathe + einiges dazu (speziell Stochastik) früher in der Großrechnerzeit für Meßwerte und Simulationswerte verwendet. Ich bin Programm-technisch etwas verwöhnt, weil ich hauptsächlich FORTRAN, PL/1 und APL2 dazu programmiert habe. Da ich an IBM Mainframes gemessen habe, auch durchaus Subroutinen zum direkten Messen in ASM (gehörte bei IBM zur Basis). C gab es noch nicht und ich kann mich nicht überwinden, dieses C-Zeugs anzufassen :) . Also für (vermutliche) C-Codings werde ich kein Gesprächspartner ....... (Keine Angabe, ich mag nur einfach nicht, zuviel Schreibarbeit....)


    Was mich interessiert: Hast Du Autokorrelation verwendet oder mit einem zweiten Signal Kreuzkorrelation ?? Auf wieviel Bits hast Du aufgelöst ?? Deine beiden Dateien hören sich jedenfalls sehr gut an, das Resultat ist ok. Ich bin einfach neugierig zu Deinem Verfahren. Ob ich nochmal als Gruftie damit anfange, weiß ich nicht. Jucken tut es schon ......


    Laß mal hören, vielleicht interessiert es noch mehrere. Im QRP Bereich ist solche Nachverarbeitung schon interessant.

    73 Peter

  • Hallo Peter,


    Statistik mit Fortran IV auf Grossrechner hab ich auch mal gemacht. War eher mühsam, Karten stanzen, abgeben, warten, ...


    Danke für die interessierten Fragen.

    Die gewünschte Mittenfrequenz habe ich rechnerisch generiert und damit das Eingangs Signal korreliert. Das Signal kommt mit 8 bit und 8k Sampling daher. Den Verlauf vom Korrelationskoeffizienten habe ich mit einem Schwellwert in ein Rechteck Signal verwandelt, und letzteres mit einem gleitenden Mittelwert mit schrägen Kanten versehen. Es ist also durch eine Art Tiefpass entklickt und so zu sagen entprellt.


    Das Verfahren funktioniert auch noch bei einem noch grausigerem Signal, wie das Bildchen zeigen soll:












    in Eingangssignal wie unten zu hören

    rI, rq Korrelationskoeffizienten mit sin und cos

    rm der Multiple Korrelationskoeffizient

    DC Gleichstromsignal

    out tönendes Morsesignal Ausgang


    Da kann man sich jetzt jede Menge Verbesserungen und Alternativen ausdenken.


    testout03-v-rausch-5.wav.txt

    PS: fast vergessen, das Ergebnis jetzt akustisch

    sciloop-04-02.wav.txt

  • Moin Jo,


    warum benutzt Du nicht einfach GNU Radio?


    C gab es noch nicht und ich kann mich nicht überwinden, dieses C-Zeugs anzufassen :) . Also für (vermutliche) C-Codings werde ich kein Gesprächspartner ....... (Keine Angabe, ich mag nur einfach nicht, zuviel Schreibarbeit....)

    Peter, dann sind Deine Arbeiten damit über 50 Jahre her, eine Ewigkeit in der IT. Seit 1972 bis heute hat sich auch bei C einiges getan.


    73, Tom

  • warum benutzt Du nicht einfach GNU Radio?

    Namd Tom,


    entschuldige bitte meine Unwissenheit. Aber dein, ein bisschen knapp formulierter, Vorschlag klingt für mich wie: "Warum lädtst du nicht einfach ein Filterprogramm runter?", oder warum kaufst du dir nicht einfach ein Kästchen mit Filter drin und stöpselst das zwischen trx und Kopfhörer?". Brauche ich beides nicht, ich will selbst bauen, - äh - programmieren.


    Und dafür brauche ich keine neue Entwicklungsumgebung, in die ich mich neu einarbeiten müsste. Ich will zur Zeit auch kein sdr auf dem Notebook implementieren, für das die Hardwäre auch nicht vorhanden wäre.


    Du siehst, aus Unwissenheit sehe ich den Zusammenhang zu meinem Thema hier nicht. Wirft mit gnuradio denn Code aus, den ich verstehe und auf einem MC oder einem dsp board zum Laufen bringen kann? Das habe ich auf der verlinkten Seite vorerst nicht erkennen können.


    Ganz unabhängig von meinem Filterprojektlein, ist gnuradio sicher ein interessantes Ding und ich werde es mir bei Gelegenheit auch näher ansehen. Daher danke, für den Hinweis. Für andere Projektideen könnte ich mir durchaus eine Anwendbarkeit vage vorstellen.

  • @Tom: Ich habe die alten Sprachen unterrichtet, für S/W Spezies Compiler internals (FORTRAN, PL1, COBOL und ALGOL) in den 70ern. PL1, FORTRAN und später APL2 für Simulationen schreibe ich im Schlaf, seit 80er auch auf dem PC bis heute (FORTRAN und ASM seit den 60ern). BTW: Lochkarten waren ab Mitte der 70er mit den 3270er Bildschirmen und TimeSharing kein Thema mehr. Bei C muß ich zuviel nachdenken, das ist eine Krankheit und keine Programmiersprache .... :) (da kann ich gleich ASM schreiben). Ich habe in C und Java ein paar Sachen geschrieben und mag es einfach hinten und vorne nicht. Es gibt noch ein paar weitere Scriptsprachen, die man in den Jahren ansammelt, aber soweit meine Lieblinge.


    Ist ja jetzt nicht das Thema. Die Mathematik zu dem ganzen ist nach noch um einiges älter :) .)@Jo: danke für die Info. Ich hatte andere Zielrichtungen - Stabilität (Sattel-/Gleichgewichtspunkte) und abhängige Schwankungen. Ich muß meine alten Bücher vorkramen und lese mich wieder ein. Wenn ich es grob einstufe, machst Du praktisch Autokorrelation (im weiteren Sinn). Solche Puzzeleien mag ich .......... (fertig kann jeder :) , macht einfach mehr Spaß, wie H/W-Selbstbau.)


    73 Peter

  • Autokorrelation

    Für mich ist es, um in der Sprache der Statistik aus zu drücken, so wie ich sie mal gelernt habe, eine multiple Korrelation zweier Prediktoren mit einem Kriterium. Mit sich selbst, oder mit sich selbst zeitverschoben wird in diesem Fall nicht korreliert. Aber die "schönen" Formulierungen sind jetzt eh unwichtig.


    Korrelation ist halt sehr einfach zu berechnen. Und durch die Korrelation mit sinus und cosinus ist das Ergebnis unempfindlich gegen Phasen Verschiebung. In der Grafik oben kann man das sehen. Das Filter steht geringfügig neben der Frequenz des Signals, weil ich die Phasen Unabhängigkeit testen wollte. Dadurch gehen I und Q Korelation auf und ab. Aber die Multiple Korrelation aus beiden bleibt von diesen Schwankungen unberührt.

  • Das Ergebnis in Relation zu den vorhandenen Eingangsdaten hört sich schon brauchbar an, aber vielleicht ist das lediglich Wunschdenken.


    Wass sind eure Meinungen und Erfahrungen?

    Jo, das hoert sich in Deinem Beispiel exzellent an. Allerdings waere es IMO sinnvoller, das an einem echten Signal zu testen. Bei Kurzwelle also mit QSB, Geprassel, Knacksen, Tastklicks vom Frequenznachbarn, QRM vom Staubsaugermotor und sonstigem Gebrodel. Moeglichst auch bei unsauberer Gebeweise, z.B. mit einem Bug und nicht-konstantem Strich/Punkt Verhaeltnis.


    Dabei kann es sinnvoll sein, zu sehen, was Geraeteentwickler heute an "Noise Reduction" Routinen verwenden. Bei Icom funktioniert es auf KW sehr schoen. Natuerlich legen die ihre Rezepte nicht offen, doch muss es zu diesem Thema Veroeffentlichungen von Forschern geben.


    73, Joerg

  • das an einem echten Signal zu testen

    Natürlich, Jörg. So ein synthetisches Testsignal mit white noise ist nicht das Selbe wie echte Störungen und Getümmel auf der Frequenz, bzw. in der Umgebung davon. Solche echten Test sind geplant und kommen hoffentlich bald an die Reihe.


    Zur Zeit bin ich noch dabei, die Programm Struktur zu verbessern, so dass die Verarbeitung schneller wird.


    Dann werde ich das Zeug in eine kompilierbare Sprache portieren. Jetzt bin ich noch auf einem Interpreter, scilab, unterwegs. Das war recht praktisch, aber es hat natürlich seine Grenzen.


    Die vorerst hart kodierten Parameter müssen noch einer Bedienung durch ein GUI zugänglich gemacht werden. Usw. Es gibt noch viel zu tun.

  • Hallo Jo,

    ich habe es darauf bezogen, daß kein unabhängiges zweites Signal benutzt wird (Diversity oder nur Rauschen). Die Terminologie ...... Es sieht jedenfalls sehr sauber aus.


    Ich habe gerade mein Buch aus den 80ern wiedergefunden: Söder, Tröndle; Digitale Übertragungssysteme, Springer Verlag, 1985; stand damals verlockend günstig im Buchladen rum :) . Der korreliert auch fleißig mit den Signalen herum ....... Ich wollte mit den AX25-Signalen meine Versuche starten. Zu der Zeit war ich aber beruflich noch sehr dick drin. .... Zu den Signal-Analysen bin ich nie gekommen. Ich habe bisher nur noch geschwankt, ob ich direkt beim SDR (HF) oder DSP (Audio) einsteigen soll.


    Afu hat soviel interessante Ecken, ich werde mich (zeitlich) einschränken müssen.


    @Tom: Jeden das seine, wenn es Spaß macht. ...............


    73 Peter


    (OT geputzt, war zuviel, sorry, Peter)

  • Dabei kann es sinnvoll sein, zu sehen, was Geraeteentwickler heute an "Noise Reduction" Routinen verwenden. Bei Icom funktioniert es auf KW sehr schoen. Natuerlich legen die ihre Rezepte nicht offen, doch muss es zu diesem Thema Veroeffentlichungen von Forschern geben.

    Ja, das ist eine gute Idee. Mal schauen, was die Profis so machen. Zur Zeit hab ich noch wenig Ahnung, was in den "Flagships" alles eingebaut bzw. reinprogrammiert wird. Vorerst geht es aber noch mehr um das grundsätzliche Verfahren.

  • Die Bestellung war damals online, ist aber schon ein paar Jahre her und ging definitiv nicht über die Krake Amazon.

    Der Verlag war "Newnes (An imprint of Elsevier Science)". Der scheint nicht mehr zu existieren.

    Die ISBN auf meinem Buch: 0-7506-7444-X


    Die ISBNs auf der Amazon-Seite lauten allerdings anders (wohl anderer Verlag):

    ISBN-10 0966017633

    ISBN-13 978-0966017632


    Ich würde es durchaus mal über einen Buchladen versuchen.

    73, Horst

  • Hallo Horst,

    das war jetzt eine gute Idee mit Deiner ISBN. Mir ist bei der Recherche aufgefallen, daß die Amazon-ISBN von 1997 ist. Die ist lt. Buchhandel Lehmanns.de vergriffen ohne Neuauflage, aber der Online-Version gleich (Titelbild). Deine ISBN ist von 2002, etwas anderer Titel als Online und ein paar Seiten (gesamt 664) mehr, ansonsten vermutlich das gleiche Buch und im Handel. Es scheint ein Neuauflage zu sein. Vielleicht steht bei Dir ja vorne drin, 2. Auflage von .... oder reprint von .... o.ä.


    Ich gehe nächste Woche mal mit beiden Nr. zum Buchhandel.

    73 Peter

  • Hallo Uli,


    danke für die Info - ich hatte nicht nach "Elsevier" gesucht. Ich habe hier die 1st Edition, wie auf dem Bild gezeigt. Hab' noch mal nachgeguckt und unter dem Strichcode auch noch die gleiche ISBN gefunden:

    Paperback ISBN: 9780750674447


    Ganz schön teuer geworden. Ich glaube nicht, dass ich damals mehr als 40€ bezahlt habe.


    Peter: viel Erfolg bei der Suche über den Buchladen.

    73, Horst

  • Liebe Kollegen,

    besprecht doch bitte die Topics Bücher, Verlage und Bezugsquellen im Bücherthread. Dort wird diese Info auch leicht gefunden. Hier unter diesem Threadtitel geht sie unter. Das finde ich schade.


    Und andererseits geht so, wie der Thread gekapert wurde, das spezifische Topic "dsp-filterprogrammierung-auf-dem-notebook" im Klönen über Literatur unter. Auch das finde ich schade. So macht das Posten keinen Spass . Die Moderation bitte ich, hier auf zu räumen.

  • Ich kann es nicht verschieben, löschen wäre bei dem zum Tread passenden Buch m.E. nicht ok.


    Wenn Dir das zuviel geklönt und gekapert ist (wir sind eigentlich durch mit dem Buch), bitte ich den Admin ebenfalls um des Friedens willen um Verschiebung und bin hier raus.


    73 Peter