#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))
- Информация о материале
- Родительская категория: Заметки
- Категория: Программирование
- Просмотров: 5323
Реализация окон взвешивания Блэкмана, FlatTop и модифицированного FlatTopRS. (источник ). Компилятор PellesC
