Возможно Ли Удвоение Частоты Дискретизации Путем Оцифровки В Несколько Проходов Регулярно Периодических Сигналов?



Предыстория и введение Как уже описано в предыдущем статья , в процессе переделки игрушки-осциллографа DSO138 возникла идея в DSO303 попробовать трюк с удвоением частоты дискретизации.

Фактически для STM32F303 теоретически максимально достижимая частота дискретизации с точки зрения входа АЦП, а это определяется минимальным временем открытия АЦП, которое в нашем случае составляет 1,5 такта х (1/72 МГц).

), или примерно 20,8 наносекунд, что дает 48 MSPS (миллионов выборок в секунду).

Однако при параллельной работе 4 АЦП на частоте 6 МГц можно достичь только 24 MSPS из-за ограниченной скорости АЦП.

Представим, что мы рассматриваем регулярно периодический сигнал, который к тому же является постоянным, т.е.

не испытывает колебаний частоты и амплитуды во времени.

Можно ли как-то оцифровать его не за один, а за несколько проходов, повысив тем самым эффективную частоту дискретизации?



Оцифровка в три прохода – идея

Обратимся к рис.

1, который собственно и демонстрирует идею многопроходной оцифровки.

Предположим, что каждый АЦП запускается своим сигналом таймера, который работает на удвоенной тактовой частоте микроконтроллера и АЦП (для 32F303 - 72 и 144 МГц соответственно).

В этом случае цикл оцифровки занимает 12 тактов АЦП (24 такта таймера) с разрешением 10 бит. Разделим этот цикл на 8 слотов по 3 такта таймера (1,5 такта АЦП), что в точности соответствует времени открытия УВХ.



Возможно ли удвоение частоты дискретизации путем оцифровки в несколько проходов регулярно периодических сигналов?

Рисунок 1. Идея многопроходной оцифровки.

Мы сделаем каналы АЦП 1 и АЦП 3 опорными, они всегда будут срабатывать в одно и то же время в цикле, а время отклика каналов АЦП 2 и АЦП 4 будет перемещаться внутри цикла в зависимости от прохода.

Вот и все, выполнив 3 прохода такой оцифровки мы получим окончательный результат. «Однако, — скажет внимательный читатель, — но извините, а почему вы предполагаете, что ваш цикл оцифровки в следующем проходе будет находиться в постоянном положении относительно сигнала? Ведь начало процесса оцифровки происходит в случайный момент времени.

» И, конечно, он будет абсолютно прав.

Но для этого у нас есть два опорных канала из четырех доступных, и время прогонять процесс оцифровки неограниченное количество раз.

Просто нужно прогнать следующий проход много раз до того момента, пока положение цикла оцифровки относительно сигнала не станет достаточно близким к тому, что было во время первого прохода, проверяя корреляцию по опорным каналам.

Таким образом, наш процесс оцифровки будет выглядеть так:

  1. Оцифрованные и записанные данные с прохода 1;
  2. Оцифрованные данные из Пассажа 2;
  3. Мы рассчитали корреляцию опорных каналов, если она достаточно хорошая, то записали данные Pass 2, если нет, то повторяем шаг 2;
  4. Оцифрованные данные из Пассажа 3;
  5. Рассчитали корреляцию, если все хорошо, то записали данные и приступили к окончательной сборке и обработке данных оцифровки и отображению полученного изображения, если нет, то повторяем оцифровку Пассажа 3.


Полученные результаты

Да, в результате иногда процесс занимает довольно много времени, и оцифровку можно повторить десятки тысяч раз, прежде чем будет достигнут результат; Да, этот метод подходит не для всех сигналов; Да, результат не без искусственных артефактов, как на рис.

2., но довольно часто получается как на рис.

3. На обоих рисунках на вход подается прямоугольный сигнал частотой 1 МГц.



Возможно ли удвоение частоты дискретизации путем оцифровки в несколько проходов регулярно периодических сигналов?

Рис.

2. Результат трехпроходной оцифровки.

Есть артефакты.



Возможно ли удвоение частоты дискретизации путем оцифровки в несколько проходов регулярно периодических сигналов?

Рис.

3. Результат трехпроходной оцифровки.

Прямоугольная волна 1 МГц.

При этом худшие результаты получаются для сигналов с быстрым изменением формы и острыми краями (меандр), а лучшие результаты наблюдаются для плавных сигналов (синусоида).

Для иллюстрации на рис.

4 также представлена картина синусоидального сигнала частотой 200 кГц.

Сигнал там «немного» зашумленный, с небольшими помехами, что сразу приводит, к сожалению, к достаточно большим искажениям в виде такой вот своеобразной «бороды», поскольку одно из условий правильной картинки при таком способе оцифровки, который как уже упоминалось выше, – это постоянство и отсутствие колебаний сигнала во времени, что и иллюстрирует эта картинка.



Возможно ли удвоение частоты дискретизации путем оцифровки в несколько проходов регулярно периодических сигналов?

Рис.

4. Синусоидальный сигнал частотой 200 кГц.

Период сигнала для корректной работы корреляционного алгоритма теоретически не может быть меньше цикла оцифровки; практически приемлемый результат получается только при периодах сигнала более 3 циклов, т.е.

> 500 наносекунд. Таким образом, к сожалению, рассматривать сигналы с частотами более 2 МГц все равно не удастся.

Но по крайней мере такие сигналы можно увидеть достаточно подробно, что, несомненно, будет полезно.

Именно так DSO303 получил время развертки 500 и 200 наносекунд на ячейку.

В режиме 500 наносекунд на ячейку изображение представляет собой честный результат оцифровки, каждая точка = образец.

Потом я подумал, что неплохо бы и это изображение растянуть, так появился режим 200 наносекунд на ячейку.

Здесь используются точно те же данные, что и при сканировании по 500 наносекунд на ячейку, только они растянуты так, что один семпл = 3 точки на экране.

Это оказалось довольно удобно и получило свое право на жизнь.

Все вышесказанное является экспериментальной идеей.

Автор не претендует на полную функциональность данного экспериментального метода оцифровки и не несет ответственности за результат. Любые вопросы, комментарии и предложения приветствуются.

Теги: #Программирование микроконтроллеров #Алгоритмы #Сделай сам или Сделай сам #отладка #проектирование схем #удвоение частоты дискретизации #переделка DSO138 #DSO303

Вместе с данным постом часто просматривают: