[an error occurred while processing this directive]
Ôðàãìåíò ñ õóäîæåñòâàìè...
(«Òåëåñèñòåìû»: Êîíôåðåíöèÿ «Öèôðîâûå ñèãíàëüíûå ïðîöåññîðû (DSP) è èõ ïðèìåíåíèå»)

ìèíèàòþðíûé àóäèî-âèäåîðåêîðäåð mAVR

Îòïðàâëåíî Oleg_0515 06 ÿíâàðÿ 2004 ã. 12:19
 îòâåò íà: Ñîððè, ñåé÷àñ íåò ïîä ðóêîé òåêñòà. Ïîñìîòðèòå ìàòëàá, ñäåëàéòå ïîèñê â èíåòå - âàëîì, ãëÿíüòå íàïðèìåð àïëèêåéøåí ïî ADSP21xx vol1 êàæåòñÿ... îòïðàâëåíî Oleg_0515 05 ÿíâàðÿ 2004 ã. 16:20

xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">







Gertzel



//////////////////////////////////////////////////////////////////////////////

//style='mso-spacerun:yes'>àààààààààààààààààààààààààà F U N C T I O N Sstyle='mso-spacerun:yes'>ààààààààààààààààààààààààààààà //

//////////////////////////////////////////////////////////////////////////////

double class=SpellE>Goertzel_algorithm(int *class=SpellE>BufXn, int k);

double class=SpellE>Goertzel_algorithm(int *class=SpellE>BufXn, int k)

