Главная > Разное > Теория и применение цифровой обработки сигналов
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

10.18. Свертка в реальном времени методом БПФ с использованием одного АУ и ЗУ с произвольным доступом

Предположим, что для исследования влияния фильтрации на речевые сигналы нужно создать макет КИХ-фильтра, работающего в реальном времени. В этом случае речевой сигнал следует дискретизовать с частотой 20 кГц, а отсчеты представлять 9—10-разрядными числами. Используя критерии расчета фильтров, рассмотренные в гл. 3, можно оценить длину импульсной характеристики; допустим, что достаточна характеристика из 128 отсчетов. Эта величина соответствует 442 базовым операциям на каждое БПФ или  базовым операциям на интервал дискретизации. Как будет показано ниже, при вычислении свертки с применением БПФ потребуется в четыре раза большее быстродействие, поэтому за один 50-микросекундный интервал дискретизации нужно будет выполнять 13,8 базовых операций (т. е. на каждую базовую операцию отводится 3,62 мкс).

Из приведенных оценок видно, что в данном случае не потребуется устройство с параллельным выполнением базовых операций, так как величина 3,62 мкс представляется достаточно большой даже для логических серий с умеренным быстродействием. Тем не менее разработчик может рассмотреть много различных вариантов. Если, например, он хочет использовать микросхемы с низким быстродействием, то ему, возможно, придется строить комбинационную матрицу из четырех умножителей и шести сумматоров. При использовании более быстродействующих микросхем (например, серии ТТЛ) можно ограничиться только одним матричным умножителем (со временем умножения 0,5 мкс), а базовая операция будет выполняться путем последовательных обращений к этому умножителю. При переходе к микросхемам с еще большим быстродействием становится возможным применение умножителя, использующего сложения и сдвиги. При этом экономятся микросхемы, но зато потребляется большая мощность и усложняется работа проектировщика, возможно не имевшего ранее дела со столь быстродействующими сериями.

Фиг.  10.40. Блок-схема и временная диаграмма свертывателя, использующего БПФ.

Допустим, что для фильтрации методом БПФ подходит система, в которой коэффициенты фильтра и отсчеты представлены числами в дополнительном коде с фиксированной запятой, имеющими соответственно 8 и 16 разрядов. Допустим также, что система обеспечивает быстродействие, оцененное выше. Далее необходимо определить структуру всего устройства: 1) выбрать тип АУ, 2) выбрать тип ЗУ, 3) разработать алгоритм обращения к ЗУ, 4) разработать методику прерываний для обеспечения ввода и вывода, 5) построить детальные временные диаграммы для всевозможный операций. Указанные этапы проектирования системы должны быть проработаны достаточно подробно, чтобы на их основе (с учетом выбранных серий микросхем) можно было создать полную принципиальную схему устройства. Опираясь на эту схему, можно перейти к разработке печатных плат и стоек, сформулировать требования к сигналам и решать множество других конструкторских задач.

Работа системы описывается временными диаграммами двух типов. Диаграммы первого типа задают распределение времени для процесса вычисления свертки в целом (т. е. между двумя БПФ и умножением на частотную характеристику фильтра), а временные диаграммы второго типа более детально представляют взаимосвязи между отдельными тактами работы АУ и ЗУ. Для составления диаграмм первого типа можно не конкретизировать структуру АУ или ЗУ и ограничиться упрощенной блок-схемой (фиг. 10.40).

Рассмотрим для определенности проектирование КИХ-фильтра с импульсной характеристикой длиной в 256 отсчетов. Для вычисления свертки методом БПФ необходимо выполнить последовательно два 512-точечных БПФ и взять половину выходных отсчетов. Общая временная диаграмма начинается с ввода 256 комплексных отсчетов в ячейки ЗУ с адресами от 0 до 255. Длительность этой операции, представляющая собой базовый интервал работы устройства, используется в качестве единицы отсчета для всех временных диаграмм (фиг.10.40). На следующем интервале отсчеты 256—511 вводятся не только в ячейки ЗУ с адресами 256—511, но и в ячейки 512—768. После этого можно приступить к вычислению свертки, включающему 512-точечное БПФ, умножение всех гармоник на отсчеты частотной характеристики фильтра и обратное БПФ. Для работы в реальном времени необходимо, чтобы все эти вычисления длились не более одного базового интервала. Начиная с четвертого интервала, ввод, вывод и вычисления производятся параллельно, причем каждой из этих операций соответствует временной цикл продолжительностью в три базовых интервала (на фиг. 10.40 эти циклы помечены римскими цифрами). ЗУ коэффициентов работает параллельно с АУ и ЗУ данных. Если коэффициенты БПФ и фильтра постоянны, их можно хранить в постоянном ЗУ (ПЗУ). Однако если коэффициенты желательно изменять, то нужно, чтобы ЗУ коэффициентов обеспечивало возможность записи (из ЦВМ, с перфоленты, перфокарт, с машинки и т. д.), причем частота записи в принципе может быть невысокой.

Интересно отметить, что при свертке 512-точечных реализаций (не в реальном времени) методом БПФ с замещением в обычной универсальной ЦВМ используется всего 512 (комплексных) регистров, но при переходе к работе в реальном времени это число утраивается. Кроме того, возникает вопрос, можно ли, не изменяя блок-схемы фиг. 10.40, использовать это же устройство в качестве фильтра, импульсная характеристика которого короче 256 отсчетов. Ответить на этот вопрос можно утвердительно. Действительно, выбрав соответствующие значения отсчетов частотной характеристики фильтра, можно получить импульсную характеристику любой длины, не превышающей 256. Следует, однако, учесть, что это утверждение справедливо лишь в случае, когда можно пренебречь влиянием конечной длины регистров ЗУ коэффициентов.

 

<< Предыдущий параграф Следующий параграф >>
Оглавление