‮Сдвиг по фазе (kincajou) wrote,
‮Сдвиг по фазе
kincajou

Category:

Stand-alone SDR board (3)

Для правильной оцифровки сигнала с ПЧ 455 кГц при помощи АЦП с максимальной скоростью 500 кГц нужно использовать, как я уже упоминал, sub-band sampling. Т.е. в качестве "опорной" будет частота 364 кГц:
455 - 364 = 91
364 = 91*4
fs = 4*f0


У меня есть опорный генератор, выдающий (с очень хорошей точностью) 20.000 МГц ± 1ppm. Получить от него 364 кГц простым делением не получится, нужно использовать аккумулятор фазы, как в DDS. Но и так не выйдет выдать точное значение, она всё равно будет с какими-то дробными долями (хоть и очень маленькими).

Что приводит к иррациональному соотношению частот квантования "сырого" сигнала и потока для аудиокодека (этому нужно 8, 32 или 48 кГц). Дурацкая проблема, наверняка решается как-то просто - типа, "наплевать на некруглость соотношения и считать, что частота равна строго 364000 Гц". Я не знаю, к каким именно эффектам это приведёт, но качество обработки сигнала от этого вряд ли улучшится.




А почеу бы и не прикинуть, собсно...

Например, для простоты конструкции возьмём 16-битный аккумулятор фазы. То есть углу 2π будет соответвовать число 65535. Опорный 20МГц генератор поделим, например, в восемь раз, будет 2,5МГц: реже тикает - меньше энергопотребление.

Из этих 2.5 МГц нам нужно получить 364 кГц. Для этого сначала посчитаем, какое приращение фазы нужно для этого иметь:
(0.364/2.5) * 65535 = 9541,896
Округляем до ближайшего целого, т.е. 9542
И смотрим, какая частота получится на самом деле (в герцах, для наглядности):
(9542/65535) * 2500000 = 364003,96734569314106965743495842 Гц.
Вот этот длинный страшный хвост (почти четыре лишних герца, о ужас!), наверное, будет нам как-то мешать.
Посмотрим, во что он превратится после снижения частоты до 8 кГц.
Для упрощения алгоритма сделаем так: удвоим частоту, а потом одним махом поделим на 91, как предполагалось ранее. Получается всего 8000,0871944108382652671963727125 Гц.
То есть разница меньше одной десятой доли герца. То есть, если я правильно понимаю смысл этой ошибки, она всего лишь добавит к выходной последовательности какую-то очень низкочастотную шумовую составляющую, но т.к. реальный алгоритм будет содержать полосовой фильтр (отрезающий слишком низкие и слишком высокие частоты перед подачей сигнала на кодек), то на выход эта помеха не попадёт вообще.

Проверю экспериментально уже совсем скоро.
Tags: dsp
Subscribe

  • День победы

    Пишу 10-го, потому что 9-го и так все пишут. Это - дата. И праздник, потому что победы празднуют. Один из двух важных (для меня) исторических дней.…

  • ух, чуть не забыл

    С ДНЁМ РАДИО!

  • Как поймать льва?

    Нарисуйте квадрат и ждите.

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 5 comments