#ifndef _FILTERSRENDER_FRVAPI_HH_4749025720734027070437502 #define _FILTERSRENDER_FRVAPI_HH_4749025720734027070437502 #ifdef __cplusplus extern "C" { #endif #define __EXPORT_FUN extern "C" __declspec(dllexport) enum FIRFilterType { HIGHPASS, LOWPASS, EQ, }; enum FIRWindowType { //¾ØÐδ°,w=boxcar(n) Rectangle, //Èý½Ç´°, w=triang(n) Triangle, //ººÄþ´°,w=hanning(n) Hanning, //ººÃ÷´°,w=hanning(n) Hamming, //²¼À³¿ËÂü´°,w=blackman(n) Blackman, //¿­Èû´°,w=kaiser(n,beta) Kaiser, }; /// /// ³õʼ»¯ /// /// __EXPORT_FUN void* FiltersRenderInit(); /// /// Ïú»Ù /// /// FilterRender¾ä±ú __EXPORT_FUN void FilterRenderFree(void* handle); /// ///¸ù¾ÝFIRϵÊýÉú³ÉƵÆ×ͼºÍÏàλͼ /// /// FilterRender¾ä±ú /// FIRÂ˲¨Æ÷ϵÊý /// FIRÂ˲¨Æ÷½×Êý /// ²ÉÑùÂÊ /// Êä³öƵÂÊ /// Êä³öÔöÒæ(dB) /// Êä³öÏàλ(-180~180¶È) /// ÐèÒªÊä³öµÄƵÂʵã¸öÊý /// ³É¹¦·µ»Ø0 __EXPORT_FUN int FIRDrawFreqzData(void* handle, double coeffs[], int tap, int fs , double f[], double gain[], double phase[], int num); // /// // /// ×Ô¶¯Ð£×¼ÆµÂʺÍÏàλ // /// // /// FilterRender¾ä±ú // /// Êä³öƵÂÊ // /// ÊäÈëÊä³öÔöÒæ(dB) // /// ÊäÈëÊä³öÏàλ(-180~180¶È) // /// ÐèÒªÊä³öµÄƵÂʵã¸öÊý // /// ³É¹¦·µ»Ø0 __EXPORT_FUN int FIRAutoMagCalibration(void* handle, double f[], double gain[] , double start_freq, double end_freq, int oct, int num); __EXPORT_FUN int FIRAutoPhaseCalibration(void* handle, double f[], double phase[] , double start_freq, double end_freq, int oct, int num); /// /// ¸ù¾ÝEQµ÷½ÚÄ¿±êÇúÏß /// /// FilterRender¾ä±ú /// EQÀàÐÍ,FIRFilterType /// ´°ÀàÐÍ,FIRWindowType /// EQƵÂÊ /// QÖµ /// ÔöÒæ /// Êä³öƵÂÊ /// Êä³öÔöÒæ(dB) /// Êä³öÏàλ(-180~180¶È) /// ÐèÒªÊä³öµÄƵÂʵã¸öÊý /// ³É¹¦·µ»Ø0 __EXPORT_FUN int FIRAdjustFilter(void* handle, int nsection, int bypass, int filter_type , int freq, double Q, double g, double f[], double gain[], double phase[], int num); /// /// »ñȡĿ±êÇúÏß¶ÔÓ¦µÄFIRϵÊý /// /// FilterRender¾ä±ú /// Ä¿±êϵÊý /// ·µ»ØÄ¿±êϵÊý½×Êý __EXPORT_FUN int FIRGetCoeffs(void* handle, double coffefs[], int windowType, double delay_ms, int tap); /// /// Çå¿Õ /// __EXPORT_FUN void FilterRenderReset(void* handle); #ifdef __cplusplus } #endif #endif