ЧАСТОТНЫЙ ФИЛЬТР

Полезная модель относится к технологии цифровой обработки сигнала, конкретно к частотному фильтру и может быть использована в системах цифровой обработки сигналов.
В системах цифровой обработки сигнала часто используются фильтры для фильтрации помех, выделения полезных сигналов, формирования сигналов и т.д. В настоящее время дискретные цифровые сигналы линейной стационарной системы обрабатываются преимущественно двумя типами фильтров: временной свертки и частотного перемножения. Поскольку фильтр свертки сигнала во временной области использует вычислительные возможности более рационально благодаря высокоэффективному схемному варианту табличного поиска, то для фильтра с неизменяющейся характеристикой этот тип фильтрации часто используется при разработке микросхем. Вместе с тем, в ряде случаев требуется динамическое изменение формы отклика фильтра на единичный импульс, так что фильтр типа временной свертки вызывает затруднения при проектировании и требует дополнительных ресурсов. В этих случаях фильтрация может быть осуществлена следующим образом: сигнал из временной области преобразуется в частотную область посредством быстрого преобразования Фурье (БПФ), затем сигнал в частотной области умножается на частотный коэффициент фильтра для выполнения фильтрации; и затем отфильтрованный частотный сигнал преобразуется в сигнал во временной области посредством обратного БПФ (ОБПФ) и подается на выход.
Известен цифровой фильтр по патенту RU 2123758 от 20.12.1998, содержащий блок дискретного преобразования Фурье (ДПФ), блок умножения, узел повышения спектрального разрешения, а также блок обратного дискретного преобразования Фурье (ОДПФ).
Поскольку в вышеупомянутой схеме сигнал непосредственно обрабатывается с помощью ДПФ и ОДПФ, то возможны скачки фазы в сигнале данных вблизи части заголовка и концевой части сегмента данных, прошедших преобразование Фурье, после фильтрации сигнала, что весьма негативно влияет на фильтрацию и может привести к нелинейности фазы отфильтрованного сигнала. Кроме того, при операции ДПФ над входным сигналом возможно проявление эффекта «растекания спектра», что негативно влияет на корректный перевод анализируемого сигнала из временной области в частотную. При этом, частотный коэффициент фильтра в этой схеме не может быть динамически изменен извне.
Наиболее близким, принятым за прототип, является частотный фильтр по патенту RU 2308153 С2 от 10.10.2007. Принцип динамической фильтрации в частотной области согласно прототипа показан на фиг.1, причем процесс фильтрации включает в себя следующие этапы:
Этап 101: входной сигнал временной области, т.е. входной поток данных, перекрывается. Более конкретно: входной поток данных делится на множество сегментов данных с определенной степенью перекрытия.
Этап 102: выполнение БПФ для каждого перекрывающегося сегмента соответственно.
Этап 103: каждый сегмент данных в частотной области после БПФ умножается на коэффициент фильтра для выполнения фильтрации в частотной области, причем коэффициент фильтра сохраняется в памяти 106 коэффициентов фильтра, которая может быть обновлена в реальном времени программным образом или с помощью арифметической схемы для динамического обновления характеристик фильтра в частотной области.
Этап 104: выполнение ОБПФ для каждого сегмента данных, который был отфильтрован в частотной области, соответственно для восстановления сегмента данных во временной области.
Этап 105: выполнение обработки обращенного перекрытия сегментов данных во временной области, полученных на этапе 104, для получения на выходе потока данных во временной области.
Принцип обработки перекрытия и обращенного перекрытия показан на фиг.2. Предположим, что S1 есть входной сигнал во временной области, арифметическая длина S1 для БПФ есть N и длина перекрытия есть L, то, начиная от первой точки выборки S1, сегмент данных выборки длиной N берется на интервале данных (N-L), для которого данные длиной L, начиная от конца каждого сегмента данных, те же самые, что и первые данные длиной L следующего сегмента данных, т.е. длина перекрытия составляет L. Поэтому S1 последовательно делится на несколько сегментов, и каждый сегмент имеет длину N и длину перекрытия L. Таким образом выполняется обработка перекрытия временного сигнала S1.
После обработки перекрытия сегменты данных F1 обрабатываются посредством БПФ фильтрации во временной области и ОБПФ соответственно. Затем обработанные таким образом временные сегменты данных F1 выводятся для обработки обращенного перекрытия, как описано ниже.
Первые L/2 данные и последние L/2 данные каждого из F1 сегментов, которые требуют обработки обращенного перекрытия, удаляются, а оставшиеся (N-L) данные каждого сегмента извлекаются и комбинируются исходя из порядка обработки перекрытия для
получения желаемых данных после фильтрации в частотной области. Поскольку первые L/2 данные и последние L/2 данные каждого из сегментов удалены в обработке обращенного перекрытия, то данные крайних частей сегмента не выводятся, и фильтрующий эффект значительно улучшен. При увеличенной длительности перекрытия L параметры фильтрации становятся лучше, но ресурсы для реализации и соответствующие затраты также значительно возрастает.
Схема, иллюстрирующая реализацию динамического частотного фильтра согласно прототипа, представлена на фиг.3. Частотный фильтр-прототип содержит управляющий блок, матрицу памяти, память коэффициентов фильтра, блок коммутации данных, блок табличного поиска циклических множителей, блок формирования выходных данных и, по меньшей мере, одно общее высокоскоростное арифметическое устройство.
Частотный фильтр-прототип работает следующим образом.
Данные временной области, подлежащие фильтрации в частотной области, вводятся через шину входных данных в матрицу памяти; матрица памяти выводит отфильтрованные в частотной области данные временной области через шину данных на блок формирования выходных данных, и окончательно отфильтрованные данные временной области выводятся после регулировки уровня, причем
управляющий блок связан с матрицей памяти через линию сигнала считывания/записи и линии сигнала адресации;
управляющий блок связан с введенным извне синхросигналом данных временной области;
управляющий блок выводит сигнал управления объединением данных на блок формирования выходных данных для управления стробом и объединением отфильтрованных данных временной области;
управляющий блок выводит сигнал управления табличным поиском на блок табличного поиска циклических множителей для управления табличным поиском, синхронизированным с преобразованием Фурье и обратным преобразованием Фурье, и подает соответствующий циклический множитель на общее высокоскоростное арифметическое устройство;
управляющий блок выводит сигнал управления коммутацией данных на блок коммутации данных для управления стробом ввода/вывода данных матрицы памяти и коммутацией между данными для операции преобразования Фурье и данными для операции частотной фильтрации в общем высокоскоростном арифметическом устройстве; причем матрица памяти и блок коммутации данных соединены посредством двунаправленной шины,
и блок коммутации данных и общее высокоскоростное арифметическое устройство также соединены посредством двунаправленной шины данных;
управляющий блок выводит сигнал управления состояниями на общее высокоскоростное арифметическое устройство для управления коммутацией между преобразованием Фурье и операцией фильтрации в частотной области;
память коэффициентов фильтра получает управляющий синхросигнал извне и посылает на общее высокоскоростное арифметическое устройство значение коэффициента фильтра, или получает сигнал обновления коэффициента извне для обновления автономносохраненного коэффициента фильтра.
Недостатком известного частотного фильтра-прототипа является возможность «просачивания» помехи из полосы задерживания в полосу пропускания фильтра, которая возникает из-за наличия явления «растекания спектра» при выполнении дискретного преобразования Фурье.
Техническим результатом, на достижение которого направлено изобретение, является снижение «просачивания» помехи из полосы задерживания в полосу пропускания фильтра счет уменьшения эффекта «растекания спектра» путем использования взвешивающих окон.
При вычислении спектра сигнала с помощью дискретного преобразования Фурье возможен следующий нежелательный эффект. При разложении функции в ряд Фурье полагается, что функция периодическая, с периодом, равным размеру ДПФ. При этом если значения начальных и конечных отсчетов сигнала сильно различаются, при периодическом повторении на стыках сегментов возникают скачки, из-за которых спектр сигнала расширяется. Это явление называется «растеканием спектра».
Поскольку сигнал на входе фильтра сегментируется для преобразования Фурье, то его удобно рассматривать как некоторую часть соответствующего бесконечного сигнала, видимого через применяемое окно. Например, сегмент анализируемого сигнала s[i] из N отсчетов математически можно записать как произведение прямоугольной функции единичной амплитуды
и бесконечного сигнала S1[i]:
s[i]=S1[i]·rect[i],
где i - номер отсчета анализируемого сигнала.
При этом принимается очевидное допущение о том, что все отсчеты сигнала, не попавшие в рассматриваемый сегмент, равны нулю независимо от того, так это на самом
деле или нет. Дискретное преобразование Фурье взвешенного окном сегмента, выраженного через преобразования сигнала S1[i] и прямоугольного окна rect[i], равно свертке этих преобразований:
s
S1
N
G(f)=G(f)*D(f),
s
где G(f) - спектр сегмента анализируемого сигнала,
S1
G(f) - спектр анализируемого сигнала,
N
D(f) - дискретная функция sinc, или ядро Дирихле, представляет собой ДПФ прямоугольной функции.
Преобразование анализируемого конечного сегмента является искаженной версией преобразования бесконечного сигнала S1[i]. Минимальная ширина спектральных пиков взвешенного окном сегмента сигнала ограничена шириной, определяемой главным лепестком преобразования используемого окна, и не зависит от исходных данных сигнала. Боковые лепестки преобразования окна будут изменять амплитуды соседних гармоник. Поскольку ДПФ - периодическая функция, то наложение боковых лепестков от соседних спектральных гармоник может привести к дополнительному смещению.
Просачивание на соседние частоты через боковые лепестки окна данных приводит не только к появлению амплитудных ошибок, но может также маскировать присутствие слабых сигналов, что особенно важно, например, при использовании частотного фильтра в задачах подавления узкополосных помех.
Для устранения этого эффекта применяются взвешивающие функции (окна данных), например, Хемминга, Блэкмана, Хеннинга, Наттолла и др. (См. Марпл.-мл. С.Л. Цифровой спектральный анализ и его приложения / Пер. с анг. М.: Мир, 1990. 584 с.). Входные отсчеты анализируемого сегмента умножаются на соответствующую функцию окна, что влечет за собой уменьшение амплитуды сигнала на краях сегмента. Различные окна данных имеют разные характеристики, такие как ширина полосы основного лепестка, пиковый уровень боковых лепестков, скорость спадания боковых лепестков, и должны подбираться в зависимости от решаемой частотным фильтром задачи. Выбор функции окна данных является, прежде всего, компромиссом между увеличением ширины полосы основного лепестка и размером боковых лепестков, приводящих к «растеканию спектра». Так при обработке сигнала с малым динамическим диапазоном спектра желательно использовать окна данных с малой шириной полосы основного лепестка (окна данных с высоким разрешением по частоте) и с удовлетворительным уровнем просачивания через боковые лепестки, такие как прямоугольное окно, окно Хемминга, Хеннинга и др. При обработке сигнала с высоким динамическим диапазоном спектра,
например, при наличии мощной узкополосной помехи, желательно использовать окна данных с низким пиковым уровнем боковых лепестков, но с более широкой полосой основного лепестка, такие как окно Наттолла, Блэкмана-Харриса и др. Причем желательно, чтобы окно данных, используемое при ДПФ, могло меняться программным или аппаратным методом в зависимости от решаемое фильтром задачи и характеристик входного сигнала.
Для достижения технического результата в известный частотный фильтр, содержащий управляющий блок, матрицу памяти, память коэффициентов фильтра, блок коммутации данных, блок формирования выходных данных, блок табличного поиска циклических множителей и, по крайней мере, одно общее высокоскоростное арифметическое устройство, дополнительно введен блок памяти коэффициентов взвешивающего окна данных, причем
данные временной области, подлежащие фильтрации в частотной области, вводятся через шину данных в матрицу памяти; матрица памяти выводит отфильтрованные в частотной области данные временной области через шину данных на блок формирования выходных данных, и окончательно отфильтрованные данные временной области поступают на выход частотного фильтра;
управляющий блок связан с матрицей памяти через линию сигнала считывания/записи и линии сигнала адресации;
управляющий блок связан с введенным извне синхросигналом данных временной области;
управляющий блок выводит сигнал управления объединением данных на блок формирования выходных данных для управления стробом и объединением отфильтрованных данных временной области;
управляющий блок выводит сигнал управления табличным поиском на блок табличного поиска циклических множителей для управления табличным поиском, синхронизированным с преобразованием Фурье и обратным преобразованием Фурье, и подачей соответствующего циклического множителя на общее высокоскоростное арифметическое устройство;
управляющий блок выводит сигнал управления коммутацией данных на блок коммутации данных для управления стробом ввода/вывода данных матрицы памяти и коммутацией между данными для операций взвешивания окном данных, данными для преобразования Фурье и данными для операции частотной фильтрации в общем высокоскоростном арифметическом устройстве; причем матрица памяти и блок коммутации данных соединены посредством двунаправленной шины, и блок коммутации данных и
общее высокоскоростное арифметическое устройство также соединены посредством двунаправленной шины данных;
управляющий блок выводит сигнал управления состояниями на общее высокоскоростное арифметическое устройство для управления коммутацией между операцией взвешивания окном данных, преобразованием Фурье и операцией фильтрации в частотной области;
память коэффициента фильтра получает управляющий синхросигнал извне и посылает на общее высокоскоростное арифметическое устройство значение коэффициента фильтра, или получает сигнал обновления коэффициента извне для обновления автономносохраненного коэффициента фильтра;
управляющий блок выводит управляющий синхросигнал в память коэффициентов фильтра для приведения памяти в защищенное от записи состояние, когда память работает, и вывода из защищенного от записи состояния, когда память ожидает обновления коэффициента фильтра;
блок памяти коэффициентов взвешивающего окна данных получает управляющий синхросигнал извне и посылает на общее высокоскоростное арифметическое устройство значение коэффициента взвешивающего окна данных, или получает сигнал обновления коэффициента извне для обновления автономносохраненного коэффициента взвешивающего окна данных;
управляющий блок выводит управляющий синхросигнал в блок памяти коэффициентов взвешивающего окна данных для приведения памяти в защищенное от записи состояние, когда память работает, и вывода из защищенного от записи состояния, когда память ожидает обновления коэффициента взвешивающего окна данных.
Схема, иллюстрирующая принцип динамической фильтрации в частотной области с использованием взвешивающего окна данных согласно полезной модели, приведена на фиг.4, причем процесс фильтрации включает в себя следующие этапы:
Этап 401: входной сигнал временной области, т.е. входной поток данных, перекрывается.
Этап 402: каждый сегмент данных во временной области умножается на взвешивающее окно данных, коэффициенты которого сохраняются в памяти 409 коэффициентов взвешивающего окна данных и могут быть обновлены в реальном времени.
Этап 403: выполнение БПФ для каждого перекрывающегося сегмента данных, взвешенных окном, соответственно.
Этап 404: каждый взвешенный сегмент данных в частотной области после БПФ умножается на коэффициент фильтра для выполнения фильтрации в частотной области, причем коэффициент фильтра сохраняется в памяти 408 коэффициентов фильтра, которая может быть обновлена в реальном времени.
Этап 405: выполняется ОБПФ для каждого взвешенного сегмента данных, который был отфильтрован в частотной области, для восстановления взвешенного сегмента данных во временной области.
Этап 406: каждый взвешенный сегмент данных, полученный на этапе 405, умножается на обратное взвешивающее окно данных, коэффициенты которого сохраняются в памяти 409 коэффициентов взвешивающего окна данных.
Этап 407: выполнение обработки обращенного перекрытия сегментов данных во временной области, полученных на этапе 406, для получения на выходе потока данных во временной области.
Нацеленная на устранение недостатков схемы частотной фильтрации, описанной в прототипе, характеризующейся возможностью «просачивания» помехи из полосы задерживания в полосу пропускания фильтра, которая возникает из-за наличия явления «растекания спектра» при выполнении операции БПФ, настоящая полезная модель уменьшает «просачивание» помехи путем введения операции взвешивания сегмента данных перед выполнением БПФ и операции взвешивания обратным окном данных после выполнения фильтрации в частотной области и ОБПФ. Кроме того, полезная модель предусматривает память коэффициентов взвешивающего окна данных, обеспечивающую удобное, быстрое и динамичное обновление коэффициентов взвешивающего окна данных, что будет иметь многие приложения в системах, требующих адаптивной фильтрации.
Проведенный анализ уровня техники позволил установить, что аналоги, характеризующиеся совокупностью признаков, тождественных всем признакам заявленного технического решения, отсутствуют, что указывает на соответствие заявленного устройства условию патентоспособности «новизна».
Заявленное устройство поясняется чертежами:
фиг.1 - схема, иллюстрирующая принцип динамической фильтрации в частотной области согласно прототипу;
фиг.2 - схема, иллюстрирующая принцип обработки сигнала с перекрытием и обращенным перекрытием согласно прототипу;
фиг.3 - схема, иллюстрирующая реализацию динамического частотного фильтра согласно прототипу;
фиг.4 - схема, иллюстрирующая принцип динамической фильтрации в частотной области с использованием взвешивающего окна данных согласно полезной модели;
фиг.5 - схема, иллюстрирующая реализацию динамического частотного фильтра с использованием взвешивающего окна данных согласно полезной модели;
фиг.6 - схема, иллюстрирующая структуру блока коммутации данных.
Как показано на фиг.5, предлагаемый настоящей полезной моделью частотный фильтр содержит управляющий блок 501, матрицу 502 памяти, память 503 коэффициентов фильтра, блок 504 коммутации данных, блок 506 формирования выходных данных, блок 507 табличного поиска циклических множителей, блок 508 памяти коэффициентов взвешивающего окна данных и, по меньшей мере, одно общее высокоскоростное арифметическое устройство 505. Управляющий блок 501 выводит семь управляющих сигналов, подаваемых на матрицу 502 памяти, память 503 коэффициентов фильтра, блок 504 коммутации данных, общее высокоскоростное арифметическое устройство 505, блок 506 формирования выходных данных, блок 507 табличного поиска циклических множителей, блок 508 памяти коэффициентов взвешивающего окна данных соответственно. Кроме того, входной управляющий сигнал извне посылается на управляющий блок 501.
Управляющий сигнал 12 управляющего блока 501 обеспечивает сигналы управления считыванием/записью и управления стробом для матрицы памяти, чтобы управлять операциями считывания и записи в процессе ввода, вывода, перекрытия, обращенного перекрытия, взвешивания окном данных, взвешивания обратным окном данных, сходящегося вычисления и фильтрации данных в частотной области. Управляющий сигнал 13 является сигналом управления формированием выходных данных, который управляет стробом и формированием окончательных выходных данных во временной области из различных блоков памяти. Управляющий сигнал 14 является синхронизирующим управляющим сигналом памяти коэффициентов фильтра, который управляет памятью коэффициентов фильтра, посылая коэффициент фильтра на общее высокоскоростное арифметическое устройство, тем самым осуществляя защиту от записи для памяти коэффициентов фильтра, когда коэффициент фильтра используется, но аннулирует защиту от записи в ждущем состоянии так, что коэффициент фильтра может быть обновлен. Управляющий сигнал 15 является управляющим сигналом табличного поиска, который обеспечивает синхронизацию табличного поиска с операциями БПФ/ОБПФ и управляет блоком табличного поиска циклических множителей для выведения соответствующего циклического множителя при выполнении БПФ и ОБПФ. Управляющий сигнал 16 является сигналом управления состояниями общего высокоскоростного арифметического устройства, который управляет переключением между состояниями взвешивания окном данных,
сходящегося вычисления и фильтрации в частотной области. Управляющий сигнал 17 является сигналом управления коммутацией данных, который управляет стробом ввода/вывода данных блоков памяти и общего высокоскоростного арифметического устройства для реализации мультиплексирования с разделением по времени общего высокоскоростного арифметического устройства в операции с данными множества блоков памяти, а также управляет коммутацией входных данных между операциями взвешивания окном данных, сходящимся вычислением и операцией фильтрации в частотной области. Внешний управляющий сигнал 18 является синхронизирующим сигналом внешних данных во временной области, вводимым для синхронизации во времени управляющего блока и вводимых внешних данных. Управляющий сигнал 19 является синхронизирующим управляющим сигналом блока памяти коэффициентов взвешивающего окна данных, который управляет блоком памяти коэффициентов взвешивающего окна данных, посылая коэффициент взвешивающего окна данных на общее высокоскоростное арифметическое устройство, тем самым осуществляя защиту от записи для блока памяти коэффициентов взвешивающего окна данных, когда коэффициент взвешивающего окна данных используется, но аннулирует защиту от записи в ждущем состоянии так, что коэффициент взвешивающего окна данных может быть обновлен.
Матрица памяти содержит, по меньшей мере, два независимых блока памяти и используется для сохранения перекрывающихся сегментов данных, а также промежуточного результата операции взвешивания окном данных, БПФ и операции фильтрации. Матрица может состоять из матрицы ОЗУ. Каждый блок памяти в матрице ОЗУ обозначается как группа ОЗУ. Каждая группа ОЗУ содержит, по меньшей мере, два ОЗУ с функцией локального сохранения для операции с данными. В любой момент времени одно из двух ОЗУ находится в состоянии считывания, а другое ОЗУ - в состоянии записи. То ОЗУ, которое находится в состоянии считывания, считывает данные, вычисляемые как поток данных, и посылает данные на арифметическое устройство, а результат вычисления может быть сохранен в ОЗУ той же группы ОЗУ в состоянии записи. Память коэффициента фильтрации содержит, по меньшей мере, одну ячейку ОЗУ. Память коэффициентов взвешивающего окна данных содержит, по меньшей мере, одну ячейку ОЗУ. Схемы ОЗУ известны и описаны, например, в книге В.Н.Вениаминова, О.Н.Лебедева, А.И.Мирошниченко «Микросхемы и их применение» (М.: Радио и связь, 1989, с.146, рис.5.2). В частности, ОЗУ может быть реализовано на микросхемах К565 серии. Блок табличного поиска циклических множителей представляет собой постоянное запоминающее устройство (ПЗУ), в котором хранятся значения циклических множителей для выполнения операций БПФ и ОБПФ. Схема ПЗУ
известна и описана в той же книге на с.156, рис.5.8. В частности, ПЗУ может быть реализовано на микросхемах К555 серии.
Общее высокоскоростное арифметическое устройство представляет собой устройство сходящихся ("butterfly") вычислений. Схемы устройств сходящихся вычислений известны и описаны, например, в книге Э.Айфичера, Б.Джервиса «Цифровая обработка сигналов: практический подход» (М.: Издательский дом «Вильяме», 2004. с.850, рис.12.40). В частности, такая схема может быть реализована на комплексных умножителях PDSP16112A (Mitel) и комплексных накопителях PDSP16318A (Mitel).
Блок коммутации данных содержит селектор входных данных, селектор выходных данных, распределитель входных дынных, распределитель выходных данных и, по меньшей мере, два блока коммутации входных/выходных данных; число блоков коммутации входных/выходных данных равно числу блоков памяти в матрице памяти; блоки коммутации входных/выходных данных однозначно соответствуют блокам памяти; каждый блок коммутации входных/выходных данных соединен с соответствующим блоком памяти посредством двунаправленной шины данных; выход каждого блока коммутации входных/выходных данных соединен с селектором входных данных, и вход каждого блока коммутации входных/выходных данных соединен с распределителем выходных данных; выход селектора выходных данных соединен с распределителем входных данных; три выхода распределителя входных данных соединены с общим высокоскоростным арифметическим устройством; три входа селектора выходных данных соединены с общим высокоскоростным арифметическим устройством, и выход селектора выходных данных соединен с распределителем выходных данных. Блок формирования выходных данных предназначен для выполнения операции обращенного перекрытия и представляет собой селектор данных. Селекторы данных, а также блоки коммутации входных/выходных данных представляют собой мультиплексоры. Распределители входных и выходных данных представляют собой демультиплексоры. Схемы мультиплексоров и демультиплексоров известны и описаны, например, в книге О.Н.Лебедева, A.M.Сидорова «Импульсные и цифровые устройства. Цифровые узлы и их проектирование на микросхемах» (ВАС, 1980, с.55, рис.2.36). В частности, мультиплексоры и демультиплексоры могут реализованы на микросхемах К155 серии.
Управляющий блок предназначен для формирования сигналов управления другими блоками фильтра и представляет собой распределитель. Схемы распределителей известны и описаны, например, в книге И.Н.Букреева «Микроэлектронные схемы цифровых устройств» (М.: «Сов. радио», 1975, с.264, рис.6.2). В частности, управляющий блок может быть реализован на микросхемах К561 серии.
Устройство, изображенное на фиг.5, работает следующим образом. Управляющий модуль 501 посылает на матрицу 502 памяти управляющий сигнал 12. Посредством управления этим сигналом адресом записи каждого блока памяти, обработка перекрытия, показанная на фиг.2, выполняется в течение процедуры 2 ввода, когда входные данные 1 во временной области вводятся в матрицу 502 памяти через входную шину данных, и каждый из сегментов данных во временной области, созданных в течение обработки перекрытия, сохраняется последовательно в каждом блоке памяти матрицы 502 памяти. Пространство памяти, требуемое в течение всей процедуры обработки каждого сегмента данных, обеспечивается группой ОЗУ, в которой находится сегмент данных.
Затем на основе управляющих сигналов 12, 16, 17 и 19, которые посылаются на матрицу 502 памяти, общее высокоскоростное арифметическое устройство 505, блок 504 коммутации данных, блок 508 памяти коэффициентов взвешивающего окна данных с помощью управляющего блока 501, соответственно каждый блок памяти может обмениваться сохраняемыми в нем данными с высокоскоростным арифметическим устройством 505 на высокой скорости через блок 504 коммутации данных, т.е. данные в блоке памяти считываются и вводятся в блок 504 коммутации данных через двунаправленную шину 5; переключенные в блоке 504 коммутации данных, данные для операции взвешивания окном данных вводятся в общее высокоскоростное арифметическое устройство 505 через двунаправленную шину данных 6; и затем выполняется операция умножения данных с соответствующим коэффициентом взвешивающего окна данных, выведенным синхронно из блока 508 памяти коэффициентов взвешивающего окна данных. После операции взвешивания данные выводятся на блок 504 коммутации данных через двунаправленную шину 6 для распределения, и затем записываются в соответствующий блок памяти в матрице 502 памяти через двунаправленную шину 5. Вышеупомянутая процедура выполняется до тех пор, пока все данные сегмента входного сигнала не будут взвешены соответствующим окном данных.
Затем на основе управляющих сигналов 12, 15, 16 и 17, которые посылаются на матрицу 502 памяти, блок 507 табличного поиска циклических множителей, общее высокоскоростное арифметическое устройство 505, блок 504 коммутации данных, с помощью управляющего блока 501, соответственно каждый блок памяти может обмениваться сохраняемыми в нем данными с высокоскоростным арифметическим устройством на высокой скорости через блок 504 коммутации данных, т.е. данные в блоке памяти считываются и вводятся в блок 504 коммутации данных через двунаправленную шину 5; переключенные в блоке 504 коммутации данных, данные для сходящегося   вычисления вводятся в общее высокоскоростное арифметическое устройство 505 через
двунаправленную шину данных 6; и затем выполняется сходящееся вычисление данных с соответствующим циклическим множителем, выведенным синхронно из блока 507 табличного поиска. После сходящегося вычисления данные выводятся на блок 504 коммутации данных через двунаправленную шину 6 для распределения, и затем записываются в соответствующий блок памяти в матрице 502 памяти через двунаправленную шину 5. На основе принципа БПФ вышеупомянутая процедура повторяется до тех пор, пока все входные данные во временной области не будут трансформированы в соответствующие данные в частотной области, завершив, таким образом, БПФ.
На основе управляющих сигналов 12, 14, 16 и 17, которые посылаются на матрицу 502 памяти, память 503 коэффициентов фильтра, общее высокоскоростное арифметическое устройство 505, блок 504 коммутации данных с помощью управляющего блока 501 соответственно, данные в частотной области в соответствующих блоках памяти и соответствующий коэффициент фильтра в памяти 503 коэффициентов фильтра синхронно посылаются в общее высокоскоростное арифметическое устройство 505; они перемножаются в общем высокоскоростном арифметическом устройстве 505 для выполнения операции фильтрации. Результат посылается в соответствующий блок памяти в матрице 502 памяти через блок 504 коммутации данных и готов для выполнения ОБПФ.
Затем на основе управляющих сигналов 12, 15, 16 и 17, которые посылаются на матрицу 502 памяти, блок 507 табличного поиска циклических множителей, общее высокоскоростное арифметическое устройство 505, блок 504 коммутации данных с помощью управляющего блока 501 соответственно, каждый блок памяти может обмениваться  сохраняемыми в нем данными с общее высокоскоростное арифметическое устройство 505 на высокой скорости через блок 504 коммутации данных, т.е. данные в блоке памяти считываются и вводятся в блок 504 коммутации данных через двунаправленную шину 5; данные для сходящегося вычисления, переключенные в блоке 504 коммутации данных, вводятся в общее высокоскоростное арифметическое устройство 505 через двунаправленную шину данных 6; и затем выполняется сходящееся вычисление на упомянутых данных с соответствующим циклическим множителем, для которого была выполнена операция сопряжения и который был выведен синхронно из блока 507 табличного поиска. После сходящегося вычисления данные выводятся на блок 504 коммутации данных через двунаправленную шину 6 для распределения, и затем записываются в соответствующий блок памяти в матрице 502 памяти через двунаправленную шину 5; вышеупомянутая процедура повторяется до тех пор, пока все входные данные в частотной области не будут трансформированы в соответствующие данные во временной области, завершив, таким образом, операцию ОБПФ.
Затем на основе управляющих сигналов 12, 16, 17 и 19, которые посылаются на матрицу 502 памяти, общее высокоскоростное арифметическое устройство 505, блок 504 коммутации данных, блок 508 памяти коэффициентов взвешивающего окна данных с помощью управляющего блока 501 соответственно, каждый блок памяти может обмениваться сохраняемыми в нем данными с высокоскоростным арифметическим устройством 505 на высокой скорости через блок 504 коммутации данных, т.е. данные в блоке памяти считываются и вводятся в блок 504 коммутации данных через двунаправленную шину 5; данные для взвешивания обратным окном данных, переключенные в блоке 504 коммутации данных, вводятся в высокоскоростное арифметическое устройство 505 через двунаправленную шину данных 6; и затем выполняется операция умножения упомянутых данных с коэффициентом взвешивающего окна данных, для которого была выполнена операция взятия обратного значения и который был выведен синхронно из блока 508 памяти коэффициентов взвешивающего окна данных. После операции взвешивания обратным окном данных данные выводятся на блок 504 коммутации данных через двунаправленную шину 6 для распределения, и затем записываются в соответствующий блок памяти в матрице 502 памяти через двунаправленную шину 5. Вышеупомянутая процедура выполняется до тех пор, пока все данные взвешенного сегмента временной области, отфильтрованного в частотной области, не будут взвешены соответствующим обратным окном данных, тем самым убирая влияние взвешивающего окна данных на выходной отфильтрованный сигнал.
На основе управляющих сигналов 12 и 13, которые посылаются на матрицу 502 памяти и блок 506 формирования выходных данных с помощью управляющего блока 501 соответственно, выходные данные 3 для обработки обращенного перекрытия считываются из соответствующих блоков памяти, и обработка обращенного перекрытия выполняется на каждом из считанных сегментов данных, как показано на фиг.2, в блоке 506 формирования выходных данных, на выходе которого получаются данные 4 во временной области после фильтрации в частотной области.
Память 503 коэффициентов фильтра на фиг.5 содержит, по меньшей мере, одно ОЗУ, и коэффициент фильтра в памяти может быть обновлен извне так, что параметры фильтра могут динамически обновляться, причем обновление может быть обеспечено программным образом или аппаратными средствами. Обновленный коэффициент 8 фильтра записывается в память коэффициентов фильтра, когда нет операции фильтрации, и готов для использования в следующей операции фильтрации.
Блок 508 памяти коэффициентов взвешивающего окна данных на фиг.5 содержит, по меньшей мере, одно ОЗУ, и коэффициент взвешивающего окна данных в памяти может быть
обновлен извне так, что параметры взвешивающего окна данных могут динамически обновляться, причем обновление может быть обеспечено программным образом или аппаратными средствами. Обновленный коэффициент 10 взвешивающего окна данных записывается в блок памяти взвешивающего окна данных, когда нет операции взвешивания, и готов для использования в следующей операции взвешивания.
Блок 504 коммутации данных по фиг.5 описан подробно на примере, в котором матрица 502 памяти, соединенная с блоком 504, содержит три независимых группы ОЗУ, как показано на фиг.6.
На фиг.6 каждая группа ОЗУ имеет два ОЗУ: ОЗУ1 и ОЗУ2; в каждый момент времени только одно ОЗУ находится в состоянии считывания, тогда как другое - в состоянии записи. ОЗУ в состоянии считывания считывает данные для вычисления как поток данных и посылает данные на арифметическое устройство, а результат вычисления сохраняется в другом ОЗУ, которое находится в состоянии записи в той же группе ОЗУ.
Как показано на фиг.6, блок 504 коммутации данных включает в себя блок 601 коммутации входных/выходных данных, селектор 602 входных данных, распределитель 603 выходных данных, распределитель 604 входных данных и селектор 605 выходных данных. Число блоков 601 коммутации входных/выходных данных соответствует числу блоков памяти в матрице памяти, и блоки коммутации однозначно соответствуют группам памяти. В этом варианте реализации имеется три группы памяти в матрице 502 памяти, так что имеется три блока 601 коммутации входных/выходных данных, каждый из которых однозначно соответствует трем группам памяти в матрице 502 памяти; задача блока коммутации входных/выходных данных заключается в выполнении обмена данными между группой ОЗУ и селектором, а также в обеспечении того, что два ОЗУ из группы ОЗУ находятся в корректном состоянии считывания/записи. Селектор 602 входных данных является блоком с множеством входов и одним выходом. Если имеется три блока 601 коммутации входных/выходных данных, в блоке 504 коммутации данных, то селектор 602 входных данных может быть блоком с тремя входами и одним выходом. Остальное может быть выведено логически. Рассмотрим для примера селектор 602 входных данных с тремя входами и одним выходом («три-один»). Исходя из состояния мультиплексирования с разделением по времени общего арифметического устройства, управляющий сигнал 17 управляет селектором 602 входных данных для выбора данных из одного из трех ОЗУ, передаваемых через три блока 601 коммутации входных/выходных данных, и пересылает данные на распределитель 604 входных данных. На основе управляющего сигнала 17, распределитель 604 входных данных определяет, предназначаются ли данные для взвешивания окном данных, сходящегося вычисления или для фильтрации в частотной области, и затем посылает данные
на соответствующее устройство в общем арифметическом устройстве 505. Селектор 605 выходных данных является блоком селекции «три-один»; на основе управляющего сигнала 17 он определяет состояние общего арифметического устройства 505, а затем селектирует взвешенные окном данные, отфильтрованные выходные данные в частотной области или выходные данные сходящихся вычислений в качестве своих выходных данных для распределителя 603 выходных данных. На основе управляющего сигнала 17 распределитель 603 выходных данных определяет состояние мультиплексирования с разделением по времени общего арифметического устройства 505, а затем распределяет данные на соответствующий блок 601 коммутации входных/выходных данных, соединенный с группой ОЗУ в состоянии считывания и записи. Посредством коммутации входных/выходных данных с помощью соответствующего блока 601 коммутации входных/выходных данных, данные записываются в соответствующее ОЗУ, которое находится в состоянии записи в соответствующей группе ОЗУ. В рассмотренной выше процедуре управляющий сигнал 17 управляет блоком 504 коммутации данных для выполнения коммутации данных для мультиплексирования с разделением по времени и обеспечивает временную последовательность для переключения между операционными состояниями.
Приведенное выше описание блока коммутации данных относится к примеру, в котором матрица памяти представляет собой матрицу ОЗУ, содержащую три группы ОЗУ. Если же матрица ОЗУ содержит две или более трех групп ОЗУ, то описанный выше способ все же применим, но соответствующие изменения должны быть внесены в структуру блока коммутации данных, учитывающие отличающиеся требования к коммутации данных.
При реализации полезной модели для преобразования Фурье используется алгоритм Base 2 FFT. Однако в практических применениях могут использоваться и алгоритм Base 4, и другие алгоритмы БПФ, а также некоторые другие подходящие настройки внутренней структуры соответствующего блока сходящихся вычислений. Хотя в настоящем варианте реализации в качестве общего высокоскоростного арифметического устройства используется блок сходящихся вычислений, также могут использоваться арифметические устройства и другого типа. Кроме того, на основе различной скорости передачи данных во временной области, различного требования по разрешению в частотной области, различной степени перекрытия и различной скорости сходящихся вычислений и т.д., длина данных для БПФ и перекрытия могут быть изменены, может быть больше общих высокоскоростных арифметических устройств, обеспечивающих удовлетворительный компромисс между стоимостью реализации и качеством фильтрации. Полезная модель применима к различным случаям цифровой обработки сигналов, включая прием и передачу сигнала в системах связи.