Лайонс Р. Цифровая обработка сигналов. Второе издание. Пер. с англ. (2006) (1095937), страница 96
Текст из файла (страница 96)
397824735 На рисунке 13.9 все умножения выполняются путем проводного сдвига, и общее время выполнения ограничено только задержками аппаратурных компонентов. 16(мвх + мку2) !О! Рис. 13.9. Аппаратурная реализация при а = 15/16 и ф = 15/32 Обратите внимание на одну особенность. Поскольку оценки Щ могут иметь размер больше допустимого для нормализованных, их значения могут превышать единицу. Это значит, что, хотя модуль находится в пределах допустимого диапазона, оценка может выйти за границы слова и вызвать ошибку переполнения.
При использовании алгоритмов аМах+фМ1п пользователь должен быть уверен, что истинные значения модуля не превышают значений, которые могут дать оценку, превышающую максимальное представимое значение. За удобство использования значений а иф, представляющих собой целые степени двойки, мы платим ошибками, вносимыми при делении посредством сдвига с усечением, и до сих пор мы не принимали во внимание зги ошибки. Кривые оценок на рисунках 13.7 и 13.8 были получены с помощью программной модели, использующей вычисления с плавающей запятой, и могут использоваться для оценки разных пар значения а и ф. Однако действительная ошибка, вносимая алгоритмом аМахгфМш, будет несколько другой из-за ошибок деления при усечении 13.3.
Взвешивание окном в частотной области 479 Таблица 13.2. Сравнение алгоритмов аМвх+)8М)п Наибольшая Наибольшая Средняя Средняя Мах )Ч! ошибка ошибка ошибка ошибка [% Р.В.) (%) (г(В) (%) (дВ) Алгоритм )Ч(= Мах+ М!и/2 Мах+ М)п/4 Мах+ ЗМ)п/8 7(Мах+ М)п/2)/8 15(Мах + М)п/2)/16 8.6% 0.71 дБ 89.4% 11.8% -11.6% 6.8% -12.5 % -6.25 % 0.97 дБ -1.07дБ -0.64'/ — 0.06дБ 97.0% 3.97% 0.34дБ 93.6% 0.57 дБ -1.16 дБ -4.99 % — 0.45 дБ 100 % 1.79% 0.15дБ 95.4% -0.56 дБ 13.3.
Взвешивание окном в частотной области Существует интересный прием минимизации вычислений, необходимых для взвешивания с целью уменьшения утечки спектра. В некоторых случаях необходимо вычислить БП Ф невзвешенных данных и в то же время мы хотели бы иметь БПФ тех же данных, взвешенных окном.
В этой ситуации нам нет необходимости выполнять БПФ два раза. Мы можем вычислить БПФ невзвешенных данных, а затем выполнить сглаживание результата БПФ в частотной области для уменьшения утечки. Посмотрим, как это делается. данных с конечной длиной слова. Для схем аМах+8М!и ошибки усечения являются функцией длины слова данных, используемого алгоритма, значений Щ и Щ! и угла вектора.
(Ошибки усечения дополняют ошибки, внутренне присущие алгоритмам аМах+фМ!и.) Однако моделирование показало, что для 8-битовой системы (максимальная длина вектора = 255) ошибка усечения меньше 1 Ж. При увеличении длины слова ошибка усечения приближается к 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. Быстрое умножение комплексных чисел В цифровой обработке сигналов умножение двух комплексных чисел — одна из наиболее часто встречающихся операций. Она необходима во всех алгоритмах дискретного и быстрого преобразования Фурье,' в графических преобразованиях и используется при обработке коммуникационных сигналов.