{

//
┌ ─
class=SpellE>─
class=SpellE>─ class=SpellE>─ class=SpellE>─ class=SpellE>─ ┬ ─ class=SpellE>─ class=SpellE>─ class=SpellE>─ class=SpellE>─ class=SpellE>─ class=SpellE>─ class=SpellE>─ class=SpellE>─ ┐

//style='mso-spacerun:yes'>àààààààààà n=0,1,2,...,N-1style='mso-spacerun:yes'>ààààààààààààààààààà n=N

//
àààààààààààààààààààààààààààààà class=SpellE>│
style='mso-spacerun:yes'>àààààààààààààààààààààààààààààààà class=SpellE>│

//style='mso-spacerun:yes'>ààà Xstyle='mso-spacerun:yes'>ààààààààààààààààààà Qstyle='mso-spacerun:yes'>ààààààààààààà
┌───┐

//
àà nstyle='mso-spacerun:yes'>à
───┐style='mso-spacerun:yes'>àààààààààààà nstyle='mso-spacerun:yes'>ààààà │style='mso-spacerun:yes'>ààààà style='mso-spacerun:yes'>à 2│style='mso-spacerun:yes'>ààààààààààààààààà style='mso-spacerun:yes'>àààà│

//style='mso-spacerun:yes'>ààà ───>┤ +
├───────────────>─┬─style='mso-spacerun:yes'>ààààààà │ X
├──>───────────┐

//
ààààà
└┬─┬┘style='mso-spacerun:yes'>àààààààààààààààà
style='mso-spacerun:yes'>à style='mso-spacerun:yes'>ààààà style='mso-spacerun:yes'>àà style='mso-spacerun:yes'>ààààààààààààà style='mso-spacerun:yes'>àààààà

//style='mso-spacerun:yes'>àààààààà style='mso-spacerun:yes'>ààààààààààààààààà vstyle='mso-spacerun:yes'>àààà Qàà
└─┬─┘style='mso-spacerun:yes'>ààààààààààààà │

//
àààààà
2Cos(2*pi*k/N)
┌─┴─┐│àà
N-1à │-2Cos(2*pi*k/N)
àààààà

//style='mso-spacerun:yes'>àààààààà style='mso-spacerun:yes'>ààààààààààààààà
-1à ────>─┤style='mso-spacerun:yes'>ààààààààààààààà │

//
àààààà
ààààà class=SpellE>│
àààààààà
Zà
│ │ààààà
ààààààà
àààààà
vàààààà

//style='mso-spacerun:yes'>àààààààà style='mso-spacerun:yes'>ààààà vàààà
Qàà └─┬─class=GramE>┘à style='mso-spacerun:yes'>ààààà style='mso-spacerun:yes'>ààààààà vàààà
┌─┴─┐ Y

//
àààààà
àààà
┌┴┐àààà n-class=GramE>1à
style='mso-spacerun:yes'>à class=SpellE>│àààà
┌┴┐ààààà class=SpellE>┌┴┐ààà
àà style='mso-spacerun:yes'>à kà

//style='mso-spacerun:yes'>àààààààà
└─<───┤X├────────<─┼────┘style='mso-spacerun:yes'>àààà
│X├───>──┤X├──>─┤
+ ├─>─

//
àààààà style='mso-spacerun:yes'>àààààà
└─┘style='mso-spacerun:yes'>ààààààààà │style='mso-spacerun:yes'>à style='mso-spacerun:yes'>àààààà └┬┘style='mso-spacerun:yes'>ààààà └─┘style='mso-spacerun:yes'>ààà │àà
àààà

//style='mso-spacerun:yes'>àààààààà style='mso-spacerun:yes'>ààààààààààààààààààà vstyle='mso-spacerun:yes'>àààà Qàààà
ààààààààààààà
└─┬─┘

//
à style='mso-spacerun:yes'>ààààà
style='mso-spacerun:yes'>àààààà -1style='mso-spacerun:yes'>àààààààà
┌─┴─┐│style='mso-spacerun:yes'>àà N-2style='mso-spacerun:yes'>à style='mso-spacerun:yes'>ààààààààààààààà ^style='mso-spacerun:yes'>àààààà │

//style='mso-spacerun:yes'>àààààààà style='mso-spacerun:yes'>ààààààààààààààààà
-1à ────>─┤style='mso-spacerun:yes'>ààààààààààààààà │

//
àààààà style='mso-spacerun:yes'>ààààààà
style='mso-spacerun:yes'>àààààààà │Zstyle='mso-spacerun:yes'>à ││ │style='mso-spacerun:yes'>ààààà style='mso-spacerun:yes'>ààààààààààààààà style='mso-spacerun:yes'>àààààà

//style='mso-spacerun:yes'>àààààààà style='mso-spacerun:yes'>ààààààà vàààà
Qàà └─┬─class=GramE>┘à style='mso-spacerun:yes'>ààà ┌─┴─┐style='mso-spacerun:yes'>àààààà style='mso-spacerun:yes'>ààààààà│

//
àààààà style='mso-spacerun:yes'>àààààà
┌┴┐style='mso-spacerun:yes'>àààà n-2style='mso-spacerun:yes'>à style='mso-spacerun:yes'>à class=SpellE>│ààà class=SpellE>│à
2│ààààààààààààà style='mso-spacerun:yes'>àààààà

//style='mso-spacerun:yes'>àààààààà
└───<───┤X├────────<─┴────┘style='mso-spacerun:yes'>ààà │ X
├──>───────────┘

//
àààààààààààààà
└─┘àààààààààààà
ààààà style='mso-spacerun:yes'>àà
style='mso-spacerun:yes'>ààààààààààààààààààààà

//style='mso-spacerun:yes'>ààààààààààààààààààààààààààààààààààà style='mso-spacerun:yes'>àààà└───┘

//
└ ─
class=SpellE>─
class=SpellE>─ class=SpellE>─ class=SpellE>─ class=SpellE>─ ┴ ─ class=SpellE>─ class=SpellE>─ class=SpellE>─ class=SpellE>─ class=SpellE>─ class=SpellE>─ class=SpellE>─ class=SpellE>─ ┘

//

// class=SpellE>Yk = ╩òðô¨ðª üþôºû lang=EN-US style='mso-ansi-language:EN-US'> k-þù ¸ÿõúª¨ðû¹ýþù ¸þ¸ªðòû ■∙õùlang=EN-US style='mso-ansi-language:EN-US'> = Mk*Mk , óôõlang=EN-US style='mso-ansi-language:EN-US'>

//

//style='mso-spacerun:yes'>ààààà --style='mso-spacerun:yes'>ààààààààààààààààààààààààààààààààààààààà 1--

// Mk =
\ UxCos(class=SpellE>Wxt
)[Cos(Wkt)+class=SpellE>jSin(Wkt)] = Ux*N
* -\

//style='mso-spacerun:yes'>ààààà /style='mso-spacerun:yes'>àààààààààààààààààààààààààààààààààààààààà N/

//style='mso-spacerun:yes'>ààààà ~~style='mso-spacerun:yes'>àààààààààààààààààààààààààààààààààààààààà class=SpellE>~~

// ôû lang=EN-US style='mso-ansi-language:EN-US'> Wk==0: Mk=Ux*N,style='mso-spacerun:yes'>àà Ykclass=GramE>=(Ux*N)^2,style='mso-spacerun:yes'>àà ( N=80, Ux=1,
Mk=80, Yk=6400 )

// ôû lang=EN-US style='mso-ansi-language:EN-US'> Wk!=0: Mk=class=SpellE>Ux*N/2, Yk=(Ux*N/2)^2,
( N=80, Ux=1, Mk=40, Yk=1600
)

//

// ╧¨øüõ¨ ò√÷þò𠯺ýú¡øø

// // ò√¢ø¸û õü üþ∙ýþ¸ª¹ 11-ù ¸ÿõúª¨ðû¹ýþù ¸þ¸ªðòû ■∙õù
(¢ð¸ªþªð 1100 ├¡)

