Рейтинг:  0 / 5

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 
Реализация окон взвешивания Блэкмана, FlatTop и модифицированного FlatTopRS. (источник http://www.dadisp.com/webhelp/mergedProjects/refman2/FncrefFK/FLATTOP.htm). Компилятор PellesC
#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));
}