Vysvětlují tento DSP notace

hlasů
3

Snažím se realizovat tento extenstion o Karplus silné utrhnutý smyčcový algoritmus, ale nechápu notaci zde použit. Možná, že to bude trvat roky studia, ale možná to nebude - možná můžete mi říct.

Myslím si, že rovnice níže jsou ve frekvenční doméně, nebo tak něco. Právě začíná s první rovnice, H p (z), přičemž směr Místo dolní propusti. Pro jeden směr použít P = 0, za druhé, možná 0,9. To redukuje na na 1 v prvním případě, nebo 0.1 / (1-0,9 z -1 ) ve druhém.

alt textu http://www.dsprelated.com/josimages/pasp/img902.png

Teď mám pocit, že by to mohlo znamenat, v kódování hlediska, něco na:

H_p(float* input, int time) {
  if (downpick) {
    return input[time];
  } else {
    return some_function_of(input[t], input[t-1]);
  }
}

Může mi někdo radu? Nebo je to zbytečné a já opravdu potřebují veškerou DSP pozadí implementovat to? Byl jsem matematik jednou ... ale to není moje doména.

Položena 17/12/2009 v 01:34
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
7

Takže z -1 jen znamená zpoždění jednu jednotku.

Vezměme H p = (1-p) / (1-pz -1 ).

Sledujeme-li konvenci „x“ pro vstup a „y“ pro výstup, přenosová funkce H = y / x (= výstup / vstup)

takže dostáváme y / x = (1-p) / (1-pz -1 )

nebo (1-p), x = (1-pz -1 ) y

(1-p) x [n] = y [n] - py [n-1]

nebo: y [n] = py [n-1] + (1-p) x [n]

V kódu C může být provedena

y += (1-p)*(x-y);

bez jakéhokoliv dalšího stavu za pomocí výstupního „Y“ jako stavovou proměnnou sám. Nebo můžete jít na více doslovný přístup:

y_delayed_1 = y;
y = p*y_delayed_1 + (1-p)*x;

Pokud jde o ostatní rovnice jít, jsou všechny typické rovnice s výjimkou té druhé rovnice, která vypadá jako možná je to způsob výběru buď H Β = 1-z -1 nebo 1-z -2 . (Co je N?)

Tyto filtry jsou trochu vágní a oni bude těžší pro vás řešení, pokud můžete najít nějaké balené filtry. Obecně lze říci, že jsou ve formě

H = H0 * (1 + AZ -1 + bz -2 + en -3 ...) / (1 + rz -1 + sz -2 + tz -3 ...)

a vše, co udělat, je zapsat H = y / x, přejít násobit dostat

H0 * (1 + AZ -1 + bz -2 + en -3 ...) * x = (1 + rz -1 + sz -2 + tz -3 ...) * y

a pak izolovat „y“ sám o sobě, čímž se výstup „y“ lineární funkcí různých zpoždění sebe a na vstupu.

Ale navrhování filtrů (picking A, B, C, atd.) Je tvrdší než jejich realizaci, z větší části.

Odpovězeno 17/12/2009 v 01:48
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more