[an error occurred while processing this directive]
„O„z...:)
(«Ņåėåńčńņåģū»: „K„€„~„†„u„‚„u„~„ˆ„y„‘ «„W„y„†„‚„€„r„„u „ƒ„y„s„~„p„|„Ž„~„„u „„‚„€„ˆ„u„ƒ„ƒ„€„‚„ (DSP) „y „y„‡ „„‚„y„}„u„~„u„~„y„u»)

ģčķčąņžšķūé ąóäčī-āčäåīšåźīšäåš mAVR

Īņļšąāėåķī Oleg_0515 06 ’ķāąš’ 2004 ć. 18:44
Ā īņāåņ ķą: „U„‚„p„s„}„u„~„„ „ƒ „‡„…„t„€„w„u„ƒ„„„r„p„}„y... īņļšąāėåķī Oleg_0515 06 „‘„~„r„p„‚„‘ 2004 „s. 12:19

double Goertzel_algorithm(int *BufXn, int k);
double Goertzel_algorithm(int *BufXn, int k)
{

//          n=0,1,2,...,N-1         |              n=N                  

//                                  |                                   

//   X                    Q                  ----+                      

//    n  +---+             n        |        „   2„                       

//   --->| + |--------------->---   |        „  X |-->-----------+       

//       +---+                 „              „    „               „        

//        „  „                   |             +---+              „        

//        „  „                   v    |    Q     ^                „        

//        „  „  2Cos(2*pi*k/N) +---+  |     N-1  „ -2Cos(2*pi*k/N) „        

//        „  „                 „  -1„       +---->-+                „        

//        „  „       „          „ Z  „       „       „         „        v       

//        „  „       v         +---+  |   „       V        v       |       

//        „  „     +---+   Q     „     |   „     +---+    +---+   +---+ Y   

//        „  „     |   |    n-1  „         „     |   |    |   |   „    „   k  

//        „  +-<--| X |-------<-+--------+    | X |-->-| X |->-| + |->-  

//        „       |   |         „              |   |    |   |   „    „      

//        „       +---+         „     |        +---+    +---+   +---+     

//        „                     v    |    Q     ^                |       

//        „        -1         +---+        N-2  „                 ^       

//        „                   „  -1„       +---->-+                „        

//        „         „          „ Z  „   |   „       „                 „        

//        „         v         +---+  |   „       v                „        

//        „       +---+   Q     „         „     +---+              „        

//        „       |   |    n-2  „         „     „   2„               „        

//        +---<--| X |-------<-+--------+    „  X |-->-----------+       

//               |   |                       „    „                       

//               +---+              |        +---+                      

//
// Yk = „K„r„p„t„‚„p„„ „}„€„t„…„|„‘ k-„€„z „ƒ„„u„{„„„‚„p„|„Ž„~„€„z „ƒ„€„ƒ„„„p„r„|„‘„„‹„u„z = Mk*Mk , „s„t„u
//
// -- 1--
// Mk = \ UxCos(Wxt)[Cos(Wkt)+jSin(Wkt)] = Ux*N * -\
// / N/
// ~~ ~~
// „t„|„‘ Wk==0: Mk=Ux*N, Yk=(Ux*N)^2, ( N=80, Ux=1, Mk=80, Yk=6400 )
// „t„|„‘ Wk!=0: Mk=Ux*N/2, Yk=(Ux*N/2)^2, ( N=80, Ux=1, Mk=40, Yk=1600 )
//
// „P„‚„y„}„u„‚ „r„„x„€„r„p „†„…„~„{„ˆ„y„y
// // „r„„‰„y„ƒ„|„‘„u„} „}„€„‹„~„€„ƒ„„„Ž 11-„z „ƒ„„u„{„„„‚„p„|„Ž„~„€„z „ƒ„€„ƒ„„„p„r„|„‘„„‹„u„z („‰„p„ƒ„„„€„„„p 1100 „C„ˆ)
// k=11; Ck2=Goertzel_algorithm(BufFrame, k);
// // „r„„‰„y„ƒ„|„‘„u„} „}„€„‹„~„€„ƒ„„„Ž 17-„z „ƒ„„u„{„„„‚„p„|„Ž„~„€„z „ƒ„€„ƒ„„„p„r„|„‘„„‹„u„z („‰„p„ƒ„„„€„„„p 1700 „C„ˆ)
// k=17; Ck2=Goertzel_algorithm(BufFrame, k);
//
//ulong nFsamples=8000; // „X„p„ƒ„„„€„„„p „t„y„ƒ„{„‚„u„„„y„x„p„ˆ„y„y
//int nGoertzelFrSz=80; // „D„|„y„~„p „p„~„p„|„y„x„y„‚„…„u„}„€„s„€ „†„‚„p„s„}„u„~„„„p

double PI=3.1415926535897932384626434;
double coef_k; // Goertzel „{„€„„†-„„ „t„|„‘ k-„€„z „ƒ„„u„{„„„‚„p„|„Ž„~„€„z „ƒ„€„ƒ„„„p„r„|„‘„„‹„u„z
double Xn; // „H„~„p„‰„u„~„y„‘ „€„„„ƒ„‰„u„„„€„r „r„‡„€„t„~„€„s„€ „ƒ„y„s„~„p„|„p
double Qn,Qn_1,Qn_2; // „^„|„u„}„u„~„„„ „x„p„t„u„‚„w„{„y „t„|„‘ Goertzel-„†„y„|„Ž„„„‚„p
double Yk; // „K„r„p„t„‚„p„„ „}„€„t„…„|„‘ k-„€„z „ƒ„„u„{„„„‚„p„|„Ž„~„€„z „ƒ„€„ƒ„„„p„r„|„‘„„‹„u„z
double Mk; // „M„€„t„…„|„Ž k-„€„z „ƒ„„u„{„„„‚„p„|„Ž„~„€„z „ƒ„€„ƒ„„„p„r„|„‘„„‹„u„z

coef_k=2*cos((2*PI*(double)k)/(double)nGoertzelFrSz);
Qn_1=0;
Qn_2=0;
int N=nGoertzelFrSz;
int n;
for(n=0;n {
Xn=BufXn[n]*AON_Gain;
if(Xn> (0x7FFF)) Xn= (0x7FFF);
if(Xn<-(0x7FFF)) Xn=-(0x7FFF);
Xn=(double)((int)Xn);
Qn=Xn+Qn_1*coef_k-Qn_2;
Qn_2=Qn_1;
Qn_1=Qn;
}
Yk=Qn_1*Qn_1+Qn_2*Qn_2-coef_k*Qn_1*Qn_2;
// Mk=sqrt(Yk);
if(LOG_flg==1) Yk=10*log10(Yk);
return(Yk);
}

Ńīńņąāčņü īņāåņ  |||  Źīķōåšåķöč’  |||  Ąšõčā

Īņāåņū


Īņļšąāźą īņāåņą

Čģ’ (īį’ēąņåėüķī): 
Ļąšīėü: 
E-mail: 

Ņåģą (īį’ēąņåėüķī):
Ńīīįłåķčå:

Ńńūėźą ķą URL: 
Ķąēāąķčå ńńūėźč: 

URL čēīįšąęåķč’: 


Ļåšåéņč ź ńļčńźó īņāåņīā  |||  Źīķōåšåķöč’  |||  Ąšõčā  |||  Ćėąāķą’ ńņšąķčöą  |||  Ńīäåšęąķčå  |||  Įåē źąäšą

E-mail: info@telesys.ru