5.1.2. Каскадная и параллельная реализацииКак было показано в гл. 1, ЛИС-системы можно конструировать с помощью последовательного и параллельного соединений более простых ЛИС-систем. Поэтому, соединяя последовательно или параллельно простые двумерные БИХ-фильтры, можно построить более сложный двумерный БИХ-фильтр. Рассмотрим, например, фильтр, представленный на рис. 5.4, в виде каскада из двумерных БИХ-фильтров. Если принять, что передаточная функция -го фильтра в каскаде имеет вид , (5.6) то результирующая передаточная функция определяется следующим произведением: . (5.7) Рис. 5.4. Каскад из простых двумерных БИХ-фильтров. Поскольку функция имеет форму отношения двумерных полиномов, то она представляет собой передаточную функцию двумерного БИХ-фильтра. Однако из-за того, что полиномы в числителе и знаменателе входят в произведения в качестве сомножителей, функцию нельзя использовать для представления передаточной функции произвольного двумерного БИХ-фильтра (за исключением тривиального случая, когда ). В противоположность этому любую одномерную рациональную передаточную функцию можно представить в факторизованной форме, соответствующей последовательному соединению простых фильтров первого порядка. Хотя в общем случае разложить произвольный двумерный БИХ-фильтр в цепочку последовательно соединенных более простых фильтров и нельзя, мы можем синтезировать двумерный БИХ-фильтр, соединяя каскадно более простые фильтры. Рассмотрим, например, рис. 5.5. Для построения полосового фильтра фильтр нижних частот с круговой симметрией соединен последовательно с фильтром верхних частот. Полосы пропускания фильтров нижних и верхних частот обозначены на рисунке наклонной штриховкой, а области их пересечения представляют собой полосу пропускания результирующего полосового фильтра. Коста и Венецанонулос [2] использовали более совершенный вариант этого общего подхода для синтеза двумерного БИХ-фильтра с круговой симметрией путем каскадного соединения повернутых копий одномерных фильтров. Рис. 5.5. Полосовой фильтр, полученный путем последовательного соединения фильтров нижних и верхних частот. Архитектуру каскадного фильтра, показанного на рис. 5.4, можно трактовать двояко. Если каждый блок обозначает отдельный фильтр, то вся структура представляет собой вычислительный конвейер, аналогичный заводской сборочной линии. Результирующая скорость вычислений этого конвейера может быть очень высокой, так как вычисления в каждом фильтре конвейера выполняются одновременно. Общий объем требуемой памяти складывается из объемов памяти, требуемых каждым фильтром . С другой стороны, рис. 5.4 можно рассматривать как структурную схему алгоритма. Сначала входной сигнал фильтруется элементом ; затем результирующий сигнал фильтруется элементом и т. д. Для реализации любого фильтра можно использовать одну-единственную подпрограмму, написанную соответствующим образом. Если эту подпрограмму вызывать повторно и передавать ей при каждом вызове соответствующие коэффициенты и данные, то можно реализовать каскадный фильтр в соответствии с рис. 5.4. Естественно, результирующая скорость вычислений будет ниже, чем в случае конвейерной реализации, поскольку вычисления выполняются последовательно, а не параллельно. С другой стороны, для реализации каскадного фильтра путем последовательной обработки требуется меньше памяти, чем в случае использования конвейера. Подпрограмме потребуется лишь столько первичной памяти, сколько нужно для фильтра с максимальным требованием к памяти. Однако весь сигнал придется хранить во внешней памяти (например, на магнитном диске). Сложный двумерный БИХ-фильтр можно также построить с помощью параллельного соединения фильтров, как это показано на рис. 5.6. В этом случае результирующая передаточная функция имеет вид . (5.8) Рис. 5.6. Параллельное соединение простых двумерных БИХ-фильтров, дающее более сложный двумерный БИХ-фильтр с передаточной функцией . Используя выражение (5.6) и преобразуя сумму (5.8) в выражение с общим знаменателем, получим расширенную форму: . (5.9) Как и в случае каскадного фильтра, полином-знаменатель выражения для можно разложить на множители. Таким образом, параллельная форма не годится для реализации произвольной двумерной рациональной передаточной функции. Тем не менее полезные двумерные БИХ-фильтры с помощью параллельной архитектуры синтезировать можно. Она, например, удобна для построения многополосового фильтра. Параллельная архитектура также может оказаться полезной при реализации двумерных БИХ-фильтров, у которых импульсный отклик не ограничивается одним квадрантом, например, симметричных фильтров. В этом случае импульсный отклик с опорной областью на всей -плоскости можно разбить на четыре отдельных импульсных отклика, по одному на каждый квадрант. Затем можно построить фильтры, соответствующие отдельным квадрантам, и, соединив все четыре фильтра параллельно, получить требуемый 4-квадрантный импульсный отклик. Ниже в разд. 5.4, в котором обсуждается методика синтеза фильтров в пространственной области, будет приведен пример такого решения. Параллельную архитектуру (рис. 5.6) так же, как и последовательную можно трактовать двояким образом. Если каждый блок отвечает отдельному фильтру, то входные данные дублируются и поступают на каждый из параллельных фильтров. Вычисления выполняются одновременно во всех фильтрах, а полный объем требуемой памяти равен сумме объемов памяти, используемой каждым фильтром. С другой стороны, можно использовать подпрограмму, реализующую фильтр в общем виде, как это было и в случае последовательного соединения фильтров. При параллельной реализации эта подпрограмма запускается раз с одними и теми же входными данными, но с различными коэффициентами, и затем выходных сигналов складываются. В этом случае вычисления выполняются последовательно, поскольку выходные сигналы отдельных фильтров вычисляются по очереди, а суммарный объем требуемой памяти уменьшается.
|