- LiTime Speicher und Akkus         
Ergebnis 1 bis 9 von 9

Thema: DSP digitales Audiofilter

  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708

    DSP digitales Audiofilter

    Anzeige

    Powerstation Test
    Hallo,

    Um mit meinen Elektronik Künsten noch besser auf einen aktuellen Stand zu kommen, plane ich, nach der MC Technik, auch in DSP ein zu steigen. Zur Zeit bin ich noch beim Suchen nach den Grundlagen. Meine Schulmathematik ist so eingerostet, dass ich all die wunderbaren Hochschulskripten im Netz nicht flüssig lesen und verstehen kann.

    Also setze ich dort an, wo mir etwas geläufig ist. Als Erstes werde ich die DSP in bescheidenen Ansätzen mit LT Spice umsetzen. Da geht es nur darum, Verfahren zu testen, und noch nicht um die praktische Umsetzung
    auf MC.

    Als zukünftige praktische Anwendung kann ich mir vorstelle: Ein Tonfilter für meine Morse Aktivitäten auf Kurzwelle, ein Synchronfilter gegen Störungen für Sensoren, die mit Wechselspannung betrieben werden können und ein Filter für Lichtsignale, die von led zu Fotodiode übertragen werden.

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Hey,

    vorletztes Jahr lief in der Elektor ein Audio DSP Kurs (mit Board und allem drum und dran).
    Hier hast du mal den Link dazu (leider funktioniert im Moment wieder mal nur die Englische Seite -.-) vielleicht hilft dir das ja weiter

    http://www.elektor.com/products/kits....1952755.lynkx

    Hab mich damals auch mal ein bisschen aber nach zwei Artikeln aufgehört, weil mir das zu kompliziert war (wäre mit dem heutigen Wissensstand wahrscheinlich anders)
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Hallo Daniel,

    danke für den Hinweis und den Link. Das schaut recht interessant aus.
    Zur Zeit bleibe ich aber bei etwas einfacheren und vor allem weniger aufwändigen Dingen, die schneller zu sichtbaren Ergebnissen führen.

    Ltspice, Soundkarte und atmega sind die Dinge, die mir einigermassen geläufig sind.

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Es wird manche überraschen, dass in ltspice und ähnlichen Programmen sehr einfach digitale Verarbeitung simulierbar ist. Das geht über mathematische Funktionen.

    In den so genannten Behavioural Voltage Sources steht einiges an Mathe zur Verfügung.

    Die wichtigste Funktion für dsp ist die delay Funktion und für ihre Anwendung verwende ich zunächst die Abweichung der Zeit vom Abtasttakt:

    V=time - round(time*{Fs}-.5)/{Fs}
    Das Ergebnis wird mit DEVt gelabelt und weiter Verarbeitet

    V=round(delay(V(Xkont),V(DEVt))*127)/127
    Damit haben wir ein Zeit- und Wertdiskretes Signal.

    Damit sollte sich schon etwas anfangen lassen.

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Hallo,

    Anschliessend hab ich mir eine Filter Funktion ausgedacht und mit LTspice umgesetzt. Die Details sind auf dem folgenden Screenshot erkennbar:
    Bild hier  
    Für den Fall, dass das nicht so gut lesbar ist, poste ich hier noch die Netlist:
    * G:\korfil\ltspice\diskret\Draft6.asc
    B1 DEVt 0 V=time - round(time*{Fs}-.5)/{Fs}
    B2 Xdig 0 V=round(delay(V(Xkont),V(DEVt))*127)/127
    V1 Sin 0 SINE(0 1 {Fx})
    B3 mean 0 V=v(xdig)+delay(v(mean),tx)*.9-delay(v(xdig),{tx/2})
    B4 y 0 V=round(v(mean)/10*127)/127
    B5 Xkont 0 V=(v(sin)+(rand({time*fs})-.5)*2)/2
    V3 +5 0 5
    XU1 N002 Ykont +5 -5 Ykont LM324
    R1 N002 N001 10k
    R2 N001 y 10k
    C1 Ykont N001 3n9
    C2 N002 0 3n9
    V2 -5 0 -5
    .tran 0 {tx*40} {tx*35}
    * Frequenz des Sampling
    .param Fs = 16k ts = {1/Fs}
    *Frequenz des Eingangs
    .param Fx = 1k tx = {1/Fx}
    * SINE(0 1 {Fx})
    * .tran {tx*10}
    .lib LM324.sub
    .backanno
    .end


    Zur Erklärung:
    Ein Sinus Signal wird erzeugt, Rauschen wird dazu gemischt, das kontinuierliche Signal wird diskretisiert, dann digital gefiltert und schliesslich mit einem Smoothing Filter wieder der analogen Welt zurück gegeben.


    - - - Aktualisiert - - -

    Bild hier  

    Das Ergebnis ist schon mal gut an zu sehen, wie sich das wohl in Audio anhört?
    Geändert von vohopri (27.02.2013 um 19:16 Uhr)

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Audio hört sich sehr gut an, aber zunächst zeige ich mal einen Bode Plot von diesem Filter Verfahren.

    Bild hier  

    Nachdem das Verfahren in ltspice gut funktioniert hat, habe ich es auf dem PC zur Verarbeitung von wav files implementiert.

    xi:=x+128;
    //memoTest.Lines.Add(inttostr(xi));
    //xi:=xi div 2; // test OK Outputfile enthält die richtigen Daten 8 bit c2
    //xo := (xi - xi3) div 2; // test OK das filtert schon mal ein wenig
    //xi3:=xi2;xi2:=xi1;xi1:=xi;
    xo:=round(xi-xi4+xs8*0.95);
    //xo:= xi4; // war ein Test
    xi4:=xi3;xi3:=xi2;xi2:=xi1;xi1:=xi;
    xs8:=xs7;xs7:=xs6;xs6:=xs5;xs5:=xs4;xs4:=xs3;xs3:= xs2;xs2:=xs1;xs1:=xo;
    // das geht jetzt gut, mit der Rekursion
    //xo := round(sqrt(sqr(xo/40)+sqr(xs3/40))); // Betrag out = DC Impulse, OK
    xo:=round(xo/40); // soundsignal out, OK
    x:=xo-128; // out
    processed.write(x,1);

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Anscheinend kann ich hier keine wav Files als Hörprobe hochladen. Darum zeige ich visuell die Signalverläufe der wav Files. Oben verrauschtes Morse Signal VVV, Mitte gefiltertes Signal und untendemoduliertes Signal, das sind die DC Impulse noch ohne Tiefpass und Flankenrückgewinnung.

    Bild hier  

    Als Nächstes ist dann ein Programm zu schreiben, dass die Signale nicht von einem File liest und filtert, sondern von der Soundkarte und on the Fly gefiltert ohne nennenswerte Verzögerung auf dem Lautsprecher ausgibt. Es wird noch ein wenig dauern, bis ich das präsentieren kann, denn mein Zeitbudget ist knapp und der Soundkartenzugriff ist ein wenig aufwändiger.

    Also lade ich ein, den hier aufgezeigten Weg zu diskutieren. Sicher gibt es auch andere hier, die Erfahrungen auf dem Gebiet beitragen können.

  8. #8
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    34
    Beiträge
    3.501
    Blog-Einträge
    9
    Hey,

    das sieht ja schon vielversprechend aus
    Freue mich mehr davon zu hören.
    Mit LTSpice habe ich leider noch nicht gearbeitet und von daher kann ich in erster Linie nur was mit den Bildern anfangen.
    Mal schauen....vielleicht schreibe ich LTSpice noch auf meine ToDo Liste, dass ich es mir mal anschaue / damit arbeite
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Tiefpass und Schwellwert mit oder ohne Hysterese sind sehr einfach zu realisieren.

    Bild hier  

    Aber eine sinnvolle Automatik, die die Schwellen festlegt, ohne in längeren Pausen Unsinn und Krach zu machen, das scheint eine Herausforderung zu werden. Irgend etwas mit Varianzanalyse könnte da helfen. Oder gibts noch andere Ideen?

Ähnliche Themen

  1. Empfehlung: Einführung digitale Signalverarbeitung (DSP)
    Von cmock im Forum Buchempfehlungen
    Antworten: 0
    Letzter Beitrag: 15.10.2009, 12:40
  2. LCD_Ansteuerung mit einem DSP (Digital_Signal_Prozessor)
    Von musiq im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 29.01.2008, 21:28
  3. Verrückte Idee: Stereo Vision in DSP
    Von lukepower im Forum Software, Algorithmen und KI
    Antworten: 4
    Letzter Beitrag: 09.03.2006, 20:24
  4. DSP <-> HDD
    Von Michael Re im Forum AVR Hardwarethemen
    Antworten: 0
    Letzter Beitrag: 22.08.2005, 11:10
  5. DSP: SPI <-> USB
    Von Michael Re im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 16.08.2005, 14:22

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus