RU2116669C1 - Сплайн-интерполятор - Google Patents
Сплайн-интерполятор Download PDFInfo
- Publication number
- RU2116669C1 RU2116669C1 RU97110507A RU97110507A RU2116669C1 RU 2116669 C1 RU2116669 C1 RU 2116669C1 RU 97110507 A RU97110507 A RU 97110507A RU 97110507 A RU97110507 A RU 97110507A RU 2116669 C1 RU2116669 C1 RU 2116669C1
- Authority
- RU
- Russia
- Prior art keywords
- inputs
- group
- outputs
- multiplier
- spline
- Prior art date
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
Изобретение относится к автоматике и вычислительной технике. Техническим результатом является разработка интерполятора, обеспечивающего более высокую точность интерполяции периодических функций, имеющих непрерывную пятую производную и выше путем учета информации о гладкости и использования всего массива дискретных отчетов функций. Интерполятор включает блоки памяти, умножители, сумматор, регистр, блок управления, счетчик, блок быстрого преобразования Фурье, блок обратного быстрого преобразования Фурье и блок формирования параметров сплайна. 1 з.п. ф-лы, 6 ил.
Description
Изобретение относится к автоматике и вычислительной технике, в частности к полиномиальным и сплайн-интерполяторам, и может быть использовано в автоматических системах управления для воспроизведения нелинейных зависимостей одной переменной.
Известные устройства (АС СССР N 1405074, G 06 F 15/353 от 27.10.1986, АС СССР N 1686461, G 06 F 15/353 от 13.02.1989) позволяют воспроизводить широкий класс функциональных зависимостей, но обладают низкой точностью.
Наиболее близким к заявляемому устройству по своей технической сущности является сплайн-интерполятор (АС СССР N 1686461, G 06 F 13/353 от 13.02.1989), выбранный в качестве устройства-прототипа.
Устройство-прототип содержит первый и второй счетчики, первый и второй блоки памяти, первый, второй, третий и четвертый блоки умножения, сумматор, регистр результата, блок управления, причем вход пуска интерполятора подключен к первому входу блока управления, синхровход интерполятора подключен к второму входу блока управления, первый выход которого соединен с входами сброса первого, второго счетчиков и регистра результата, второй выход соединен с суммирующим входом первого счетчика, выход первого счетчика соединен с первым адресным входом первого блока памяти, выход которого соединен с первыми информационными входами первого, второго, третьего, четвертого блоков умножения, вторые информационные входы которых соединены с выходом второго блока памяти, выходы первого, второго, третьего, четвертого блоков умножения соединены соответственно с первым, вторым, третьим, четвертым входами сумматора, выход которого соединен с первым информационным входом регистра результата, выход которого является выходом интерполятора, первый и второй управляющие входы первого, второго, третьего, четвертого блоков умножения соединены соответственно с третьим и четвертым выходами блока управления, пятый, шестой, седьмой, восьмой, девятый, десятый и одиннадцатый выходы которого соединены соответственно с первым управляющим входом регистра результата, с вычитающим входом первого счетчика, с управляющим входом первого блока памяти, с управляющим входом второго блока памяти, с входом записи второго счетчика, с вычитающим входом второго счетчика, с вторым управляющим входом регистра результата, второй информационный вход которого соединен с выходом второго блока памяти, вход количества значений функции внутри интервала интерполятора соединен с информационным входом второго счетчика и с вторым адресным входом первого блока памяти, третий адресный вход которого соединен с выходом первого счетчика и с третьим входом блока управления, четвертый вход которого соединен с третьим адресным входом первого блока памяти и с выходом второго счетчика, вход значения функции интерполятора соединен с информационным входом второго блока памяти.
Известное техническое решение обладает недостаточной точностью интерполяции, которая характеризуется погрешностью интерполяции, равной
где
f - максимум третьей производной функции f(x);
h - расстояние между отсчетами функции f(x).
где
f
h - расстояние между отсчетами функции f(x).
Причем эта точность обеспечивается для функций, имеющих непрерывную третью производную (f(x) ∈ C3) или выше. При интерполяции функций, имеющих непрерывную пятую производную (f(x) ∈ C5) и выше не полностью учитывается информация о гладкости функций, вследствие чего прототип не обеспечивает более высокой точности.
Кроме того, в известном техническом решении для получения коэффициентов сплайна при интерполяции используют только ближайшие к интерполируемой точке отсчеты функции, а не весь имеющийся массив дискретных отсчетов функции f(x).
Целью изобретения является разработка устройства, обеспечивающего более высокую точность интерполяции периодических функций, имеющих непрерывную пятую производную (f(x) ∈ C5) и выше путем учета информации о гладкости и использования всего массива дискретных отсчетов функций.
Поставленная цель достигается тем, что в известный сплайн-интерполятор, содержащий первый и второй блоки памяти, первый, второй, третий и четвертый умножители, сумматор, регистр, блок управления и счетчик, группа информационных входов которого объединена с адресными входами первого блока памяти и одновременно является первой установочной шиной сплайн-интерполятора, вычитающий вход счетчика объединен с входом управления регистра и пятым выходом блока управления, а информационные выходы объединены с шестой группой входов блока управления, первый вход которого является тактовой шиной сплайн-интерполятора, а третий выход соединен с входом управления второго блока памяти, первая, вторая, третья и четвертая группы выходов которого соединены с первыми группами входов соответственно первого, второго, третьего и четвертого умножителей, группы выходов которых соединены соответственно с первой, второй, третьей и четвертой группами входов сумматора, группа выходов которого соединена с информационными входами регистра, выходы которого являются группой информационных выходов сплайн-интерполятора, дополнительно введены блок быстрого преобразования Фурье, третий блок памяти, пятый умножитель, блок обратного быстрого преобразования Фурье и блок формирования параметров сплайна, первая группа входов которого соединена с информационными выходами первого блока памяти, вторая группа входов соединена с информационными выходами счетчика, управляющий вход которого является шиной запуска сплайн-интерполятора, а вход обнуления - шиной обнуления сплайн-интерполятора, третья группа входов блок формирования параметров сплайна является второй установочной шиной сплайн-интерполятора, четвертая группа входов является третьей установочной шиной сплайн-интерполятора, пятая, шестая, седьмая и восьмая группы выходов соединены с вторыми группами входов соответственно первого, второго, третьего и четвертого умножителей, а девятый вход объединен с управляющим входом сумматора и четвертым выходом блока управления, седьмая группа входов которого является четвертой установочной шиной сплайн-интерполятора, а вторая группа выходов соединена с адресными входами третьего блока памяти, входами управления блока обратного быстрого преобразования Фурье и входами управления блока быстрого преобразования Фурье, информационные входы которого являются информационной шиной сплайн-интерполятора, а информационные выходы соединены с первой группой входов пятого умножителя, вторая группа входов которого соединена с информационными выходами третьего блока памяти, а выходы соединены с информационными входами блока обратного быстрого преобразования Фурье, информационные выходы которого соединены с информационными входами второго блока памяти.
Блок формирования параметров сплайна содержит первый, второй, третий, четвертый, пятый, шестой, седьмой, восьмой, девятый, десятый и одиннадцатый умножители, первый и второй сумматоры, преобразователь в дополнительный код, первый и второй блоки вычитания и первый и второй элементы задержки. Первая группа входов первого умножителя является первой группой входов блока формирования параметров сплайна. Вторая группа входов первого умножителя является второй группой входов блока формирования параметров сплайна. Выходы первого умножителя соединены с первой и второй группами входов четвертого умножителя и второй группой входов пятого умножителя. Первая группа входов пятого умножителя соединена с выходами четвертого умножителя. Выходы пятого умножителя соединены с первой группой входов десятого умножителя и входами первого элемента задержки. Выходы первого элемента задержки являются шестой группой выходов блока формирования параметров сплайна, а управляющий вход является девятым входом блока формирования параметров сплайна и одновременно объединен с входом управления первого блока вычитания. Входы вычитаемого первого блока вычитания соединены с выходами десятого умножителя. Выходы первого блока вычитания являются пятой группой выходов блока формирования параметров сплайна, а входы уменьшаемого соединены с выходами третьего умножителя. Первая группа входов третьего умножителя соединена с выходами второго умножителя, а вторая группа входов объединена с второй и первой группами входов второго умножителя и выходами первого сумматора. Управляющий вход первого сумматора объединен с управляющим входом первого блока вычитания. Первая группа входов первого сумматора объединена с входами преобразователя в дополнительный код и выходами первого умножителя. Вторая группа входов первого сумматора является третьей группой входов блока формирования параметров сплайна и одновременно второй установочной шиной сплайн-интерполятора и соединена с второй группой входов второго сумматора.
Первая группа входов второго сумматора соединена с выходами преобразователя в дополнительный код, первой и второй группами входов шестого умножителя и второй группой входов седьмого умножителя. Первая группа входов седьмого умножителя соединена с выходами шестого умножителя, а выходы соединены с входами второго элемента задержки и первой группой входов одиннадцатого умножителя. Вторая группа входов одиннадцатого умножителя объединена с второй группой входов десятого умножителя и одновременно являются четвертой группой входов блока формирования параметров сплайна и третьей установочной шиной сплайн-интерполятора. Выходы одиннадцатого умножителя соединены с входами вычитаемого второго блока вычитания, выходы которого являются восьмой группой выходов блока формирования параметров сплайна. Входы уменьшаемого второго блока вычитания соединены с выходами девятого умножителя, первая группа входов которого соединена с выходами восьмого умножителя, а вторая группа входов объединена с второй и первой группами входов восьмого умножителя и выходами второго сумматора. Управляющий вход второго сумматора объединен с управляющими входами второго блока вычитания, первого элемента задержки и второго элемента задержки, выходы которого являются седьмой группой выходов блока формирования параметров сплайна.
Перечисленная новая совокупность существенных признаков заявленного устройства обеспечивает более высокую точность интерполяции периодических функций, имеющих непрерывную пятую производную (f(x) ∈ C5) и выше. Это путем учета априорной информации о степени гладкости функции и использования всего массива дискретных отсчетов интерполируемой функции.
На фиг. 1 приведена структурная схема заявленного устройства; на фиг. 2 - структурная схема блока формирования параметров сплайна; на фиг. 3 приведен вариант построения устройства, реализующего блок управления и блок быстрого преобразования Фурье; на фиг. 4 - один из возможных вариантов построения блока обратного быстрого преобразования Фурье; на фиг. 5 - вариант реализации второго блока памяти; на фиг. 6 представлен один из возможных вариантов реализации элемента задержки.
Сплайн-интерполятор (см. фиг. 1) состоит из блоков памяти 7, 11 и 16, умножителей 12, 17, 18, 19 и 20, сумматора 21, регистра 22, блока управления 10, счетчика 8, блока быстрого преобразования Фурье (БПФ) 9, блока обратного быстрого преобразования Фурье (ОБПФ) 14 и блока формирования параметров сплайна 13. Группа информационных входов счетчика 8 объединена с адресными входами блока памяти 7 и одновременно является первой установочной шиной 1 сплайн-интерполятора. Вычитающий вход счетчика 8 объединен с входом управления регистра 22 и пятым выходом блока управления 10. Информационные выходы счетчика 8 объединены с шестой группой входов блока управления 10. Вход обнуления счетчика 8 является шиной обнуления 24 сплайн-интерполятора. Первый вход блока управления 10 является тактовой шиной 5 сплайн-интерполятора. Третий выход блока управления 10 соединен с входом управления второго блока памяти. Первая, вторая, третья и четвертая группы выходов блока памяти 16 соединены с первыми группами входов умножителей 17 - 20 соответственно. Группы выходов умножителей 17 - 20 соединены соответственно с первой, второй, третьей и четвертой группами входов сумматора 21. Группа выходов сумматора 21 соединена с информационными входами регистра 22, выходы которого 23 являются группой информационных выходов сплайн-интерполятора.
Первая группа входов блока формирования параметров сплайна 13 соединена с информационными выходами блока памяти 7. Вторая группа входов блока формирования параметров сплайна 13 соединена с информационными выходами счетчика 8. Третья группа входов является второй установочной шиной 15 сплайн-интерполятора. Четвертая группа входов является третьей установочной шиной 3 сплайн-интерполятора. Пятая, шестая, седьмая и восьмая группы выходов блока формирования параметров сплайна 13 соединены с вторыми группами входов умножителей 17 - 20 соответственно. Девятый вход блока формирования параметров сплайна 16 объединен с управляющим входом сумматора 21 и четвертым выходом блока управления 10. Седьмая группа входов блока управления 10 является четвертой установочной шиной 4 сплайн-интерполятора. Вторая группа выходов блока управления 10 соединена с адресными входами блока памяти 11, входами управления блока ОБПФ 14 и входами управления блока БПФ 9. Информационные входы блока БПФ 9 являются информационной шиной 6 сплайн-интерполятора. Информационные выходы блока БПФ 9 соединены с первой группой входов умножителя 12, вторая группа входов которого соединена с информационными выходами блока памяти 11. Выходы умножителя 12 соединены с информационными входами блока ОБПФ 14, информационные выходы которого соединены с информационными входами блока памяти 16.
Блок формирования параметров сплайна 13, показанный на фиг. 2, состоит из умножителей 13.1, 13.5, 13.6, 13.7, 13.8, 13.9, 13.10, 13.11, 13.12, 13.14, 13.15, сумматоров 13.2 и 13.4, преобразователя в дополнительный код 13.3, блоков вычитания 13.13 и 13.16, элементов задержки 13.17 и 13.18. Первая группа входов умножителя 13.1 является первой группой входов блока формирования параметров сплайна 13. Вторая группа входов умножителя 13.1 является второй группой входов блока формирования параметров сплайна 13. Выходы умножителя 13.1 соединены с первой и второй группами входов умножителя 13.6 и второй группой входов умножителя 13.10. Первая группа входов умножителя 13.10 соединена с выходами умножителя 13.6. Выходы умножителя 13.10 соединены с первой группой входов умножителя 13.14 и входами элемента задержки 13.17. Выходы элемента задержки 13.17 являются шестой группой выходов блока формирования параметров сплайна 13. Управляющий вход элемента задержки 13.17 является девятым входом блока формирования параметров сплайна 13 и одновременно объединен с входом управления блока вычитания 13.13. Входы вычитаемого блока вычитания 13.13 соединены с выходами умножителя 13.14. Выходы блока вычитания являются пятой группой выходов блока формирования параметров сплайна 13.
Входы уменьшаемого блока вычитания 13.13 соединены с выходами умножителя 13.9. Первая группа входов умножителя 13.9 соединена с выходами умножителя 13.5, а вторая группа входов объединена с второй и первой группами входов умножителя 13.5 и выходами сумматора 13.2. Управляющий вход сумматора 13.2 объединен с управляющим входом блока вычитания 13.13. Первая группа входов сумматора 13.2 объединена с входами преобразователя в дополнительный код 13.3 и выходами умножителя 13.1. Вторая группа входов сумматора 13.2 является третьей группой входов блока формирования параметров сплайна 13 и одновременно второй установочной шиной 15 сплайн-интерполятора и соединена с второй группой входов сумматора 13.4. Первая группа входов сумматора 13.4 соединена с выходами преобразователя в дополнительный код 13.3, первой и второй группами входов умножителя 13.7 и второй группой входов умножителя 13.11. Первая группа входов умножителя 13.11 соединена с выходами умножителя 13.7. Выходы умножителя 13.11 соединены с входами элемента задержки 13.18 и первой группой входов умножителя 13.15. Вторая группа входов умножителя 13.15 объединена с второй группой входов умножителя 13.14 и одновременно является четвертой группой входов блока формирования параметров сплайна 13 и третьей установочной шиной 2 сплайн-интерполятора. Выходы умножителя 13.15 соединены с входами вычитаемого блока вычитания 13.16, выходы которого являются восьмой группой выходов блока формирования параметров сплайна 13. Входы уменьшаемого блока вычитания 13.16 соединены с выходами умножителя 13.12. Первая группа входов умножителя 13.12 соединена с выходами умножителя 13.8. Вторая группа входов умножителя 13.12 объединена с второй и первой группами входов умножителя 13.8 и выходами сумматора 13.4. Управляющий вход сумматора 13.4 объединен с управляющими входами блока вычитания 13.16, элемента задержки 13.17 и элемента задержки 13.18. Выходы элемента задержки 13.18 являются седьмой группой выходов блока формирования параметров сплайна 13.
Реализация заявляемого устройства объясняется следующим образом. Из статьи Желудева В.А. Периодические сплайны и быстрое преобразование Фурье. Журнал вычислительной математики и математической физики, 1992, т. 32, N 2, с. 179 - 198 известно, что интерполяционный сплайн, являющийся частным случаем сглаживающего сплайна, при интерполяции функций f(x) ∈ Cp+1 (см. теорему 4 на с. 188 при s = 0) можно записать в виде
где дискретное преобразование Фурье (ДПФ) от коэффициентов gn(O) вычисляется по формуле
Fk(gn(O)) = Fk(z)u , (2)
F(z) - ДПФ вектора z = f(xk) + ek; ek = 0;
f(xk) - дискретный отсчет функции f(x), h - шаг дискретизации функции f(x). Причем массив коэффициентов gn(O) получается обратным преобразованием от Fk(gn(O)).
где дискретное преобразование Фурье (ДПФ) от коэффициентов gn(O) вычисляется по формуле
Fk(gn(O)) = Fk(z)u
F(z) - ДПФ вектора z = f(xk) + ek; ek = 0;
f(xk) - дискретный отсчет функции f(x), h - шаг дискретизации функции f(x). Причем массив коэффициентов gn(O) получается обратным преобразованием от Fk(gn(O)).
При получении коэффициентов gn(O) целесообразно использовать алгоритм быстрого преобразования Фурье (БПФ) для повышения быстродействия устройства (см. Л. Рабинер и Б. Голд. Теория и применение цифровой обработки сигналов. - М.: Мир, 1978, с.633 - 693, 394 - 432).
Из статей: Желудев В.А. Локальная сплайн-аппроксимация на равномерной сетке. /Журнал вычислительной математики и математической физики, 1987, т. 27, N 9, с .1296 - 1310 и Желудев В.А. Восстановление функций и их производных по сеточным данным с погрешностью при помощи локальных сплайнов. /Журнал вычислительной математики и математической физики, 1987, т. 27, N 1, с. 22 - 34 известно, что выражение для вычисления s-й производной сплайна можно записать:
При s = 0 выражение (4) упрощается. В этом случае для кубического сплайна (p-1 = 3) имеем:
где
u = 1-v /6 (см. статью: Желудев В.А. Локальные сглаживающие сплайны с регулирующим параметром. /Журнал вычислительной математики и математической физики, 1991, т. 31, N 2, с. 200).
При s = 0 выражение (4) упрощается. В этом случае для кубического сплайна (p-1 = 3) имеем:
где
u
Из статей: Желудев В.А. Локальная сплайн-аппроксимация на равномерной сетке. /Журнал вычислительной математики и математической физики, 1987, т. 27, N 9, с. 1296 - 1310 и Желудев В.А. Восстановление функций и их производных по сеточным данным с погрешностью при помощи локальных сплайнов. /Журнал вычислительной математики и математической физики, 1987, т. 27, N 1, с. 22 - 34 известно, что значение B-сплайна b (x) отлично от нуля на участке (0, 4h) и на различных интервалах наблюдения определяется следующим образом:
Учитывая, что носитель B-сплайна supp bh(x) = (0, 4h) и b4(x) симметричен относительно точки h • m/2, получим для интервалов
Реализация (7) и (8) в виде устройства позволяет вычислять функции f(X)∈ C5 с точностью, определяемой погрешностью интерполяционного сплайна (см. , например, Ю. С. Завьялов, Б. И. Квасов, В.Л. Мирошниченко Методы сплайн-функций. - М.: Наука, 1980, с. 116 - 117)
Точность же устройства-прототипа не лучше
Поэтому, например, для функций f∈ C5 при h = 0,1 и в случае f ≈ f выигрыш в точности интерполяции может достигать μ1/μ2≈ 40.
Работа сплайн-интерполятора на основе фиг. 1 и выражений (7) и (8) осуществляется следующим образом.
Учитывая, что носитель B-сплайна supp bh(x) = (0, 4h) и b4(x) симметричен относительно точки h • m/2, получим для интервалов
Реализация (7) и (8) в виде устройства позволяет вычислять функции f(X)∈ C5 с точностью, определяемой погрешностью интерполяционного сплайна (см. , например, Ю. С. Завьялов, Б. И. Квасов, В.Л. Мирошниченко Методы сплайн-функций. - М.: Наука, 1980, с. 116 - 117)
Точность же устройства-прототипа не лучше
Поэтому, например, для функций f∈ C5 при h = 0,1 и в случае f
Работа сплайн-интерполятора на основе фиг. 1 и выражений (7) и (8) осуществляется следующим образом.
В исходном состоянии на первую установочную шину 1 подается код числа M, где M соответствует задаваемому количеству точек интерполяции функции f(x) между соседними узлами интерполяции. На тактовую шину 5 поступают тактовые импульсы типа меандр. На третьей установочной шине 3 присутствует код числа 4, на четвертой установочной шине 4 - код числа 0, на второй установочной шине 15 - код числа 1. В блоке памяти 7 записаны значения τ0 таким образом, что в ячейке с адресом M хранится значение τ0, равное 1/(1 + M). В блоке памяти 11 хранятся значения 1/u .
Перед началом работы счетчик 8 устанавливается в нулевое состояние подачей на его вход сброса импульса положительной полярности. При этом код числа 0 воздействует на вход 6 блока управления 10, в результате чего устройство удерживается в исходном состоянии.
Перед началом работы счетчик 8 устанавливается в нулевое состояние подачей на его вход сброса импульса положительной полярности. При этом код числа 0 воздействует на вход 6 блока управления 10, в результате чего устройство удерживается в исходном состоянии.
С подачей на шину запуска 2 импульса положительной полярности в счетчик 12 записывается код числа M.
Код числа M с выхода счетчика 8 подается на вход 6 блока управления 10. На информационную шину 6 подаются отсчеты функции f(xk), которые поступают в блок быстрого преобразования Фурье (БПФ) 9. Под воздействием тактовых импульсов, поступающих по тактовой шине 5, и управляющих сигналов, поступающих с группы выходов 2 блока управления 10, в блоке БПФ 9 происходит вычисление значений Fk. Указанные величины поступают на первую группу входов умножителя 12.
Под воздействием управляющих сигналов, поступающих с группы выходов 2 блока управления 10 на адресные входы блока памяти 11, на информационных выходах последнего формируются значения 1/u . Данные величины подаются на вторую группу входов умножителя 12. В результате выполнения операций умножения на выходе умножителя 12 формируются значения Fk/u . Последние поступают в блок обратного быстрого преобразования Фурье (ОБПФ) 14.
В блоке ОБПФ 14 происходит вычисление значений коэффициентов сплайна (1/6)•g ,(1/6)•g ,(1/6)•g ,(1/6)•g в соответствии с выражением (8). Полученные значения коэффициентов сплайна с выхода блока ОБПФ 14 переписываются в блок памяти 16 под воздействием импульсов, поступающих на управляющий вход последнего с выхода 3 блока управления 10.
Далее под воздействием информационных сигналов (поступающих с выходов блоков 7 и 8), а также подаваемых на вторую и третью установочные шины 15 и 3 устройства, и управляющих сигналов (с выхода 4 блока управления 10), в блоке формирования параметров сплайна 13 происходит вычисление значений τ3,[(1+τ)3-4τ3],[(2-τ)3-4(1-τ)3,(1+τ)3. Полученные величины поступают на первые входы умножителей 17 - 20. На вторые входы последних подаются соответствующие значения (1/6)•g ,(1/6)•g ,(1/6)•g ,(1/6)•g с информационных выходов блока памяти 16.
В результате выполнения операций умножения на выходах умножителей 18 - 20 формируются произведения Последние поступают на соответствующие группы входов сумматора 21.
В сумматоре 21 производится суммирование указанных произведений под воздействием сигналов, поступающих на его управляющий вход (с выхода 4 блока управления 10). В результате на выходе сумматора 21 формируется значение функции f(x) в первой точке интерполяции.
Полученное значение функции f(x) записывается в регистр 22 при помощи единичного импульса, поступающего с выхода 5 блока управления 10 на вход записи регистра 22.
Кроме того, единичный импульс с выхода 5 блока управления 10 поступает на вычитающий вход счетчика 8, уменьшая его содержимое на единицу.
Далее алгоритм работы устройства аналогичен. В блоке 13 формируются значения параметров сплайна, а в блоках 17 - 21 вычисляются значения функции f(x), которые записываются в регистр 22. Данная операция повторяется для значений τ, равных τ0•(M-1), затем τ0•(M-2) и т.д. до тех пор, пока содержимое счетчика 8 не станет равным нулю. При этом код числа 0 с выхода счетчика 8 поступает на вход 6 блока управления 10 и останавливает работу устройства. На этом работа устройства по вычислению значений функции f(x) завершается. Устройство готово к новому циклу работы.
Входящие в структурную схему заявляемого устройства элементы известны и описаны, например, в книге В.Л. Шило Популярные цифровые микросхемы. Справочник. - М.: Радио и связь, 1988. Так, в указанном источнике описаны принципы построения и примеры реализации:
счетчика 8 на с. 85 - 86 (можно реализовать на микросхеме К155ИЕ5);
блоков памяти 7, 11 на с. 171-174 (можно реализовать на микросхеме К155ПР6);
регистра 22 на с. 104 - 105 (можно реализовать на микросхеме К155ИР13, с.111, рис. 1.78).
счетчика 8 на с. 85 - 86 (можно реализовать на микросхеме К155ИЕ5);
блоков памяти 7, 11 на с. 171-174 (можно реализовать на микросхеме К155ПР6);
регистра 22 на с. 104 - 105 (можно реализовать на микросхеме К155ИР13, с.111, рис. 1.78).
Принцип работы умножителей 17, 18, 19, 20 известен и описан в книге: М. А. Карцев, В.А. Брик Вычислительные системы и синхронная арифметика. - М.: Радио и связь, 1981, с. 163 - 221. Могут быть реализованы на микросхемах SN54284 и SN54285, с. 305, рис. 6.3.12 или на микросхеме ADSP1016 (С. Кун Матричные процессоры на СБИС: Пер. с англ. - М.: Мир, 1991, с.502, табл. 7.4).
Принцип работы сумматора 21 известен и описан в книге: Д. Гивоне, Р. Россе Микропроцессоры и микрокомпьютеры: Вводный курс: Пер. с англ. - М.: Мир, 1983, с. 184 - 198. Полный сумматор описан в кн. В.Л. Шило Популярные цифровые микросхемы. Справочник. 2-е изд., испр., - Челябинск, Металлургия, 1989, с. 152, рис. 1.112, с.153, рис. 1.113. Можно реализовать на элементах ИСКЛ. ИЛИ - К155ЛП5, И - К155ЛИ1, ИЛИ - из ИЛИ-НЕ К155ЛЕ4 и НЕ К155ЛН1.
Один из возможных вариантов построения блока памяти 16 показаны на фиг. 5. Блок памяти 16 состоит из четырех последовательно соединенных регистров. Входы записи регистров блока 16 объединены и подключены к управляющему входу блока 16. Вход первого регистра является информационным входом блока. Выходы регистров являются выходными информационными шинами блока. Регистры можно реализовать на микросхеме К155ИР13.
Совокупность блоков 9 и 10 может быть реализована на цифровом процессоре обработки сигналов (ЦПОС) TMS32010 с дополнительными элементами, как показано на фиг. 3 (входы и выходы устройства, представленного на фиг. 3, полностью соответствуют входам и выходам группы блоков, обведенных прерывистой линией на фиг. 1). При этом блок БПФ 9 реализован на ЦПОС (блок 26), оперативном запоминающем устройстве (ОЗУ) 28 и элементах 27, 29, 31, 32. Блок управления 10 реализован на ЦПОС 26 и элементах 30, 34, 35, 36, 37. Принцип действия TMS32010 подробно рассмотрен в книге: Цифровой процессор обработки сигналов TMS32010 и его применение. /Под ред. А.А.Ланнэ. - Л.: ВАС, 1990, с. 51-102. Сам процессор изображен на рис. 3.1 с. 75.
Принцип действия элемента 30 известен и описан в книге: В.Л. Шило Популярные цифровые микросхемы. Справочник. -М.: Радио и связь, 1988, с.130 - 136, рис. 1.97. Может быть реализован на микросхемах К155ИД7, К531ИД7.
Счетчик 27 - реверсивный, 16-ти разрядный. Принцип работы известен и описан в книге: В.Л.Шило Популярные цифровые микросхемы. Справочник. -М.: Радио и связь, 1988, с.85 - 93, рис. 1.67 с. 91. Может быть реализован на микросхеме К155ИЕ7. Порядок соединения четырех счетчиков описан в этой же книге на с.92 - 93.
Принцип действия ОЗУ 28 известен и описан в книге: В.Н.Вениаминов, О.Н. Лебедев, А. И.Мирошниченко Микросхемы и их применение. Справочное пособие - 3-е изд. перераб. и дополн. - М.: Радио и связь, 1989, с.145 - 148. Можно реализовать на микросхеме IDT 7186-70 (описана в книге: Цифровой процессор обработки сигналов TMS32010 и его применение./ Под ред. А.А.Ланнэ. -Л.: ВАС, 1990, с. 50).
Принцип работы элементов И-НЕ 32 и 33, ИЛИ-НЕ 29 и 31 известен и описан в книге: Хоровиц П., Хилл У. Искусство схемотехники: в 2-х т. Т. 1. Пер. с англ. Изд. 2-е, стереотип. -М.: Мир, 1984, с. 510, рис. 8.5.
Принцип работы блока сравнения 25 известен и описан в книге: Ю.В.Гаврилов, А.Н.Пучко Арифметические устройства быстродействующих ЭЦВМ. -М.: Советское радио, 1970, с.234 - 257. Можно реализовать на микросхемах К561ИП2 (В. Н. Вениаминов, О.Н.Лебедев, А.И.Мирошниченко Микросхемы и их применение. Справочное пособие. 3-е изд. перераб. и дополн. -М.: Радио и связь, 1989, с. 114, рис. 4.12 б).
Принцип построения и пример реализации элементов И 34 - 37 описаны в книге: В. Л. Шило Популярные цифровые микросхемы. Справочник. - М.: Радио и связь, 1988, с.35, рис. 1.19а (можно реализовать на микросхеме К155ЛИ1).
Принцип БПФ и ОБПФ известен и описан в книге: Л. Рабинер, Б. Голд Теория и применение цифровой обработки сигналов. Пер. с англ. - М.: Мир, 1978. Пример реализации БПФ на ЦПОС TMS32010 приведен в книге: Цифровой процессор обработки сигналов TMS32010 и его применение./ Под ред. А.А.Ланнэ. - Л.: ВАС, 1990, с. 259. На с.260 этой же книги приведен расчет необходимой для этого памяти.
Устройство, реализующее блоки 9, 10 и приведенное на фиг. 3, работает следующим образом. В исходном состоянии на вход 1 устройства (фиг. 3) и соответственно на вход CLCIN ЦПОС 26 поступают импульсы типа меандр по тактовой шине 5 сплайн-интерполятора (фиг. 1). На вход 7 поступает код числа 0 (с четвертой установочной шины 4 сплайн-интерполятора). На вход 6 подается код числа 0 (с выхода счетчика 8 сплайн-интерполятора). В результате выполнения операции сравнения в блоке 25 на выходе последнего формируется сигнал низкого уровня. Данный сигнал подается на вход ЦПОС 26. При этом на выводах стробирующих сигналов устанавливается высокий уровень, а шина данных D0 - D15 устанавливается в высокоимпедансное состояние. Счетчик команд ЦПОС 26 и адресная шина очищаются, прерывания запрещены.
При поступлении на вход 6 устройства (фиг. 3) кода числа, отличного от нуля (что соответствует подаче на шину запуска 2 устройства фиг. 1 единичного импульса), на выходе блока сравнения 25 формируется сигнал высокого уровня, поступающий на вход ЦПОС 26. В результате под воздействием тактовых импульсов, поступающих на вход 1 устройства (фиг. 3), ЦПОС 26 на своих выходах , D0 - D15, A0 - A11 формирует необходимые сигналы. Так, сигнал с выхода ЦПОС 26 через элементы 29 и 31 поступает на счетчик 27. Здесь формируется адрес и в ОЗУ 28 записывается очередной отсчет f(xk) интерполируемой функции, поступающий на вход 8 устройства (фиг. 3). При поступлении всех отсчетов f(xk) интерполируемой функции устройство (фиг. 3) осуществляет вычисление БПФ. Полученные значения Fk ЦПОС 26 по шине данных последовательно передает на вход блока умножения 12 (выход 9). При этом ЦПОС 26 на выходах A0 - A11 и передает по шине управления (выход 2) адрес для блока памяти 11. Сигналы, разрешающие запись в блок памяти 16 значений коэффициентов сплайна (выход 3) подаются с входа 1 устройства (фиг. 3) через элемент И 37, открываемый высоким потенциалом, формируемым на выходе 2 блока 30. Сигналы, управляющие работой блоков 13 и 21 сплайн-интерполятора (фиг. 1), подаются с входа 1 устройства (фиг. 3) через элемент И 35, открываемый высоким потенциалом, формируемым на выходе 3 блока 30. Сигналы, управляющие работой блоков 8 и 22 сплайн-интерполятора (фиг. 1), подаются с входа 1 устройства (фиг. 3) через элемент И 34, открываемый высоким потенциалом, формируемым на выходе 4 блока 30. Кроме того, по шине управления (выход 2) устройства (фиг. 3) поступают сигналы управления, необходимые для блока ОБПФ 14:
с входа 1 устройства (фиг. 3) через элемент И 36, открываемый высоким потенциалом, формируемым на выходе 5 блока 30 - для подачи на вход CLCIN ЦПОС 38 (фиг. 4);
с выхода блока сравнения 25 - для подачи на вход ЦПОС 38 (фиг. 4).
с входа 1 устройства (фиг. 3) через элемент И 36, открываемый высоким потенциалом, формируемым на выходе 5 блока 30 - для подачи на вход CLCIN ЦПОС 38 (фиг. 4);
с выхода блока сравнения 25 - для подачи на вход ЦПОС 38 (фиг. 4).
При поступлении на вход 6 устройства (фиг. 3) кода числа 0 (что соответствует обнулению счетчика 8) и выполнения в блоке 25 операции сравнения на выходе последнего формируется низкий потенциал. Данный потенциал подается на вход ЦПОС 26. При этом на выводах стробирующих сигналов устанавливается высокий уровень, а шина данных D0 - D15 устанавливается в высокоимпедансное состояние. Счетчик команд ЦПОС 26 и адресная шина очищаются, прерывания запрещены. Кроме того, сигнал низкого уровня с выхода блока сравнения 25 по шине управления (выход 2) подается на управляющий вход блока ОБПФ 14, останавливая его работу. На выходах 3, 4, 5 устройства (фиг. 3) присутствует низкий потенциал. На этом работа устройства (фиг. 3) завершается.
Блок ОБПФ 14 может быть реализован, как показано на фиг. 4. Реализация элементов блока ОБПФ 14 аналогична реализации соответствующих элементов совокупности блоков 9 и 10 (фиг. 3). Это следует из того факта, что операция ОБПФ отличается от операции БПФ только входными данными и нормирующими коэффициентами (см., например, Л. Рабинер, Б. Голд Теория и применение цифровой обработки сигналов. Пер. с англ. - М.: Мир, 1978).
Блок ОБПФ 14, приведенный на фиг. 4, работает следующим образом. Под воздействием тактовых импульсов, поступающих на вход CLCIN по шине управления, ЦПОС 38 на своих выходах D0 - D15, A0 - A11 формирует необходимые сигналы. Так, сигнал с выхода ЦПОС 38 через элементы 43 и 45 поступает на счетчик 39. Здесь формируется адрес и в ОЗУ 40 записывается очередное значение Fk/u , поступающее на информационный вход устройства (фиг. 4). При поступлении всех значений Fk/u устройство (фиг. 4) осуществляет вычисление ОБПФ коэффициентов g . Полученные значения коэффициентов сплайна (1/6)•g ,(1/6)•g ,(1/6)•g ,(1/6)•g ЦПОС 38 по шине данных последовательно передает на информационный вход блока памяти 16. При поступлении по управляющей шине на вход ЦПОС 38 нулевого потенциала на выводах стробирующих сигналов устанавливается высокий уровень, а шина данных D0 - D15 устанавливается в высокоимпедансное состояние. Счетчик команд ЦПОС 38 и адресная шина очищаются, прерывания запрещаются. На этом работа блока ОБПФ (фиг. 4) завершается.
Работа блока формирования параметров сплайна 13 на основе фиг. 2 осуществляется следующим образом.
В исходном состоянии на вход 3 блока формирования параметров сплайна 13 подается код числа 1 с второй установочной шины 15. На вход 4 блока формирования параметров сплайна 13 подается код числа 4 с третьей установочной шины 3. На вход 9 блока формирования параметров сплайна 13 поступают управляющие сигналы с выхода 4 блока управления 10.
На первый вход блока умножения 13.1 поступает значение τ0 с выхода блока памяти 7, а на второй вход блока умножения 13.1 - значение M с выхода счетчика 8. В результате выполнения операции умножения на выходе блока умножения 13.1 формируется значение τ = M•τ0 Последнее поступает на вход преобразователя в дополнительный код 13.3, на выходе которого имеем значение (1-τ).. Значение τ с выхода умножителя 13.1 поступает также на первый вход сумматора 13.2, а на первый вход сумматора 13.4 - значение (1-τ) На вторые входы сумматоров 13.2 и 13.4 подается код числа 1. Под воздействием управляющих сигналов, поступающих на вход 9 блока 13 (с выхода 4 блока управления 10), на выходах сумматоров 13.2 и 13.4 формируются значения соответственно (1+τ) и (2-τ).. Последние подаются на первые входы умножителей 13.5 и 13.8 соответственно. На первый вход умножителя 13.6 подается значение τ с выхода блока умножения 13.1, а на первый вход умножителя 13.7 - значение (1-τ) с выхода преобразователя в дополнительный код 13.3. Указанные значения (1+τ),τ,(1-τ),(2-τ)одновременно поступают на вторые входы блоков умножения 13.9, 13.10, 13.11, 13.12 соответственно. На вторые входы блоков умножения 13.9, 13.10, 13.11, 13.12 поступают полученные в результате выполнения операций умножения соответствующие значения (1+τ)2,τ2,(1-τ)2,(2-τ)2 с выходов блоков умножения 13.5, 13.6, 13.7, 13.8. В результате на выходах блоков умножения 13.9, 13.10, 13.11, 13.12 формируются значения (1+τ)3,τ3,(1-τ)3,(2-τ)3. Значения τ3 с выхода блока умножения 13.10 и (1-τ3) с выхода блока умножения 13.11 поступают на первые входы блоков умножения 13.14 и 13.15 соответственно. На вторые входы этих блоков подается код числа 4. В результате выполнения операции умножения на выходах блоков умножения 13.14 и 13.15 формируются значения 4τ3 и 4(1-τ)3 соответственно. Последние поступают на входы вычитаемого блоков вычитания соответственно 13.13 и 13.16. На входы уменьшаемого блоков вычитания 13.13 и 13.16 поступают значения соответственно (1+τ3) с выхода блока умножения 13.9 и (2-τ)3 с выхода блока умножения 13.12. В результате на выходах блоков вычитания 13.13 и 13.16 формируются значения параметров сплайна соответственно [(1+τ)3-4τ3] и [(2-τ)3-4(1-τ)3], которые поступают на выходные шины 5 и 8 блока формирования параметров сплайна 13. Кроме того, на выходных шинах 6 и 7 блока 13 формируются значения параметров сплайна τ3 (снимаемое с выхода блока умножения 13.10) и (1-τ)3 (с выхода блока умножения 13.11), задержанные в элементах 13.17 и 13.18 соответственно. На этом работа блока 13 по формированию значений параметров сплайна завершается.
Блоки умножения 13.1, 13.5 - 13.12, 13.14, 13.15 можно реализовать на микросхемах SN54284 и SN54285 или на микросхеме ADSP1016.
Сумматоры 13.2 и 13.4 можно реализовать на К155ЛП5, К155ЛИ1, К155ЛЕ4 и НЕ К155ЛН1.
Принцип реализации преобразователя в дополнительный код 13.3 известен и описан в книге Л.М. Гольденберг Импульсные и цифровые устройства. М.: Связь, 1973, с.462 - 468. Можно реализовать на микросхемах 155ЛА3, К155ЛП5, К155ЛЕ4 и К155ЛН1.
Блоки вычитания 13.13, 13.16 можно реализовать на микросхемах К155ЛП5, К155ЛИ1, К155ЛЕ4 и НЕ К155ЛН1.
Элементы задержки 13.7 и 13.8 можно реализовать на микросхеме К155ИР13 в соответствии с фиг. 6.
Claims (2)
1. Сплайн-интерполятор, содержащий первый и второй блоки памяти, первый - четвертый умножители, сумматор, регистр, блок управления и счетчик, группа информационных входов которого объединена с адресными входами первого блока памяти и одновременно является первой установочной шиной сплайн-интерполятора, вычитающий вход счетчика объединен с входом управления регистра и пятым выходом блока управления, а информационные выходы объединены с шестой группой входов блока управления, первый вход которого является тактовой шиной сплайн-интерполятора, а третий выход соединен с входом управления второго блока памяти, первая - четвертая группы выходов которого соединены с первыми группами входов соответственно первого - четвертого умножителей, группы выходов которых соединены соответственно с первой - четвертой группами входов сумматора, группа выходов которого соединена с информационными входами регистра, выходы которого являются группой информационных выходов сплайн-интерполятора, отличающийся тем, что дополнительно введены блок быстрого преобразования Фурье, третий блок памяти, пятый умножитель, блок обратного быстрого преобразования Фурье и блок формирования параметров сплайна, первая группа входов которого соединена с информационными выходами первого блока памяти, вторая группа входов - с информационными выходами счетчика, управляющий вход которого является шиной запуска сплайн-интерполятора, а вход обнуления - шиной обнуления сплайн-интерполятора, третья группа входов блока формирования параметров сплайна является второй установочной шиной сплайн-интерполятора, четвертая группа входов является третьей установочной шиной сплайн-интерполятора, пятая - восьмая группы выходов соединены с вторыми группами входов соответственно первого - четвертого умножителей, а девятый вход объединен с управляющим входом сумматора и четвертым выходом блока управления, седьмая группа входов которого является четвертой установочной шиной сплайн-интерполятора, а вторая группа выходов соединена с адресными входами третьего блока памяти, входами управления блока обратного быстрого преобразования Фурье и входами управления блока быстрого преобразования Фурье, информационные входы которого являются информационной шиной сплайн-интерполятора, а информационные выходы соединены с первой группой входов пятого умножителя, вторая группа входов которого соединена с информационными выходами третьего блока памяти, а выходы соединены с информационными входами блока обратного быстрого преобразования Фурье, информационные выходы которого соединены с информационными входами второго блока памяти.
2. Сплайн-интерполятор по п.1, отличающийся тем, что блок формирования параметров сплайна выполнен содержащим первый - одиннадцатый умножители, первый и второй сумматоры, преобразователь в дополнительный код, первый и второй блоки вычитания и первый, и второй элементы задержки, причем первая группа входов первого умножителя является первой группой входов блока формирования параметров сплайна, вторая группа входов первого умножителя является второй группой входов блока формирования параметров сплайна, а выходы соединены с первой и второй группами входов четвертого умножителя и второй группой входов пятого умножителя, первая группа входов которого соединена с выходами четвертого умножителя, а выходы соединены с первой группой входов десятого умножителя и входами первого элемента задержки, выходы которого являются шестой группой выходов блока формирования параметров сплайна, а управляющий вход является девятым входом блока формирования параметров сплайна и одновременно объединен с входом управления первого блока вычитания, входы вычитаемого которого соединены с выходами десятого умножителя, выходы являются пятой группой выходов блока формирования параметров сплайна, а входы уменьшаемого соединены с выходами третьего умножителя, первая группа входов которого соединена с выходами второго умножителя, а вторая группа входов объединена с второй и первой группами входов второго умножителя и выходами первого сумматора, управляющий вход которого объединен с управляющим входом первого блока вычитания, первая группа входов первого сумматора объединена с входами преобразователя в дополнительный код и выходами первого умножителя, а вторая группа входов является третьей группой входов блока формирования параметров сплайна и одновременно второй установочной шиной сплайн-интерполятора и соединена с второй группой входов второго сумматора, первая группа входов которого соединена с выходами преобразователя в дополнительный код, первой и второй группами входов шестого умножителя и второй группой входов седьмого умножителя, первая группа входов которого соединена с выходами шестого умножителя, а выходы соединены с входами второго элемента задержки и первой группой входов одиннадцатого умножителя, вторая группа входов которого объединена с второй группой входов десятого умножителя и одновременно является четвертой группой входов блока формирования параметров сплайна и третьей установочной шиной сплайн-интерполятора, а выходы одиннадцатого умножителя соединены с входами вычитаемого второго блока вычитания, выходы которого являются восьмой группой выходов блока формирования параметров сплайна, а входы уменьшаемого соединены с выходами девятого умножителя, первая группа входов которого соединена с выходами восьмого умножителя, а вторая группа входов объединена с второй и первой группами входов восьмого умножителя и выходами второго сумматора, управляющий вход которого объединен с управляющими входами второго блока вычитания, первого элемента задержки и второго элемента задержки, выходы которого являются седьмой группой выходов блока формирования параметров сплайна.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU97110507A RU2116669C1 (ru) | 1997-06-19 | 1997-06-19 | Сплайн-интерполятор |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU97110507A RU2116669C1 (ru) | 1997-06-19 | 1997-06-19 | Сплайн-интерполятор |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2116669C1 true RU2116669C1 (ru) | 1998-07-27 |
RU97110507A RU97110507A (ru) | 1998-11-20 |
Family
ID=20194449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU97110507A RU2116669C1 (ru) | 1997-06-19 | 1997-06-19 | Сплайн-интерполятор |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2116669C1 (ru) |
-
1997
- 1997-06-19 RU RU97110507A patent/RU2116669C1/ru active
Non-Patent Citations (1)
Title |
---|
SU, авторск ое свидетельство, 1405074, кл. G 06 F 17/17, 1988. * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0042452B1 (en) | Signal processor computing arrangement and method of operating said arrangement | |
US4785411A (en) | Cascade filter structure with time overlapped partial addition operations and programmable tap length | |
JPH02214322A (ja) | 最小2乗平均アルゴリズムを実施するためのパイプライン式プロセッサ | |
RU2116669C1 (ru) | Сплайн-интерполятор | |
WO1995032464A1 (en) | A parallel processing circuit and a digital signal processor including same | |
RU2140099C1 (ru) | Сплайн-интерполятор | |
RU2143131C1 (ru) | Сплайн-интерполятор | |
RU2143132C1 (ru) | Сплайн-интерполятор | |
RU2127901C1 (ru) | Сплайн-интерполятор | |
RU2165099C2 (ru) | Сплайн-интерполятор | |
RU2132567C1 (ru) | Сплайн-интерполятор | |
RU2132568C1 (ru) | Интерполятор | |
US5168456A (en) | Incremental frequency domain correlator | |
RU2143725C1 (ru) | Устройство двойного дифференцирования | |
RU2127903C1 (ru) | Интерполятор | |
RU2148272C1 (ru) | Устройство двойного дифференцирования | |
US5752012A (en) | Computational array with self timed computational element and method of self timed calculation | |
EP0426296A2 (en) | Apparatus having modular interpolation architecture | |
RU2143724C1 (ru) | Устройство дифференцирования | |
SU951299A1 (ru) | Устройство дл поворота вектора с коррекцией | |
SU1636842A1 (ru) | Устройство дл вычислени сумм произведений | |
GB2259593A (en) | Fast Fourier Transformation | |
JPS5944656B2 (ja) | デイジタル微分解析機の積分方式 | |
RU2160922C1 (ru) | Устройство n-кратного дифференцирования | |
Teja et al. | VLSI Architecture for Fractional-Order Adaptive Filter |