ЖУРНАЛ СТА №1/1999

можно повысить двумя путями. Пер- вый — это написание эффективного кода, связанного с особенностями языка программирования, компиля- тора и возможностями процессора. Второй путь — это постоянно отсле- живать достижения математики в об- ласти абстрактной алгебры, теории групп, индексной арифметики, что позволяет только программными ме- тодами повысить эффективность ЦОС во много раз. При недостатке специальных сборников программ ЦОС для большинства программис- тов этот раздел обработки данных остается вещью в себе. Во врезке статьи приводится лис- тинг типовой процедуры ЦОС на языке С, реализующей алгоритм быс- трого преобразования Фурье (БПФ), используемый в системах спектраль- ной обработки и фильтрации дан- ных. Программа выполняет вычисле- ние дискретного комплексного спек- тра сигналов, представленных мас- сивом оцифрованных отсчетов оп- ределенной размерности. Для большинства приложений важна скорость выполнения БПФ. В таблице 1 приводятся результаты из- мерения времени выполнения этой программы для современных кон- троллеров и ПЭВМ. В табл. 2 и табл. 3 показана возмож- ность повышения быстродействия ти- повой операции БПФ для тех же са- мых процессоров, когда ускорение вычислений достигается только за счет программно-вычислительных трюков и знания особенностей этих процессоров и компилятора. Анализ представленных таблиц на- глядно убеждает в наличии зависи- мости времени исполнения как от ал- горитма выполнения БПФ, так и от искушенности программиста. Чисто программными методами можно до- биться того, что выполнение опера- ций ЦОС на микропроцессорах об- щего назначения будет происходить со скоростью, соизмеримой с воз- можностями доступного сигнального процессора. ● Листинг приведенной в статье программы можно загрузить с Web-сайта www.cta.ru ЗАО «Невод» Телефон: (81537) 727-01 E-mail: nevod@murmansk.rosmail.com ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ЦИФРОВАЯ ОБРАБОТКА СИГНАЛОВ 66 1/99 грамм ЦОС может составить всего 5% от предлагаемого. Хотя платить при- дется за весь пакет. С появлением мощных сопроцессо- ров с плавающей запятой, стандартно входящих в состав процессоров обра- ботки данных, а также с решением проблем по объему оперативной па- мяти ситуация может кардинально измениться для многих приложений не в пользу модулей сигнальных про- цессоров. Типовые операции цифровой об- работки сигналов могут быть эффек- тивно выполнены с помощью сопро- цессоров без использования дорого- стоящих модулей DSP. Достаточно написать С-код программы ЦОС и обычным способом внедрить его в код приложения, предварительно убедившись, что быстродействие ал- горитмов ЦОС достаточно для пра- вильной работы проекта в целом. От инженера-разработчика требуется лишь правильно скомпоновать по- следовательность С-функций и кор- ректно внедрить их в проект. Эффективность алгоритмов ЦОС при подготовке программ на языке программирования высокого уровня Таблица 2. Время выполнения БПФ (мс) с алгоритмом одновременного вычисления сразу двух массивов входных данных размерностью N в пересчете на один массив Тип процессора с сопроцессором М 68030 33 МГц М 68040 25 МГц М 68060 60 МГц Pentium ММХ 166 Мгц P-2 300 МГц Объем памяти данных (байт) 16 х N 16 х N 16 х N 16 х N 16 х N N = 128 5 1,2 0,3 3,4 0,6 256 10 3,2 0,7 8,2 1,6 512 40 6,0 1,3 9,0 3,3 1024 80 14,1 3,1 17,0 8,2 2048 200 24,8 10,0 34,7 19,0 4096 450 49,7 22,3 72,3 42,0 8192 950 108,0 49,3 170,1 87,0 16348 2100 228,0 107,8 360,0 205,4 Таблица 3. Время исполнения процедуры БПФ для процессора Р-2/300 для различных типов данных, параметров компилятора, операционных систем и объема входных данных N Операционная система Window NT Window NT Window NT Window 95 Window NT Среда Visual C ++ Visual C ++ Visual C ++ Visual C ++ Visual C ++ Debug Debug optim Speed optim Speed optim Speed Тип данных Float double double double double Объем памяти данных (байт) 8 х N 16 х N 16 х N 32 х N 32 х N N = 128 1,3 мс 0,2 0,15 0,082 0,026 256 3,1 0,4 0,2 0,18 0,05 512 7,2 0,9 0,35 0,34 0,12 1024 16,3 1,9 0,8 0,81 0,32 2048 37,0 5,3 3,1 2,57 1,33 4096 83,2 14,9 10,0 5,47 3,92 8192 186,3 32,0 22,3 12,0 8,6 16384 412,8 70,0 48,7 27,7 23,8

RkJQdWJsaXNoZXIy MTQ4NjUy