Pages: [1] 2 3 4
|
|
|
|
Author
|
Topic: Firmware-Modifikation Audio-Filter (Read 6687 times)
|
|
DD4WH
positron alter Hase
Offline
Posts: 462
Ich liebe dieses Forum!
|
|
Firmware-Modifikation Audio-Filter
« on: 03. February 2016, 19:16:35 »
|
|
Im Anhang ein von mir zusammen gestellter detaillierter Überblick über die im Augenblick im mcHF implementierten Audio-Filter mit ihren Optionen. Im Moment sind in der Tabelle lediglich die Bandbreiten ab 1k8 eingepflegt.
Ich möchte nun einige Erweiterungen in die Audiofilter einbauen und möchte aber vorher hier im Forum die geplanten Änderungen kurz zur Diskussion stellen. In der Tabelle ist das konkretisiert.
Folgende Dinge habe ich vor:
1.) Basswiedergabe verbessern für die Filter 1k8, 2k3, 3k6: eine Option mehr anzuwählen im Menu --> low pass filter anstelle der bandpass filter
2.) das interpolate filter ist für alle WIDE filters dasselbe (low pass 10k), das ergibt keinen Sinn, zumal für 3k6 das interpolation filter ein 5k lowpass ist, für das 5k Filter aber ein 10k lowpass --> daher der Plan, individuelle interpolation filter für die jeweiligen Bandbreiten implementieren (auch für die kleinen Bandbreiten)
3.) eine weitere Rx bandwidth einbauen: 4k4: ist das Beste für SWL, da gute Soundqualität, aber weit genug weg von 5k und den daraus resultierenden Heterodynen durch den 5kHz Kanalabstand
4.) Ich meine einen deutlich störenden rauschig-knisternden (Alias)-Artefakt wahrzunehmen bei den WIDE FILTERS 5kHz, 6kHz, 7.5kHz: die WIDE Filter haben alle KEIN postdetection IIR Filter (übrigens werden im code die postdetection filter PREFILTER genannt . . .). In audio_driver.c wird zwar ein 10k lowpass IIR initialisiert (line 450), dann aber in line 1487 bei WIDE Filter nicht angewandt. Vielleicht kann man durch die passenden Interpolationsfilter (siehe Punkt 2) hier etwas tun, denn im Moment sind für 5k, 6k, 7.5k und 10k nur ein 10k lowpass interpolation filter implementiert. Auch könnte man ausprobieren, ob man auch in den WIDE modes ein passendes IIR postdetection filter implementiert (ob die Processor power ausreicht? Schließlich ist der decimation factor für WIDE filter nur 2 statt 4). Ganz einfach wäre natürlich ein weiteres moderates IIR filter NACH der interpolation (allerdings dann in 48ksps, was rechenintensiver ist). 5.) Das notch filter hört sich grauenvoll verzerrt an bei WIDE modes, hier ist irgendetwas faul . . . Keine Idee, was das sein könnte.
Würde mich sehr über Ergänzungen und Kommentare freuen.
Mein weiteres Vorgehen wäre (in den nächsten Wochen, bin Teilzeit-mcHFler ;-)): - Lernen, wie man github benutzt - Filter berechnen (habe schon das erste MATLAB IIR -Filter berechnet und auf dem mcHF getestet, das funktioniert sehr gut: ein brick wall 3k6-lowpass-Filter mit satter Bass-Wiedergabe) - Menu ändern, um die o.g. Änderungen einzubauen - das Ganze in einen pull request packen
73 de Frank
|
----------------------------------------- Teensy Convolution SDR https://github.com/DD4WH/Teensy-ConvolutionSDR
|
|
|
daba
schon länger dabei
Offline
Posts: 52
Ich liebe dieses Forum!
|
|
Re:Firmware-Modifikation Audio-Filter
« Reply #1 on: 04. February 2016, 07:49:52 »
|
|
Hallo Frank, die Tabellenform ist recht detailliert. Für den groben Überblick ist sie aber nicht so gut. Weis du ob das Diagramm in der Form noch aktuell ist (Attachement) ich bin noch dabei mir ein Überblick zu schaffen?
daba[img][/img]
|
« Last Edit: 04. February 2016, 12:33:31 by daba » |
Logged
|
|
|
|
|
DD4WH
positron alter Hase
Offline
Posts: 462
Ich liebe dieses Forum!
|
|
Re:Firmware-Modifikation Audio-Filter
« Reply #3 on: 04. February 2016, 08:41:18 »
|
|
@daba: das attachment war nicht dran an Deiner Nachricht!? Clint hat in der Yahoo group mal einen Überblick gepostet, das finde ich jetzt aber so schnell nicht mehr. Meine Tabelle ist aber auch mehr eine Arbeitsgrundlage für die Filter-Modifikation und nicht als übersichtlicher Überblick gedacht.
Im Prinzip sieht der generelle Audio-Path so aus (AGC, I&Q-Korrektur, LMS NR, LMS notch filter, gain scaling etc. zur Vereinfachung alles weggelassen):
SSB:
I -- Hilbert 0 Grad---- | +/- (USB/LSB) -- FIR Decimate 4 taps -- IIR filter --> Q-- Hilbert 90 Grad --
--> FIR interpolation 16 taps
AM:
I -- FIR filter 89 taps---- | -- sqrt(I*I+Q*Q) (AM envelope detector) --> Q-- FIR filter 89 taps----
--> FIR Decimate 4 taps -- IIR filter --> FIR interpolation 16 taps
Die sample rate ist bei schmalen Filtern (< 5kHz) 12ksps (decimation by 4), bei WIDE 24ksps (decimation by 2).
Bei WIDE filter fällt zur Zeit im aktuellen Code das IIR-Filter ganz weg! Siehe die damit potenziell verbundenen Probleme in meiner letzten mail.
@Andreas: ich benutze Windows 8.1, Eclipse Mars und github. Habe mit Commandozeilen eigentlich keine Probleme, bin skriptbasierte Statistik-Programme (R) gewöhnt. Mein größtes Verständnisproblem im Moment ist, wie ich die Programme github und Eclipse koppele, so dass alles was ich in Eclipse tue, auch in der Versionsverwaltung protokolliert wird . . . Aber ich stehe bei github auch erst ganz am Anfang.
73 de Frank
|
|
Logged
|
----------------------------------------- Teensy Convolution SDR https://github.com/DD4WH/Teensy-ConvolutionSDR
|
|
|
DF8OE
Administrator
Offline
Posts: 6284
Stellvertr. OVV I40, Jugend / Nachwuchsreferent
|
|
Re:Firmware-Modifikation Audio-Filter
« Reply #4 on: 04. February 2016, 09:55:56 »
|
|
Nutze nicht die in Eclipse "integrierte" Githubunterstützung. Es gibt keine einzige Integration oder grafische Oberfläche, die so perfekt funktioniert wie das Kommandozeilentool. Wichtig ist auch, dass Du Dir einen GitHub-Account zulegst (sofern nicht schon geschehen) und einen Fork vom mcHF-Github machst. Das ist dann dein Arbeitsfeld. Mit git pull holst Du Dir alles aus dem GitHub auf deine lokale Festplatte. Mit einem git checkout xxxx (wobei xxxx der Branch ist, in den Du wechselbn möchtest) wechselst Du die Branches. Und richtig: Der lokale Ordner, in dem Du arbeitest, ändert seinen Inhalt mit den "Checkouts"!!!! Es ist stets das dort drin, was in dem Branch ist, den Du bearbeiten möchtest. Bearbeiten kannst Du die Quellen wie Du willst. Wenn Du "fertig" bist, führst Du zunächst ein git add durch. Damit fügst Du die Dateien dem Projekt hinzu (denn einige haben sich ja geändert). Mit einem commit -m "dies ist ein Kommentar" werden sie in dein lokales git integriert. Und zu Guter Letzt mit einem git oush origin xxxxx (wobei das xxxx der Name des entferntenBranches ist) werden sie auf dein GitHub hochgeladen. Dann musst Du nur noch einen Pullrequest stellen, und ich bekomme das dann zum Querlesen und einfügen.
Klar - da gibt es noch viel mehr zu beachten und tun. So ist die Authentifizierung bei GitHub mit einem auf deiner Festplatte liegenden Key gelöst. Das sind alles Dinge, die für einen Linuxianer, der auf der Konsole arbeitet, ganz normale Dinge die er nicht mal erwähnenswert findet und von denen ich hier sicher ein paar vergessen habe. Es gibt aber sehr gute deutsche Erläuterungen zu Github - wenn auch nicht auf einer Seite zusammengefasst. Das Gute wenn Du mit dem CLI arbeitest ist, dass Du die ganzen Linux-HowTos alle mit verwenden kannst
vy 73 Andreas
|
|
Logged
|
Wenn der Wind des Wandels weht, nageln die einen Fenster und Türen zu und verbarrikadieren sich. Die anderen gehen nach draußen und bauen Windmühlen... qrz.com-Seite von DF8OE
----------------------------------------------------- >>>> Die Inhalte meiner Beiträge dürfen ohne meine explizite Erlaubnis in jedwedem Medium weiterverbreitet werden! <<<<
|
|
|
DD4WH
positron alter Hase
Offline
Posts: 462
Ich liebe dieses Forum!
|
|
Re:Firmware-Modifikation Audio-Filter
« Reply #5 on: 04. February 2016, 10:08:18 »
|
|
Danke für die Anleitung! Ich benutze das command line tool.
Habe nun Folgendes gemacht:
- mcHF devel geclont --> ist lokal auf meiner Platte - Syncing eingestellt mit: git fetch uspstream, git checkout master, git merge upstream/master - jetzt erscheint aber auf der lokalen Platte nur die master Version?? Muss ich das anders machen mit: git fetch upstream, git checkout devel-DF8OE ? - dann habe ich Probleme, dieses lokale repository in mein repository online zu bekommen, wie geht das? Mit git push origin master habe ich es versehentlich versucht zu Dir zu schieben, was natürlich nicht ging ;-) Aber zu mir bekomme ich es auch nicht mit: git push https://github.com/DD4WH/mcHF_Test.git master
Für Hinweise wäre ich dankbar ;-)
[edit] Habe jetzt einen 2. Versuch gemacht mit: git pull https://github.com/df8oe/mchf-github.git git checkout master funktioniert, aber git checkout devel-DF8OE kennt er nicht . . . ??
stecke jetzt massiv fest . . .
73 de Frank DD4WH
|
« Last Edit: 04. February 2016, 10:27:55 by DD4WH » |
Logged
|
----------------------------------------- Teensy Convolution SDR https://github.com/DD4WH/Teensy-ConvolutionSDR
|
|
|
|
DD4WH
positron alter Hase
Offline
Posts: 462
Ich liebe dieses Forum!
|
|
Re:Firmware-Modifikation Audio-Filter
« Reply #7 on: 04. February 2016, 12:35:26 »
|
|
Hallo Andreas,
ich kann Clint nun sehr gut verstehen
Es funktioniert hinten und vorne nicht. Habe gerade github das zweite Mal neu installiert (funktioniert aber immer noch nicht ohne Administratorrechte).
Ich habe nun nach 3h auch verstanden, was forken heißt: im Browser einmal klicken. OK.
git-Account ist da. Eingeloggt. Geforkt. Deine Dateien liegen nun unter DD4WH bei github. dann funktioniert aber dieser einfache Befehl nicht:
git pull https://github.com/DD4WH/mchf-github.git
fatal: Not a git respository (or any of the parent directories): .git
Könntest Du mir da bitte nochmal weiterhelfen?
73 de Frank
|
|
Logged
|
----------------------------------------- Teensy Convolution SDR https://github.com/DD4WH/Teensy-ConvolutionSDR
|
|
|
|
DD4WH
positron alter Hase
Offline
Posts: 462
Ich liebe dieses Forum!
|
|
Re:Firmware-Modifikation Audio-Filter
« Reply #9 on: 04. February 2016, 12:58:27 »
|
|
naja, die Erklärung des forkens hat mit Linux nichts zu tun ;-)
Ich bin jetzt schon ein bis zwei Schritte weiter! Für andere OMs versuche ich das mal zu dokumentieren: Starten mit GitHub für den mcHF
1.) GitHub-Account einrichten 2.) Im GitHub-Progrmm einloggen 3.) Repository machen mit + 4.) Im Webaccount einloggen 5.) Fork von df8oe machen 6.) Nun in die Command shell wechseln 7.) mkdir Mein_Verzeichnis 8.) cd Mein_Verzeichnis 9.) git init 10.) git pull https:/github.com/DD4WH/mchf_github.git [die ist das von DF8OE geforkte repository] 11.) git checkout master [wechselt zum master]
Das läuft bis hierhin: Lokal habe ich jetzt die neuesten Dateien des masters, aber dann funktioniert der von Dir angegebene Wechsel des branches nicht:
12.) git checkout devel-DF8OE error: pathspec 'devel-DF8OE' did not match any file known to git
Hättest Du da nochmal einen Tipp?
73 de Frank
|
|
Logged
|
----------------------------------------- Teensy Convolution SDR https://github.com/DD4WH/Teensy-ConvolutionSDR
|
|
|
|
DD4WH
positron alter Hase
Offline
Posts: 462
Ich liebe dieses Forum!
|
|
Re:Firmware-Modifikation Audio-Filter
« Reply #11 on: 04. February 2016, 13:14:29 »
|
|
Danke!
bei git branch erscheint nur * master
In meinem github sind aber alle zu sehen !?
Wie forke ich denn die anderen branches noch dazu?
73 de Frank
und vielen Dank für Deine Geduld!
|
|
Logged
|
----------------------------------------- Teensy Convolution SDR https://github.com/DD4WH/Teensy-ConvolutionSDR
|
|
|
|
DB4PLE
positron Urgestein
Offline
Posts: 1278
|
|
Re:Firmware-Modifikation Audio-Filter
« Reply #13 on: 04. February 2016, 15:10:44 »
|
|
Hallo,
ich werde in Kürze mal meinen üblichen Github-Workflow mit Windows beschreiben. Das sollte helfen, hier mitarbeiten zu können, ohne allzusehr zu verzweifeln.
73 Danilo DB4PLE
|
|
Logged
|
|
|
|
DD4WH
positron alter Hase
Offline
Posts: 462
Ich liebe dieses Forum!
|
|
Re:Firmware-Modifikation Audio-Filter
« Reply #14 on: 04. February 2016, 15:38:46 »
|
|
Hallo Danilo,
das wäre super!
Bin jetzt auch schon gefühlt etwas weiter und habe meinen ersten pull request verschickt. Ob ich das reproduzieren kann, werde ich in den nächsten Wochen sehen . . .
Hier meine Vorgehensweise. Kannst Du gerne kommentieren/ändern/optimieren, wie gesagt, ich bin ein blutiger github-Anfänger.
Starten mit GitHub für den mcHF (zusammengestellt von DD4WH, keine Gewähr fürs Funktionieren ;-))
1.) GitHub-Account einrichten 2.) Im GitHub-Progrmm einloggen 3.) Repository machen mit + 4.) Im Webaccount einloggen 5.) Fork von df8oe machen 6.) Nun in die Command shell wechseln 7.) mkdir Mein_Verzeichnis 8.) cd Mein_Verzeichnis 9.) git init 10.) git remote add upstream https:/github.com/DD4WH/mchf_github.git [dies ist das von DF8OE geforkte repository] 11.) git fetch --all 12.) git checkout master [wechselt zum master] 13.) git checkout devel-DF8OE [wechselt zur devel] 14.) in der devel mit Eclipse programmieren/ändern oder was auch immer 15.) git add . 16.) commit –m „hier Kommentar zu den gemachten Änderungen einfügen“ 17.) git push https:/github.com/DD4WH/mchf_github.git devel-DF8OE 18.) pull request an Andreas senden 19.) Änderung ist implementiert und alle sind glücklich ;-)
Bestimmt fehlt hier noch einiges.
Zum Aktualisieren des eigenen online-forks (also Aktualisieren des geforkten online-repositories auf Grundlage von Andreas repository) habe ich dies gemacht. Passt das?
git fetch --all git checkout master git rebase git rebase upstream git status git push
73 de Frank DD4WH
|
|
Logged
|
----------------------------------------- Teensy Convolution SDR https://github.com/DD4WH/Teensy-ConvolutionSDR
|
|
|
Pages: [1] 2 3 4
|
|
|
|
|
|
|