После достаточно успешной борьбы с джиттером пришло время кардинально улучшить качество звука, выводимого приёмником.
В ходе работы над приёмником было замечено большое количество шума, искажений, писков, скрежетов, щелчков и прочего. Разберём причины, которые я нашёл, и как с ними бороться:
Отсутствие синхронизации DMA, кодека и FPGA. У каждого свой тактовый генератор и работают они в разнобой. Для этого в FPGA сделан отдельный PLL, который выдаёт в 256 тактов больше, чем частота звука (2.288мгц от 48кгц). От этого PLL питается I2S STM32 и MCLK вход кодека (от своего кварца пришлось всё же отказаться).
Несовершенство схемотехники кодека и АЦП. Допускаю ошибки в обвязке, хочу провести эксперименты по разному подключению трансформатора в АЦП, а также подобрать номиналы конденсаторов на кодеке. В дальнейшем заменю АЦП на AD9640.
Грозовые разряды и импульсные помехи. Решил программно, вырезая резкие всплески, кардинально отличающиеся от средней амплитуды сигнала, избавило от щелчков, порог срабатывания регулируется в define’ах.
Помехи от соседних станций, других частот. Решается применением АЦП большей разрядности и с лучшим динамическим диапазоном, а также применением диапазонных полосовых фильтров на входе приёмника.
Напоминаю, что последние версии прошивок и схемы доступны в репозитории проекта https://github.com/XGudron/UA3REO-DDC-Transceiver
А у Вас частота нормально отображается? У меня она сильно съезжала влево, пока я не поправил расчет смещения по х в файле MA_ILI9341.c
current_x_offset = x + 6 * size — 1;
Вместо FFT одна зеленая палка, хотел вставить ссылку с фото, но комментарий не опубликовался.
Да, не прыгает, но на всякий случай включил эту строчку в код, у меня отображается что с ней, что без неё одинаково https://ua3reo.ru/wp-content/uploads/2018/11/P_20181110_160621.jpg