Цитата(petrov @ Aug 18 2008, 20:52)

Там конечно же используется несколько обращений в память и ещё внешние арифметические операции.
Полифазный фильтр 8 фаз по 8 символов в линии задержки. Требуется 8 256*16 блоков, если один из битов адреса 1 то соответствующий отсчёт просуммирован в ячейке памяти, если 0 то соответственно нулевой вклад в ячейку просуммирован. Так как импульсная характеристика симметрична то достаточно 4 256*16 блоков, потребуется соответственно в два раза больше обращений, половина обращений с адресом с обратным порядком битов. Для 16 QAM 4 обращения в блок для вычисления выходного отсчёта, например сначала символы с координатой 1, для них в соответствующих позициях адреса 1 для других символов 0, выход памяти накпливаем, затем символы -1, в соответствующих позициях адреса 1 для остальных символов 0, выход памяти накапливаем с обратным знаком, затем символы с координатой 3, выход памяти накапливаем с умножением на 3, затем символы с координатой -3, выход памяти накапливаем с умножением на -3, всё получили один выходной отсчёт. И так для всех выходных отсчётов с соответствующим им блоком памяти. Используется также двухпортовость памяти и т. п.
Ну несколько обращений в память - это конечно хорошо, но к сожалению, как правило, такой роскоши нет. Приходится работать на максимальных частотах. В последнем моем модеме, например, частота дискретизации сигнала повышалась до 200 МГц, при том что ПЛИС на такой частоте уже на работет. Работал на 100 МГц.
Но упомянув внешние арифметические операции, вы натолкнули меня на другую мысль. Ведь весь фильтр можно разбить на части. Тогда объем памяти будет меньше. Например, в вышеуказанном случае, можно фильтр разбить на 4 части. Тогд получаем в каждой части 2 двухбитных коэффициента, т.е. 4 бита адреса, плюс еще 3 бита адреса на фазы. Итого 7. Сигнал 18 бит. Всего нужно (2^7)*18 = 2304 бита. Т.е. 1 4килобитный блок. Дальше делаем все четыре части аналогично, и просто складываем выходы всех 4х блоков.
Кстати двухпортовость памяти несомненно используется, вот только правильное ее использование видится как с одного порта формируем канал I, с другого Q