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

Цифровая обработка сигналов (ЦОС) является разновидностью обработки данных с помощью компьютера. В со- временных системах обработки реаль- ного времени для ускорения алгорит- мов ЦОС зачастую применяются до- полнительные моду- ли сигнальных про- цессоров (DSP) типа TMS320, M56000, M96002 и другие. Они эффективно вы- полняют однооб- разные операции обработки масси- вов данных. Однако введение в состав систем модулей DSP приводит к допол- нительным наклад- ным расходам, свя- занным ● c подбором и при- обретением подхо- дящего сигнально- го процессора; ● c разработкой или покупкой допол- нительного программного обеспе- чения и библиотек программ для выбранного DSP; ● с сопряжением уникального аппа- ратного и программного обеспече- ния с проектируемой системой. Поддержка программ сигнальной обработки требует содержать инже- нера-аналитика — специалиста по ЦОС, инженера-специалиста по сиг- нальному процессору, а также про- граммиста, разбирающегося в ЦОС. Цифровая обработка сигналов была бы проще для программистов, если бы под рукой были готовые листинги эф- фективных программ для типовых опе- раций ЦОС на языке программирова- ния высокого уровня, например С, ко- торые можно гибко адаптировать к воз- можностям проектируемых систем для решения конкретной задачи. Фирмы- разработчики программного обеспе- чения для сигнальных процессоров предлагают на рынок довольно гро- моздкие пакеты объектных библиотек программ ЦОС для DSP. Существуют проблемы с надежностью и эффектив- ностью таких пакетов при их приспо- соблении для конкретных систем, осо- бенно для систем реального времени, в которых набор необходимых про- ЦИФРОВАЯ ОБРАБОТКА СИГНАЛОВ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ 64 1/99 Быстрое преобразование Фурье для обработки сигналов в устройствах автоматизации Сергей Лазарев, Евгений Рогожкин, Феодосий Захарук В статье приведена программа быстрого преобразования Фурье для цифровой обработки сигналов на базе современных персональных компьютеров и встраиваемых контроллеров. Отмечается, что при оптимальном программировании алгоритмов сигнальной обработки можно во многих случаях обойтись без применения дополнительных специализированных сигнальных процессоров. /*Листинг программы БПФ:/* #include <stdio.h> #include <math.h> #include <time.h> BPF(x,y,N,I) /*Процедура БПФ/* register float *x,*y; /*x,y — входные массивы данных/* register int N,I; /*размерностью I=1 -БПФ I=-1 -ОБПФ/* { register float c,s,t1,t2,t3,t4,u1,u2,u3; register int i,j,p,l,L,M,M1,K; L=N; M=N/2; M1=N-1; while(L>=2){ l=L/2; u1=1.; u2=0.; t1=PI/(float)l; c=cos(t1); s=(-1)*I*sin(t1); for(j=0; j<l;j++) { for(i=j;i<N;i+=L) { p=i+l; t1=*(x+i)+*(x+p); t2=*(y+i)+*(y+p);

RkJQdWJsaXNoZXIy MTQ4NjUy