DD4WH
positron alter Hase
Offline
Posts: 462
Ich liebe dieses Forum!
|
|
Re:Firmware-Modifikation Audio-Filter
« Reply #46 on: 25. March 2016, 12:04:22 »
|
|
Hallo sigi,
das wäre toll, da einen Tipp zur AFC zu bekommen, wie das in HDSDR gelöst ist!
Man könnte das so lösen:
1.) Wir haben ja aus dem spectrum display eine FFT des gesamten 48kHz-Spektrums, also 256 Frequenzstreifen = bins mit der Amplituden-information. Nun suchen wir innerhalb der Rx-Bandbreite den FFT-bin mit dem maximalen Signal --> das ist der carrier. Das ist erstmal ganz schön, aber sehr ungenau, weil die FFT-bin-Breite 48000Hz/256 beträgt, also sind wir nur auf 187.5 Hz genau, das reicht noch nicht. Wir stimmen trotzdem erstmal grob darauf ab, sind also maximal 187.5Hz daneben mit der Frequenz.
2.) nun nehmen wir das carrier-bin C, das links daneben C-1 und das rechts daneben C+1.
3.) durch diese drei bin-Amplituden-Werte legen wir eine auf dem Kopf stehende quadratische Parabel.
4.) wir berechnen aus diesen drei Werten mit Hilfe einer Formel, die sich schlaue Leute ausgedacht haben (quadratic interpolation), den genauen Frequenzwert des carriers und stimmen die Frequenz darauf ab.
5.) das klappt in der Praxis wirklich relativ genau (ca. 2-5Hz je nach SNR)
6.) dann kann man noch manuell nachstimmen auf 1 Hz genau
Die Methode/Formel stammt von Richard Lyons, der DSP-Guru, der auch das sehr nette Buch geschrieben hat und ist hier näher erläutert:
Jacobsen, E. & P. Kootsookos (2007): Fast, accurate frequency estimators. - IEEE Signal Processing Magazine 24(3): 123-125.
bei Google dieses eingeben:
jacobsen kootsookos dsp tricks
Lyons, R.G. (2013): Understanding Digital Processing. - Pearson Education International. --> Kap. 13.15 Spectral Peak Location algorithm
Wäre natürlich schön, das auch beim mcHF einzubauen, mal schauen, ob wir das irgendwann hinbekommen . . .
73 de Frank
|