Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
QCX-SSB z QRP-LABS
#12
DSP jest proste.... do momentu w którym zaczniesz wgryzać się w teorię Smile

Po czystości kodu Guido widać że nie ma czasu Smile W tym kodzie jest jeszcze sporo miejsca na optymalizację (niekoniecznie pod kątem efektów, choć może też).
Po szukaniu w necie ile czasu zajmują atmedze różne operacje okazało się ze dzielenie 32bitowe robi się prawie tak samo wolno jak dzielenie przez float'a i duużo wolniej niż mnożenie.
W swoim AGC na atmedze (w burzeninie) używałem podstawy będącej wielokrotnością dwójki, dzięki temu wszystkie dzielenia dawało się zamienić na przesunięcie binarne. I tak np:
Kod:
avg_bias =  ((992*avg_bias)>>10) + (x<<5);
to to samo co:
Kod:
avg_bias = 0,96* avg_bias  + 0,125*x;

tylko pomnożone o 1024;
to przy samplowaniu 9600Hz jest dolnoprzepustowy filtr eksponencjalny o f=50Hz, na atmedze wykonuje się nieco ponad mikrosekundę Smile
Nie rozumiem - nie robię. Chyba że robię żeby zrozumieć.
Odpowiedz


Wiadomości w tym wątku
QCX-SSB z QRP-LABS - przez SQ5KVS - 19-05-2020, 11:00

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości