Академический Документы
Профессиональный Документы
Культура Документы
|HM (f)|
F
0 fpass fstop FS / M 2FS / M 3FS / M KFS / M
При дальнейшей обработке комплексного сигнала возможно либо устранение реплик с помощью
выходного сглаживающего или широкополосного фильтра, либо вычисление среднеквадратичного значения
пропускаемых значений сигнала.
Если fpass – правая граница полосы пропускания, fstop – левая граница полосы задерживания и ftrans = fpass –
fstop, то базовые частоты многополосного фильтра определяются как:
fr-pass= M • fpass, fr-stop = M • fstop, fr-trans = M • ftrans, где M – коэффициент соотношения частот.
Частоты широкополосного (сглаживающего) фильтра при этом будут равны:
FS
fsm-pass= fpass, fsm-stop= – fstop .
M
Оптимального значения коэффициента M можно получить след. обр. Как видно из рис. 1-х частота Fs/М –
fd
fstop не должна быть меньше, чем fstop. Из этого условия определено максимальное значения М: Ммах = .
2 ⋅ f stop
Таким образом, приемлемый коэффициент соотношения частот это целое число в диапазоне 2 ≤ М ≤ Ммах.
При практическом использовании возникает задача выбора М из числа допустимых значений. Порядки фильтров
зависят также от коэффициента М.
Расчёт коэффициентов для каждой полосы фильтра, а также выбор порядка можно производить в системах
MatLab [1x] или Scilab [2x].
(b)
Рис. 2 (а) Параллельно-каскадная прямая форма реализации КИХ фильтра.
(b) Последовательная форма реализации КИХ фильтра с поочерёдным чтением элементов.
Логика управления обеспечивает необходимую адресацию двух- портового блока памяти и формирует
временные диаграммы для буфера ОЗУ порта A (буфера данных) для создания линии задержки (эквивалентной
схемы) КИХ-фильтра. Для потоковой операции также может потребоваться дополнительный регистр захвата
(фиксации), если накапливаемый результат невозможно непосредственно использовать в непрерывном потоке
обработки.
Накапливающий умножитель (МАС), формирует суммы произведений (задержанных) выборок данных на
коэффициенты за то же число циклов, которые затрачиваются на выдачу коэффициентов (т.е. за один цикл, что
также соответствует выдаче данных для обработки – но не выборке очередного отсчёта, которая производится в N
раз медленнее). В связи с этим, производительность КИХ-фильтра одиночного MAC, вычисляется следующим
соотношением:
Максимальная частота (темп) входных выборок = Тактовая частота / Число отводов (порядок фильтра)
Если коэффициенты рассчитаны для симметричной формы фильтра, это немного усложняет структуру с
удвоением тактовой частоты. Частота выборки такой симметричной немного усложнённой структуры выражается
следующим соотношением:
При использовании SRL16E для буфера данных логика управления очень проста, т.к. SRL16E представляет
собой обычный сдвиговый регистр или набор регистров, соединённых в очередь, выходы которых
последовательно переключаются мультиплексором (рис. 4). Поэтому выходы линии задержки КИХ-фильтра
поочерёдно подключаются к MAC, где формируются промежуточные результаты, а полный результат
вычисления y(n) выполняется за N – тактов в соответствии с уравнением свёртки на рис. 2(а).
Базовая архитектура логики управления показана на рис. 6. Управляющая логика состоит из двух адресных
счётчиков, указателя адреса текущей выборки и его мультиплексора. Счётчик адресов данных переключается на
момент загрузки очередной выборки, которая производится импульсом текущего отсчёта. После загрузки
очередной выборки (текущего отсчёта), происходит переключение указателя адреса на счётчик данных, и затем
одновременный запуск адресных счётчиков данных и коэффициентов. Выдача данных и коэффициентов из двух-
портового блока синхронного ОЗУ (портов A и B) в MAC происходит синхронно с частотой, определяемой
соответствующим параметром данной ПЛИС. Для 3-й градации скорости ПЛИС Xilinx® Spartan-6 частота
ограничивается скоростью работы DSP48A1(MAC) ≤ 390 МГц (при использовании конвейерных регистров), для
Xilinx® 7 Series эта частота ≤ 741.8 МГц. Число циклов работы МАС зависит от порядка фильтра. В данном
проекте оно равно 256. При частоте выборки 100 КГц, частота синхронизации одного блока КИХ-фильтра
(соответствующей полосы обработки) составляет порядка 30 МГц.
Dual-Port RAM
Input Data = x(n+i) DIN A [0] d0 d0 d0 . d256
[1] 0 d1 d1 . d1
[2] 0 d2 . d2
Dat DOUT A [3] 0 0 0 . d3
Num Data Addr
сlk . . . . .
en . . . . .
WE A . . . .
EN A [254] 0 0 . d254
Addr RST A [255] 0 0 . d255
сlk Clk A
en
ld
DIN B
Рис. 6. Управляющая логика двух- портового блока синхронного ОЗУ для формирования лини задержки
КИХ-фильтра
В схеме управления задействован также рекомендуемый Xilinx блок управления синхронизацией – Digital
Clock Manager (DCM) – с полностью цифровой самоподстройкой (калибровкой) частоты и своим блоком PLL
(ФАПЧ) – с аналоговой фазовой автоподстройкой (самокалибровкой) частоты. Эти устройства выполняют
функции компенсации задержки распространения тактового сигнала, умножения и деления тактового сигнала,
фазового сдвига на большие и малые величины, а также фильтрации дрожание или неустойчивости (clock jitter)
тактового сигнала. Этот блок также обеспечивает умножение частоты до формирования внутренней высокой ×8
стабильной частоты синхронизации и создания более точных временных соотношений между сигналами
управления с помощью входящих в управляющую логику шифраторов. Кроме того, блок DCM содержит
цифровое DLL (delay-lock loop) – устройства автоматической подстройки задержки, что за счёт обратной связи
исключает задержку распространения тактового сигнала с помощью выравнивания (deskewing) выходного
тактового импульсного сигнала и точной подстройки равномерности его периодов по отношению ко входному
тактовому сигналу (и его периодов).
Линия задержки КИХ-фильтра на двух- портовом ОЗУ создаётся с помощью прямой записи и реверсного
чтения. Текущее записанное данное x(n) читается первым, вторым читается x(n – 1) и т.д. до x(n–N+1), следующее
записанное данное x(n + 1) также будет читаться первым, вторым читается x(n) и т.д. Реверсный счёт каждый раз
начинается после загрузки адресного счётчика данных текущим значением указателя выборки, которое линейно
увеличивается после поступления очередной выборки данных, и заканчивается до N – числу отводов (в данном
проекте = 255). Таким образом соблюдается эффект прямого порядка выдачи ранее записанных данных
одновременно с коэффициентами.
Память данных порта A инициализируются всеми нулями. А ПЗУ коэффициентов определёнными
значениями констант для каждой ячейки. Поэтому, в самом начале после первого принятого в ОЗУ данного x(0), и
затем его чтения и выдачи в MAC из последующих ячеек читаются нули. По мере заполнения буфера новые
данные переписываются на места нулевых ячеек. А после заполнения буфер будет циклически обновляться.
[1x] http://www.mathworks.com/
[2x] http://www.scilab.org/