ГЕНЕРАТОР СИНУСОИДАЛЬНОГО СИГНАЛА
GENERATOR OF SINUSOIDAL SIGNAL

Предлагаемое изобретение относится к автоматике и вычислительной технике и может быть использовано в измерительной аппаратуре для синтеза синусоидальных сигналов.
Известен генератор синусоидального сигнала (Высокоскоростной синтезатор синусоидальных сигналов прямого синтеза) [Пат. 2326492 Российская Федерация: Н03В 19/12. Высокоскоростной синтезатор синусоидальных сигналов прямого синтеза / Богатырский С.В., Гончаров А.В., Колунтаев Е.Н., Шеляпин Е.С.- №2006142978/09; заявл. 04.12.2006; опубл. 10.06.2008], содержащий устройство выбора частот, выходы которого подключены к первому входу первого N-разрядного сумматора и второму входу второго N-разрядного сумматора, а также последовательно соединенные генератор тактовой частоты и делитель частоты на два, выходы которых подключены к третьим и вторым входам первого, второго и третьего регистров сдвига соответственно. Выход первого регистра подключен к первому входу второго сумматора, выход которого соединен с первым входом второго регистра, к первому входу третьего регистра сдвига и ко второму входу первого сумматора, выход которого соединен с первым входом первого регистра. Выход третьего регистра через первое постоянное запоминающее устройство (ПЗУ), а выход второго регистра через второе ПЗУ подключены соответственно к первому и второму входам мультиплексора, выход которого соединен с цифроаналоговым преобразователем (ЦАП). Выход делителя частоты на два подключен к третьему входу мультиплексора.
Недостатком данного генератора синусоидального сигнала является то, что при увеличении диапазона генерируемых частот происходит усложнение схемы за счет увеличения разрядности сумматоров, регистров и увеличения объема ПЗУ.
Известен генератор синусоидального сигнала (цифровой вычислительный синтезатор) [Пат. 3654450 США: G06G 07/00, G06F 01/02, G06F 01/03, G06G 07/28, Н03К 04/00, Н03С 01/00, Н03С 03/00, Н03К 04/02, H04L 27/12, H04L 27/10, H04L 27/00, H04L 27/20, G06f 15/34. Digital signal generator synthesizer / Webb J. - №05/025,348; заявл. 03.04.1970; опубл. 04.04.1970], являющийся прототипом предлагаемого изобретения и содержащий последовательно соединенные устройство формирования кода частоты генерируемого сигнала (УФК), сумматор, аккумулятор фазы, выход которого соединен с вторым входом сумматора, ПЗУ и ЦАП. К входу тактирования аккумулятора фазы подключен генератор тактовых импульсов.
Этот генератор синусоидального сигнала работает следующим образом. На вход сумматора, подключенного к УФК, поступает значение кода приращения фазы Δφ при каждом такте сигнала генератора тактовых импульсов. На каждом такте значение с выхода сумматора защелкивается в аккумуляторе фазы. При этом код с выхода аккумулятора поступает на второй вход сумматора. Таким образом, значение на выходе аккумулятора постоянно увеличивается на при каждом такте тактирующего сигнала. Происходит это до тех пор, пока сумматор не переполнится, после чего значение на выходе сумматора скачком уменьшается и начинается увеличиваться снова. В результате на выходе аккумулятора постоянно имеем мгновенные значения фазы генерируемого сигнала, т.е. мгновенные значения аргумента функции. Применив таблицу значений функции косинуса, выполненную на ПЗУ, преобразуем значения фазы в амплитудные значения синтезируемого сигнала. В дальнейшем, значение с выхода ПЗУ попадают на вход ЦАП, который преобразует код амплитуды в аналоговый сигнал.
Значения кода приращение фазы Δφ рассчитываются по формуле (1):
<mrow><mi>Δ</mi><mi>ϕ</mi><mo>=</mo><mfrac><mrow><msub><mi>f</mi><mrow><mi>o</mi><mi>u</mi><mi>t</mi></mrow></msub><mo>⋅</mo><msup><mn>2</mn><mi>N</mi></msup></mrow><mrow><msub><mi>f</mi><mi>G</mi></msub></mrow></mfrac><mo>,</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mo stretchy="false">(</mo><mn>1</mn><mo stretchy="false">)</mo></mrow>
out
где f - частота генерируемого сигнала,
G
f - частота импульсов генератора тактовых импульсов,
N - разрядность сумматора и аккумулятора.
max
Максимальная частота f, генерируемая устройством, равна половине частоты тактирования схемы.
Недостатком прототипа является то, что при расширении диапазона генерируемых частот происходит усложнение схемы генератора за счет увеличения разрядности сумматора и аккумулятора фазы и увеличения объема ПЗУ.
min
Это следует из того, что минимальная генерируемая частота f равна
<mrow><msub><mi>f</mi><mrow><mi>min</mi></mrow></msub><mo>=</mo><mfrac><mrow><msub><mi>f</mi><mi>G</mi></msub></mrow><mrow><msup><mn>2</mn><mi>N</mi></msup></mrow></mfrac><mo>.</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mo stretchy="false">(</mo><mn>2</mn><mo stretchy="false">)</mo></mrow>
out
Формулу (2) получаем, выражая из формулы (1) частоту генерируемого сигнала f и подставляя минимальное приращение фазы равное 1. Как сказано выше, максимальная частота равна половине частоты тактирования. Таким образом, при сохранении одинаковой частоты тактирования, исходя из формулы (2), имеем, что для расширения частотного диапазона (уменьшения минимально генерируемой частоты) необходимо увеличивать разрядность сумматора и аккумулятора. Также следует отметить, что минимальная генерируемая частота является также значением шага перестройки частоты Δf.
Задачей (техническим результатом) предлагаемого изобретения является расширение частотного диапазона при сохранении разрядности сумматора и аккумулятора фазы и объема ПЗУ.
Для достижения поставленной задачи в генератор синусоидального сигнала, содержащий последовательно соединенные сумматор, аккумулятор фазы, выход которого соединен с вторым входом сумматора, ПЗУ, ЦАП и ФНЧ, а также УФК и генератор тактовых импульсов, введены устройство преобразования (УП) кода частоты генерируемого сигнала в код приращения фазы и в код частоты тактовых импульсов по определенному закону (9), (10), (11), вход которого подключен к выходу устройства формирования кода частоты генерируемого сигнала, а первый его выход к первому входу сумматора, управляемый делитель (УД) частоты импульсов тактирования, вход которого подключен к второму выходу устройства преобразования кода частоты, его вход тактирования подключен к выходу генератора тактовых импульсов, выход - к входу тактирования аккумулятора фазы.
На чертеже приведена функциональная схема предлагаемого устройства.
Предлагаемый генератор синусоидального сигнала содержит последовательно соединенные УФК 1, УП 2, сумматор (+) 3, аккумулятор фазы (А) 4, выход которого соединен со вторым входом сумматора 3, ПЗУ 5, ЦАП 6, а также генератор тактовых импульсов (Г) 7, УД 8, вход которого соединен со вторым выходом УП 2, а тактовый вход - с выходом генератора тактовых импульсов 7; вход тактирования аккумулятора 4 соединен с выходом УД 8.
CLK
Генератор синусоидального сигнала работает следующим образом. Алгоритм работы связки: сумматор 3, аккумулятор фазы 4, ПЗУ 5, ЦАП 6, - точно такой же, как и в прототипе. Разница в том, что код приращения фазы Δφ формируется УП 2, а источником импульсов тактирования аккумулятора 4 служит выход УД 8, на котором частота тактовых импульсов f равна:
<mrow><msub><mi>f</mi><mrow><mi>C</mi><mi>L</mi><mi>K</mi></mrow></msub><mo>=</mo><mfrac><mrow><msub><mi>f</mi><mi>G</mi></msub></mrow><mrow><msup><mn>2</mn><mi>K</mi></msup></mrow></mfrac><mo>,</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mo stretchy="false">(</mo><mn>3</mn><mo stretchy="false">)</mo></mrow>
CLK
CLK
где К - код частоты f, который поступает от УП 2 на вход УД 8 и принимающий целочисленные значения от 0 до М включительно, М - максимальное значение кода К, при котором f принимает минимальное значение.
G
CLK
CLK
При этом заменив в формуле (1) f на f (поскольку в предлагаемом генераторе синусоидального сигнала аккумулятор тактируется именно частотой f), получаем:
<mrow><mi>Δ</mi><mi>ϕ</mi><mo>=</mo><mfrac><mrow><msub><mi>f</mi><mrow><mi>o</mi><mi>u</mi><mi>t</mi></mrow></msub><mo>⋅</mo><msup><mn>2</mn><mi>N</mi></msup></mrow><mrow><msub><mi>f</mi><mrow><mi>C</mi><mi>L</mi><mi>K</mi></mrow></msub></mrow></mfrac><mo>.</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mo stretchy="false">(</mo><mn>4</mn><mo stretchy="false">)</mo></mrow>
Подставляя в формулу (4) выражение (3), имеем:
<mrow><mi>Δ</mi><mi>ϕ</mi><mo>=</mo><mfrac><mrow><msub><mi>f</mi><mrow><mi>o</mi><mi>u</mi><mi>t</mi></mrow></msub><mo>⋅</mo><msup><mn>2</mn><mi>N</mi></msup><mo>⋅</mo><msup><mn>2</mn><mi>K</mi></msup></mrow><mrow><msub><mi>f</mi><mi>G</mi></msub></mrow></mfrac><mo>.</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mo stretchy="false">(</mo><mn>5</mn><mo stretchy="false">)</mo></mrow>
min
out
Определить зависимость минимально возможной выходной частоты генерируемого сигнала f и соответственно шаг перестройки частоты Δf от К можно выразив из формулы (5) f и подставив вместо Δφ значение равное 1. Тогда получаем:
<mrow><mi>Δ</mi><mi>f</mi><mo>=</mo><msub><mi>f</mi><mrow><mi>min</mi></mrow></msub><mo>=</mo><mfrac><mrow><msub><mi>f</mi><mi>G</mi></msub></mrow><mrow><msup><mn>2</mn><mi>N</mi></msup><mo>⋅</mo><msup><mn>2</mn><mi>K</mi></msup></mrow></mfrac><mo>.</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mo stretchy="false">(</mo><mn>6</mn><mo stretchy="false">)</mo></mrow>
min
Можно видеть, что каждому значению кода К будут соответствовать свои f и Δf.
CLK
G
Если К=0 (f принимает максимальное значение равное f), то верхняя граница частотного диапазона устройства такая же, как и для прототипа, и равна половине частоты импульсов тактового генератора.
CLK
G
M
Если К=М (f принимает максимальное значение равное f/2), то подставляя в формулу (6) К=М, получаем:
<mrow><msub><mi>f</mi><mrow><mi>min</mi></mrow></msub><mo>=</mo><mfrac><mrow><msub><mi>f</mi><mi>G</mi></msub></mrow><mrow><msup><mn>2</mn><mrow><mi>N</mi><mo>+</mo><mi>M</mi></mrow></msup></mrow></mfrac><mo>.</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mo stretchy="false">(</mo><mn>7</mn><mo stretchy="false">)</mo></mrow>
M
M
Таким образом, в предлагаемом генераторе синусоидального сигнала верхняя граница диапазона частот генерируемого сигнала такая же, как и для прототипа, а нижняя граница - в 2 раз меньше, чем у прототипа, т.е. происходит расширение частотного диапазона в 2 раз.
Из формулы (5) следует, что для того чтобы УФК 1 имело возможность определить код генерируемой частоты F как для минимальной частоты диапазона генерируемых частот, так и для максимальной, УФК 1 должна иметь выходную шину данных разрядностью (N+М). В этом случае УФК 1 рассчитывает частоту выходного сигнала генератора по формуле
<mrow><mi>F</mi><mo>=</mo><mfrac><mrow><msub><mi>f</mi><mrow><mi>o</mi><mi>u</mi><mi>t</mi></mrow></msub><mo>⋅</mo><msup><mn>2</mn><mrow><mi>N</mi><mo>+</mo><mi>M</mi></mrow></msup></mrow><mrow><msup><mi>f</mi><mi>G</mi></msup></mrow></mfrac><mo>.</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mo stretchy="false">(</mo><mn>8</mn><mo stretchy="false">)</mo></mrow>
То есть УФК 1 рассчитывает F точно так же, как УФК 1 рассчитывает Δφ в прототипе, если бы выходная шина данных имела разрядность (N+М).
Функцией УП 2 является преобразование кода F в коды Δφ и К. Происходит это по следующему принципу.
CLK
out
Изначально выведем взаимосвязь между Δφ и F в зависимости от f, т.е. от кода К. Выражая f из формул (5) и (8) и приравнивая полученные выражения, имеем:
<mrow><mi>Δ</mi><mi>ϕ</mi><mo>=</mo><mfrac><mrow><mi>F</mi><mo>⋅</mo><msup><mn>2</mn><mi>K</mi></msup></mrow><mrow><msup><mn>2</mn><mi>M</mi></msup></mrow></mfrac><mo>.</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mtext> </mtext><mo stretchy="false">(</mo><mn>9</mn><mo stretchy="false">)</mo></mrow>
Данное выражение в двоичной системе счисления означает, что для получения Δφ значение кода F необходимо сдвинуть в сторону старших разрядов на количество разрядов равное К (при этом разрядность полученного значения в результате данной операции сохраняется равной (N+М)), тогда Δφ числено равно значению N старших разрядов после данной операции.
CLK
G
CLK
CLK
G
M
Таким образом, если f=f, то младшие М разрядов кода F игнорируются, а значение кода Δφ образуют старшие N разрядов кода F. По мере уменьшения f количество игнорируемых младших разрядов уменьшается, а количество игнорируемых старших разрядов наоборот начинает расти. Когда код К достигает максимального значения равного М, соответственно f=f/2, значение кода Δφ образуют младшие N разрядов кода F, а старшие М разрядов игнорируются. В итоге имеем, что значение кода Δφ образуют разряды кода F, начиная с младшего разряда номером (М-К) и заканчивая старшим разрядом номером ((N+М-1)-K).
Исходя из этого, опишем принцип определения значения кода К. Он заключается в следующем: код К формируется в зависимости от значения числа R, которое равно количеству разрядов кода F равных логическому нулю, считая со старшего разряда до первого разряда равного логической единице не включая его. Строго математически число R в зависимости от значения кода F можно рассчитать по формуле
где под скобками  понимается операция округления в сторону меньшего [Р. Грэхем, Д. Кнут, О. Паташник. Конкретная математика. Основание информатики: Пер. с англ. / под ред. А.Б. Ходулев; пер. В.В. Походзей, А.Б. Ходулев. - М.: Мир, 1998. - 703 с].
При этом отметим, что количество разрядов кода Δφ равных нулю, считая от старшего до первого разряда равного логической единице, не включая его, будет равно (R-К). Это следует из взаимосвязи между кодами Δφ и F, которая описана выше.
Если значение R меньше заданного в устройстве значения числа S, то значение кода К равно 0. S - натуральное число, значение которого определяется из соображений, описанных ниже.
Если значение R не меньше числа S, то К не равно 0. При этом генератор синусоидального сигнала задает такое значение К, при котором количество разрядов кода Δφ равных нулю, считая от старшего до первого разряда равного логической единице, не включая его, будет равно S. Т.е. если R больше S, то R-К=S или К=R-S. Это равенство выполняется, если R-S не больше максимального значения К-М.
Если (R-S) больше М, то устройство не может задать такое значение К, при котором количество разрядов кода Δφ равных нулю, считая от старшего до первого разряда равного логической единице, не включая его, будет равно S. В этом случае количество данных разрядов будет больше S, а значение кода К будет равно М.
Таким образом, получаем, что значение кода К определяется по формуле
CLK.
Из этого следует, что весь диапазон генерируемых частот предлагаемого генератора синусоидального сигнала можно условно разбить на интервалы в зависимости от значения К, т.е. зависимости от f При этом значения кода К будем считать номерами интервалов. В соответствии с формулой (6) каждый интервал будет характеризоваться своим шагом перестройки частоты Δf.
out
CLK
G
max
G
G
G
(N+M-1)
S
(N+M-(S+1)
N
В интервал с номером 0 попадают частоты f, генерация которых происходит при f=f. Верхней частотой интервала является максимальная частота генерируемого сигнала f -f/2, код F которой равен 2. Нижней границей интервала является частота равная f/2 код F которой равен 2. В соответствии с формулой (6) данный интервал характеризуется Δf, равным f/2.
G
G
(K+S)
(K+S-1)
(N+M-(K+S+1))
(N+M-(K+S)
Последующие интервалы с номера от 1 до (М-1), с границами частот от f/2 до f/2, коды F которых лежат в диапазоне от 2 до (2-1), характеризуются Δf определимым по формуле (6).
G
min
G
(K+S)
(N+M)
(N+M-(K+S)
Последний интервал с номером М, с границами частот f/2 до f=f/2, коды F которых лежат в диапазоне от 1 до (2-1), характеризуется Δf определяемым по формуле (7).
Можно увидеть, что чем больше число S, тем меньшее количество значений кода F лежат в интервалах с номерами от 1 до М, и большее количество значений кода F лежат в интервале с номером 0. Т.е. чем больше число S, тем меньшее количество возможных частот для генерации можем задавать в интервалах с номерами от 1 до М, а для интервала с номером 0 наоборот. Это следует из того, что Δf не зависит от S для конкретного интервала, при этом при увеличении S границы интервалов сдвигаются в сторону низких частот. Следовательно, количество шагов перестройки уменьшается. Общее же количество возможных частот выходного сигнала генератора синусоидального сигнала уменьшается. Чем меньше значение числа S, тем большее количество возможных частот выходного сигнала для генерации имеется возможность задавать.
CLK
CLK
out
CLK
CLK
N-S
S
N-S-1
S+1
S
N
С другой стороны, чем меньше число S, тем меньшее количество тактов f приходится на один период выходного сигнала генератора при переходе от одного интервала к другому, а значит падает качество генерируемого сигнала на границе интервала. Это следует из того, что, фактически, S определяет количество разрядов кода Δφ равных нулю, считая от старшего до первого разряда, равного логической единице, не включая его, для интервалов с номерами от 1 до (М-1). При переходе от одного интервала к другому первое значение Δφ в новом интервале будет равно (2-1). Для данного кода количество тактов f, приходящихся на один период выходного сигнала генератора, будет приблизительно равно 2. При понижении частоты f значение Δφ будет также уменьшаться до (2). Для данного кода количество тактов f, приходящихся на один период выходного сигнала генератора, будет равно 2. При дальнейшем понижении частоты случится переход в следующий интервал и закономерности сохранятся, и так до интервала с номером М, в котором количество тактов f, приходящихся на один период выходного сигнала генератора, будет равно от 2 до 2.
out
Отсюда следует, что S может принимать значения от 1 до (N-1), при этом, чем больше S, тем лучше качество генерируемого сигнала. Чем меньше S, тем большее количество частот f есть возможность задавать для генерации.
M
Таким образом, за счет ведения в генератор синусоидального сигнала УП и УД происходит расширение частотного диапазона в 2 раз при сохранении разрядности сумматора и аккумулятора фазы и объема ПЗУ по сравнению с прототипом.