Некоторое время назад мне понадобилось (или захотелось) обзавестись карманным генератором синусоидальных сигналов звуковой частоты, который был бы простым, стабильным, воспроизводимым, управлялся одной ручкой и работал от батарейки 9 В. Решение на основе «сглаженных треугольных импульсов» выглядело вполне подходящим. Хотя принцип прост – нужно сформировать последовательность треугольных импульсов, подать ее через резистор на пару встречно включенных диодов, взять синусоиду с диодов и усилить ее, – уровень сигнала и сопротивление резистора оказались весьма критичными. Генератор работал достаточно хорошо, чтобы заставить меня задуматься, каковы же пределы: насколько точно можно аппроксимировать синусоиду подобным способом?
Предлагаемая конструкция, при описании которой я сделал акцент на практической стороне реализации и почти не использовал математики, основана на моей первоначальной концепции, которая совершенствуется дальше и, возможно, дополняет недавние публикации по генераторам, например [1] и [2]. Мы будем двигаться поэтапно, начиная с формирования треугольных импульсов, продолжая их сглаживанием, а затем устраняя все остальные источники ошибок.
Первая тестовая схема
Первоначально я планировал смоделировать ситуацию, рассчитывая напряжение на диоде, получающем питание через резистор, для линейно нарастающего напряжения, сравнивая его с соответствующими значениями синуса в одном квадранте, оценивая отличия и повторяя итерации до тех пор, пока не будут найдены оптимальные значения для напряжения и сопротивления резистора. Однако статья в Википедии [3] разочаровала меня, хотя она и была поучительной; в ней также объясняются обходные пути, которые используются в SPICE. Нужен был подход, приближенный к реальной жизни, что в любом случае гораздо увлекательнее.
Моей отправной точкой был хорошо известный генератор, показанный на Рисунке 1, в котором эффективно сочетаются интегратор и триггер Шмитта. RT и CT – это, соответственно, подстроечный резистор (переменный) и конденсатор (возможно, переключаемый).
![]() |
|
Рисунок 1. | Простой генератор, в котором эффективно сочетаются интегратор и триггер Шмитта. |
Когда уровень выходного сигнал операционного усилителя (ОУ) высокий, конденсатор CT заряжается через резистор RT до тех пор, пока напряжение на нем не достигнет порога, определяемого отношением сопротивлений RF1 к RF2, после чего выходной уровень становится низким, и конденсатор CT заряжается в противоположном направлении, пока не будет достигнут противоположный порог, и так повторяется бесконечно. Таким образом, на выходе получаются прямоугольные импульсы, а на конденсаторе CT – представленные экспонентой треугольные импульсы. Хотя коэффициент заполнения составляет ровно 50%, а рабочая частота стабильна при изменении питания (при условии сбалансированных напряжений шин питания и наличия rail-to-rail выхода у операционного усилителя), ни прямоугольные, ни экспоненциальные импульсы не слишком подходят для формирования синусоид, особенно когда их амплитуды зависят от питания. (В моем первоначальном техническом задании предусматривалась батарейка PP3/6LR61, дающая около 9 В (или ±4.5 В), когда она новая, и гораздо меньше, когда не новая).
Нужен был другой подход, и на Рисунке 2 показано ядро новой схемы. (Предполагается, что напряжения плюсовой и минусовой шин питания сбалансированы). Мне пришла в голову мысль, что наилучшим уровнем для треугольного импульса в каждую сторону может быть ровно одно падение напряжения на диоде, и что все можно определить в терминах прямого напряжения диода (VF). Так зародилась идея, а теперь и эта статья.
![]() |
|
Рисунок 2. | Оригинальная схема простого генератора треугольных импульсов и преобразователя в синусоиду. |
Эффективное сочетание генерации треугольных импульсов с их преобразованием в синусоиду позволило устранить ошибки первого порядка, минимизировать зависимость частоты от напряжения питания и температуры, а также обеспечить окончательную подстройку THD до 0.7-3% в зависимости от частоты. Существуют и другие способы включения тех же элементов для получения тех же результатов, но этот способ минимизирует задержки и поэтому работает лучше. В дальнейшем мы будем совершенствовать его.
Сначала заменим резистор RF2 парой диодов D1 и D2 так, чтобы пороговые уровни определялись их прямыми напряжениями VF, а напряжение на конденсаторе CT теперь изменялось вокруг ±VF. Затем добавим компенсационную обратную связь для линеаризации импульсов. (В статье [4] показано другое применение этого метода). На резистор RT подается буферизованная копия напряжения на конденсаторе CT плюс/минус напряжение на диодах D3/4, поэтому напряжение на нем всегда равно 2VF, что обеспечивает линейное изменение. Таким образом, напряжение на CT и, следовательно, на выходе усилителя A2 представляет собой чистый треугольник с пиковой амплитудой 2VF. Колебания напряжения питания в значительной степени поглощаются резисторами R1 и R2 – не полностью, но мы можем игнорировать это как эффект второго порядка; стабильность частоты колебаний находится в пределах 1% при напряжении на шинах питания от 3 до 15 В.
Усилитель A3 буферизирует питание RT так, что резистор R2 и диоды D3/4 остаются ненагруженными. На Рисунке 3 показаны осциллограммы сигналов схемы и БПФ выходного сигнала с критичной настройкой на частоту около 1 кГц потенциометром R3.
![]() |
|
Рисунок 3. | Осциллограммы и БПФ для схемы на Рисунке 2. БПФ выходного сигнала соответствует критической настройке на 1 кГц резистором R3. |
Диоды по своей природе чувствительны к температуре; их прямое напряжение падает примерно на 2 мВ/°C. Таким образом, пороги изменяются на эту величину, что потенциально приводит к увеличению рабочей частоты с ростом температуры. Однако напряжения на диодах D3/4 падают на ту же величину, пропорционально снижая напряжение на RT, и тем самым компенсируя изменения, вызванные вариациями температуры. Теперь у нас есть превосходные симметричные треугольные импульсы с определенной амплитудой 2VF пик-пик и стабилизированной частотой, устойчивой к изменениям температуры и напряжения питания.
Подача через резистор R3 на диоды D5/6 сглаживает их в приемлемую синусоиду благодаря логарифмической зависимости тока от напряжения на диодах (но см. статью [3] в Википедии еще раз). Прямое напряжение диодов D5/6 падает с повышением температуры, но так же падает и амплитуда треугольных импульсов. A4 усиливает синусоиду, чтобы получить выходной уровень порядка 2.2 В пик-пик – 0.775 В с.к.з. или 0 дБн. (На схеме не показаны переключатель диапазонов CT, регулятор уровня выходного сигнала и выходной усилитель с коэффициентом усиления 3). Подстройкой R3 и наблюдением БПФ на экране осциллографа добиваются минимального содержания третьей гармоники; примерно 20 кОм являются наилучшим компромиссным значением.
Однако при настройке, скажем, на 1 кГц искажения на других частотах, особенно выше 8 кГц, будут значительно хуже. Это связано с характеристиками усилителя A1, и мы рассмотрим это позже. Но хотя мы сосредоточили внимание на третьей гармонике, а что насчет других? Простой двойной Т-образный режекторный фильтр с обратной связью, рассчитанный на частоту, близкую к 1 кГц, с добротностью 2 и коэффициентом усиления 10 позволил с помощью простого БПФ осциллографа выявить гармоники, ранее скрытые в шумах дискретизации. Это не только ясно показало третью гармонику, но и позволило увидеть, что уровень пятой также менялся при настройке потенциометра R3, но не в соответствии с изменениями третьей гармоники, намекая на то, что баланс критически зависел от уровня сигнала, приложенного к R3, а также от сопротивления R3. Более высокие гармоники – седьмая и выше – практически не изменялись.
Пора собрать тестовый стенд, чтобы проверить, что происходит, но сначала давайте посмотрим на проблему с генератором.
Его частота теоретически равна 1/4RTCT. (Считаем, что CV = IT, где C – емкость, V – (изменение) напряжения, I – зарядный ток и T – время заряда; все для линейного изменения). Но чем выше частота, тем сильнее несоответствие реальности и больше рассогласование задержек распространения. В основном это связано с усилителем A1, поскольку он подключен к цепи RTCT. Для частоты 1 кГц измеренное значение RT составило 22.8 кОм при CT = 10 нФ, а не 25 кОм; 1 МОм + 10 нФ давало 24.5 Гц; 10 кОм + 10 нФ – 2.12 кГц; 10 кОм + 1 нФ – 15.1 кГц.
А1 – это операционный усилитель TLV237x с полосой пропускания 3 МГц, напряжением питания до 16 В и rail-to-rail входами и выходом. Его внутренняя задержка распространения и конечная скорость нарастания означают, что амплитуда треугольных импульсов постоянно растет с частотой, удваиваясь примерно на 25 кГц, что приводит к перегрузке преобразователя в синусоиду и увеличению искажений. В идеале это должен быть быстрый компаратор, но те, которые имеют приличное напряжение питания и биполярные rail-to-rail выходы, в настоящее время имеют двузначные (в фунтах стерлингов, долларах или евро) ценники и трехзначные (в неделях) сроки изготовления. (Подходящие 5-вольтовые компоненты и соответствующие ОУ можно приобрести у нескольких производителей). Чтобы вылечить симптомы, если не причину, нужно стабилизировать амплитуду генерируемых импульсов.
Ссылки
- Stephen Woodward. Буферизованный и регулируемый генератор треугольных и прямоугольных импульсов на одном сдвоенном rail-to-rail ОУ
- Михаил Шустов. Функциональный многофазный генератор с синтезом треугольного сигнала из синусоиды
- Diode modelling
- Einar Abell. Линейный генератор пилообразных сигналов на одном операционном усилителе