#define pi 3.141592653689793 void BlackmanWind(float*,int); // 1-st указка на массив куда записать окошко; 2-st = длинна окна = длинна FFT void FlatTopWind(float*, int); // 1-st указка на массив куда записать окошко; 2-st = длинна окна = длинна FFT void FlatTopWindRS(float*, int); void BlackmanWind(float* WindowArray, int N){ int i; for(i=0; i<N;i++) *(WindowArray+i) = float(1.-1.19047619047619 *cos(2.0*pi*(double)i/(double)(N-1)) +0.19047619047619*cos(4.*pi*(double)i/(double)(N-1))); } // Окна для устранения эффекта частокола void FlatTopWind(float* WindowArray, int N){ int i; for(i=0; i<N;i++) *(WindowArray+i)=1.0- 1.933*cos(2.*pi*(double)i/(double)(N-1))+ 1.2860*cos(4.*pi*(double)i/(double)(N-1)) - 0.388*cos(6.*pi*(double)i/(double)(N-1)) + 0.0322*cos(8.*pi*(double)i/(double)(N-1)); } void FlatTopWindRS(float* WindowArray, int N){ int i; for(i=0; i<N;i++) *(WindowArray+i)=1.0- 1.9619033*cos(2.*pi*(double)i/(double)(N-1))+ 1.5250805*cos(4.*pi*(double)i/(double)(N-1)) - 0.6948463*cos(6.*pi*(double)i/(double)(N-1)) + 0.1321999*cos(8.*pi*(double)i/(double)(N-1)); }
Окно Блэкмана, FlatTop для спектрального анализа. Устранение "эффекта частокола" (scalloping loss))
- Информация о материале
- Родительская категория: Заметки
- Категория: Программирование
- Просмотров: 4702
Реализация окон взвешивания Блэкмана, FlatTop и модифицированного FlatTopRS. (источник http://www.dadisp.com/webhelp/mergedProjects/refman2/FncrefFK/FLATTOP.htm ). Компилятор PellesC