Лайонс Р. Цифровая обработка сигналов. Второе издание. Пер. с англ. (2006) (1095938), страница 100
Текст из файла (страница 100)
При увеличении длины слова ошибка усечения приближается к 0 Ж, и это значит, что ошибки усечения вносят очень маленький вклад в общую ошибку алгоритма а Мах+)8М!и. Сравнительные характеристики разных алгоритмов приведены в таблице 13.2. Последний столбец в таблице 13.2 показывает максимально допустимую истинную длину вектора, при которой не возникает переполнение, по отношению к максимально допустимому числу. Итак, алгоритм аМах+)8М!и дает возможность быстро вычислять длину вектора без использования математического сопроцессора или аппаратурного умножителя. Конечно, при использовании современных микросхем, содержащих высокоскоростные умножители с плавающей точкой, выполняющие умножение за один или два такта, можно использовать произвольные значения а и 8, а не только целые степени двойки.
Следует также заметить, что этот алгоритм легко реализуется в интегральных схемах (например, ПЛИС), что позволяет выполнять высокоскоростную обработку. 480 Глава 13. Маленькие хи ости ци евой об ботки сигналов Вспомним приведенные в разделе 3.9 выражения для окон Хэннига и Хэмминга: гегг и(п) = 0.5 — 0.5соз(2лп/Х) и гОО (п) =0.54 — 0.4бсоз(2лп/Х) соответственно. Оба они имеют общую косинусоидальную форму (13-8) я(п) = а — рсоа(2лп/Ь/) при п = О, 1, 2, ..., М- 1.
Найдем спектр общего косинусоидэльного окна, вычислив ДПФ от (13-8): и-1 %(т) = ~~> 1а — рсоа(2лп/Ь1)'1е 12лиеи/и. (13-9) и О Поскольку соз(2лп/М) = еРли/и/2 + е Рии/и/2, (13-9) можно переписать в виде и-1 ге'-1 М вЂ” 1 Щт) =~> ае — 12лит/и (р/2)~> е12ии/и и-12лит/и (р/2) '>р — 12ии/и и — 12лиги/и и-О и О и О и — 1 М вЂ” 1 Н-1 =а~е 12иии/и — (р/2)~> еРии/не /е ии/и — (Р/2)~),е-12ии/не-12ииги/и.
(13-10) и О и О и-О Выражение (13-10) выглядит довольно сложным, но, используя результаты раздела 3.13 для выражений, подобных суммам в (13-10), мы приходим к выводу, что искомый спектр представим как суперпозиция трех функций вида яп(х)/х в частотной области. Их амплитудные спектры показаны на рисунке 13.10. т-1 т т+1 Рис.
13.10. Амплитудный спектр общего косннусоидального окна Заметим, что две смещенные функции яп(х)/х имеют боковые лепестки, фазы которых противоположны фазам боковых лепестков центральной функции яп(х)/х. Это значит, что из т-го бина, умноженного на а, вычитаются (т-1)-й бин, умноженный на р/2, и (т+1)-й бин, умноженный на 8/2, что минимизирует боковые лепестки т-го бина. Этот процесс вычисления свертки в частотной области эквивалентен умножению входной последовательности на окно го(п) длиной Уотсчетов вида (13-8)112 - 14]. НапРимеР, пРедположим, что выход щ-го бина Равен Х(т) = а +1Ько и выходы двух соседних бинов равны Х(т — 1) = а 1 +1Ь 1и Х(т+1) = а~1+1Ье1.
Тогда сглаживание в частотной области для т-го бина несглаженного Х(т) даст следующий результат: Хио трем огиеиеаам(т) = аХ(т) — (й/2)Х(т — 1) — (15/2)Х(т 1) = 13.3. Взвешивание окном в частотной области = а(а +1Ь ) — (8/2)(а 1+1Ь ~) — (р/2)(а ~ +1Ь~,) = =аая — (р/2)(а т+ а~г) +ДаЬ,„— (рв/2)(Ь т+ Ь~т)) . (13-11) Для вычисления сглаженного Ф-точечного БПФ, Хвв жрвм вжсчиццц(т), мы можем применить (13-11), в котором используются положений и 3Хумножений, к результату Х-точечного БПФ Х(т) невзвешенной последовательности и избежать таким образом необходимости выполнения %умножений при взвешивании во временной области и второго БПФ с его М[о82(М) сложений и 2%)оду(М) умножений. (В этом случае мы назвали результат сглаживания Х щр (т), потому что мы выполняем свертку трехчленной последовательности йт(и) с последовательностью Х(т).) Итак, ситуация благоприятная. Имеются коэффициенты в частотной области а и8 для окна Хэннинга.
Они оба равны 0.5, и умножения в (13-11) можно выполнить в аппаратуре с помощью двух двоичных сдвигов вправо: на один бит для а = 0.5 и на два бита для каждого из двух р/2 = 0.25, что в сумме дает шесть двоичных сдвигов. Если допустимо усиление в четыре раза, мы можем ограничиться только двумя сдвигами влево (одним для действительной и одним для мнимой части Х(т)), используя выражение Хлзццццвц усцдвццв 4(т) = 2Х(т) — Х(т — 1) — Х(т 1) . ( 1 3- 1 2) В реализациях на заказных БИС (АБ)С) или на ПЛИС типа ГРОА, в которых следует избегать умножений', двоичные сдвиги выполняются путем соответствующей организации соединений блоков. Таким образом, для реализации сглаживания с использованием окна Хэннинга требуются только сложения. Мы должны рассмотреть вопрос о том, какое окно наилучшим образом подходит для данного приложения и какими возможностями обладает имеющаяся аппаратура при реализации взвешивания в частотной области. Взвешивание окном Хэмминга тоже можно реализовать в частотной области, но, к сожалению, здесь простых сдвигов недостаточно.
Наряду с окнами Хэннинга и Хэмминга в [14) описано семейство окон, известное как окна Блэкмана, которое обеспечивает меньшую утечку при реализации взвешивания в частотной области. (Примечание: в [14) обнаружены две опечатки в коэффициентах 4-членного ( — 74 дБ) окна на странице 65. В [15] приведены следующие значения этих коэффициентов: 0.40217, 0.49709, 0.09892 и 0.00188.) Окна Блэкмана имеют пять ненулевых коэффициентов в частотной области, и нх использование требует следующей пятичленной свертки: Хвв цвт вт (т) = аХ(т) (у/2)Х(т — 2) — ()5/2)Х(т — 1)— — (8/2)Х(я+ 1) + (у/2)Х(т ч-2) . (13-13) В таблице 13.3 приведены коэффициенты в частотной области для нескольких общеупотребительных окон.
1 Современные ПЛИС ГРСА содержат встроенные аппаратурпо-резлизованные умно- жители, так что замена полномасштабного умножения сдвигами в некоторой степени утратила актуальность — (прим. перев.). 462 Глава13.Маленькиехит остици войоб вботкисигнвлов Завершим наше обсуждение сглаживания в частотной области, заметив, что эта схема может быть эффективной, потому что мы не должны взвешивать весь массив данных, сглаживание выполняется только над теми бинами БПФ, которые представляют какой-то интерес. Одно из применений сглаживания во временной области рассматривается в разделе 13.18. Таблица 13.3.
Коэффициенты сглаживания в частотной области а ,8 у Окно 1.0 0.5 0.5 0.54 0.46 0.42 0.5 0.08 0.42323 0.49755 0.07922 1 3.4. Быстрое умножение комплексных чисел В цифровой обработке сигналов умножение двух комплексных чисел — одна из наиболее часто встречающихся операций. Она необходима во всех алгоритмах дискретного и быстрого преобразования Фурье,' в графических преобразованиях и используется при обработке коммуникационных сигналов. И в аппаратурной, и в программной реализации необходимо реализовать ее как можно эффективнее. Если используемая аппаратура может выполнять три сложения быстрее, чем одно умножение, мы можем ускорить комплексное умножение 116].
Умножение двух комплексных чисел а +7Ь и с +7а дает комплексное произведение вида Я+77-(а+7Ь)(с+7в') = (13-14) = (ас — Ы) +7(Ьс + ас4) Мы видим, что (13-14) требует четыре умножения и два сложения. (Мы предполагаем, что с точки зрения времени выполнения вычитание эквивалентно сложению.) Вместо использования (13-14) мы можем вычислить следующие промежуточные значения Ат=а(с+4, А2 = г((а + Ь), Ьз - с(Ь вЂ” а).
(13-15) Прямоугольное Хэннинга Хам минга Блзкмана Точное Блзкмана 3-членное Блэкмана-Харриса 7938/18608 9240/18608 1430/18608 13.5. хтивное вычисление БПФдействительныхпоследовательностей 483 Затем мы выполняем следующие операции для получения окончательных значений Н и й к=вт-вг (13-16) 1 ~ 1 + ( 3 Мы предлагаем читателю подставить й из (13-15) в (13-16) и убедиться в том, что выражения в (13-16) эквивалентны (13-14). Промежуточные значения в (13-15) требуют три сложения и три умножения, а результаты в (13-16) требуют еще два сложения. Таким образом, мы обменяли одно умножение в (13-14) на три сложения в (13-15) и (13-16). Если нашей аппаратуре для выполнения трех сложений требуется меньше тактов, чем для одного умножения, мы можем получить общий выигрыш в скорости обработки при использовании (13-15) и (13-16) вместо (13-14) для выполнения комплексного умножения.
13.5. Эффективное вычисление БПФ действительных последовательностей Осознав свойство линейности и четную/нечетную симметрии быстрого преобразования Фурье (БПФ), ранние его исследователи быстро пришли к выводу о том, что две разные действительные последовательности могут быть преобразованы с помощью одного комплексного БПФ. Они также разработали метод использования одного Х-точечного комплексного БПФ для преобразования действительной последовательности длиной в 21ч'отсчетов.