// k=11;
Ck2=Goertzel_algorithmclass=GramE>(
BufFrame, k);

// // ò√¢ø¸û õü üþ∙ýþ¸ª¹ 17-ù ¸ÿõúª¨ðû¹ýþù ¸þ¸ªðòû ■∙õù
(¢ð¸ªþªð 1700 ├¡)

// k=17;
Ck2=Goertzel_algorithmclass=GramE>(
BufFrame, k);

//

//ulong nFsamples=8000;style='mso-spacerun:yes'>ààà // ╫ð¸ªþªð ôø¸ú¨õªø÷ð¡øø

//intstyle='mso-spacerun:yes'>àà nGoertzelFrSz=80;style='mso-spacerun:yes'>à // ─ûøýð ðýðûø÷ø¨ºõüþóþ ¯¨ðóüõýªð

 

double
PI=3.1415926535897932384626434;

 

double coef_k;style='mso-spacerun:yes'>ààààààà // Goertzel class=SpellE>úþ¤¯-ª ôû  k-þù ¸ÿõúª¨ðû¹ýþù ¸þ¸ªðòû ■∙õù

double Xn;style='mso-spacerun:yes'>ààààààààààà // ╟ýð¢õýø  þª¸¢õªþò ò¿þôýþóþ
¸øóýðûð

double Qn,Qn_1,Qn_2;style='mso-spacerun:yes'>à // ▌ûõüõýª√ ÷ðôõ¨öúø ôû  Goertzel-¯øû¹ª¨ð

double Yk;style='mso-spacerun:yes'>ààààààààààà // ╩òðô¨ðª üþôºû  k-þù ¸ÿõúª¨ðû¹ýþù
¸þ¸ªðòû ■∙õù

double Mk;style='mso-spacerun:yes'>ààààààààààà // ╠þôºû¹ k-þù ¸ÿõúª¨ðû¹ýþù
¸þ¸ªðòû ■∙õù

 

ààà class=SpellE>coef_klang=EN-US style='mso-ansi-language:EN-US'>=2*class=GramE>cos((2*PI*(double)k)/(double)class=SpellE>nGoertzelFrSz);

 

style='mso-spacerun:yes'>ààà Qn_1=0;

style='mso-spacerun:yes'>ààà Qn_2=0;

 

style='mso-spacerun:yes'>ààà int
N=nGoertzelFrSz;

style='mso-spacerun:yes'>ààà int
n;

style='mso-spacerun:yes'>ààà for(n=0;n<class=SpellE>N;n++)

style='mso-spacerun:yes'>ààà {

style='mso-spacerun:yes'>ààààà Xn=class=SpellE>BufXn[n]*AON_Gain;

style='mso-spacerun:yes'>ààààà if(class=SpellE>Xn> (0x7FFF)) Xn= (0x7FFF);

style='mso-spacerun:yes'>ààààà if(class=SpellE>Xn<-(0x7FFF)) Xn=-(0x7FFF);

style='mso-spacerun:yes'>ààààà Xnclass=GramE>=(double)((int)Xn);

style='mso-spacerun:yes'>ààààà Qn=Xn+Qn_1*coef_k-Qn_2;

style='mso-spacerun:yes'>ààààà Qn_2=Qn_1;

style='mso-spacerun:yes'>ààààà Qn_1=Qn;

style='mso-spacerun:yes'>ààà }

 

style='mso-spacerun:yes'>ààà Ykclass=GramE>=Qn_1*Qn_1+Qn_2*Qn_2-coef_k*Qn_1*Qn_2;

 

/class=GramE>/à Mk=class=SpellE>sqrt(Yk);

 

style='mso-spacerun:yes'>ààà if(class=SpellE>LOG_flg==1) Yk=10*log10(class=SpellE>Yk);

 

style='mso-spacerun:yes'>ààà return(class=SpellE>Yk);

}



Ñîñòàâèòü îòâåò  |||  Êîíôåðåíöèÿ  |||  Àðõèâ

Îòâåòû


Îòïðàâêà îòâåòà

Èìÿ (îáÿçàòåëüíî): 
Ïàðîëü: 
E-mail: 

Òåìà (îáÿçàòåëüíî):
Ñîîáùåíèå:

Ññûëêà íà URL: 
Íàçâàíèå ññûëêè: 

URL èçîáðàæåíèÿ: 


Ïåðåéòè ê ñïèñêó îòâåòîâ  |||  Êîíôåðåíöèÿ  |||  Àðõèâ  |||  Ãëàâíàÿ ñòðàíèöà  |||  Ñîäåðæàíèå  |||  Áåç êàäðà

E-mail: info@telesys.ru