Matlab help DSP-programma's

B

BAT_MAN

Guest
Kan iemand mij uitleggen de logica voor de functie bestand hoewel commentaar gegeven, maar ik was niet in staat om te begrijpen

functie Factoren = ontbinden (pölyn)
formaat lang; Factoren = [];
Gebruik% drempel van de 1e-8 in plaats van 0 tot goed voor
% Precisie effecten
Dorsen = 1e-8;
%
proots = wortels (pölyn);% krijgen de nullen van de polynoom
len = lengte (proots);% krijgen van het aantal nullen
%
while (len> 1)
if (abs (imag (proots (1))) <dorsen)% indien de nul is een nul
fac = [1-real (proots (1))];
% Construeren met de factor proots (1) als nul
Factoren = [factoren; [fac 0]];
else% indien de nul heeft imaginaire deel krijgen alle nullen waarvan
% Imag deel is-ve van imaginaire deel van proots (1)
negimag = imag (proots) imag (proots (1));
% Krijgen alle nullen die hebben dezelfde reële deel als Proot (1)
samereal = real (proots)-real (proots (1));
% vindt het complex geconjugeerde nul
index = vinden (abs (negimag) <dorsen & ABS (samereal) <drempel);
if (index)% indien de complexe geconjugeerde bestaat
fac = [1 -2 * real (proots (1)) ABS (proots (1)) ^ 2];
% 2e orde form factor
Factoren = [factoren; fac];
else% indien de complexe geconjugeerde niet bestaat
fac = [1-proots (1)];
Factoren = [factoren; [fac 0]];
eindigen
eindigen
pölyn = deconv (pölyn, fac);
% deconvolve de 1e/2e orde factor uit pölyn
proots = wortels (pölyn);% bepalen van de nieuwe nullen
len = lengte (pölyn);% bepalend voor het aantal nullen
eindigen

 
Ik denk dat de bijlage ontbrak.Hier is in. Rar-formaat
Sorry, maar je moet inloggen om deze gehechtheid

 
hey, Het was niet erg moeilijk om te analyseren hoe het werkt als je eenmaal de code hebt aangepast naar behoren en dan debug het stap voor stap voor 1 bepaalde polynoom.

Hier is hoe het werkt:

1) Ten eerste vinden we de wortels van de polynoom

2) Er is een while-lus die loopt voor elke wortel.

3) Als de wortel echt is dan natuurlijk de factor is [1-root] sinds wortel van (xa) a.

4) Indien de wortel denkbeeldige vervolgens het programma probeert te vinden die een andere wortel conjugaat.Indien gevonden dan is het een combinatie van deze twee een 2de graad polynoom vorm.
Dit wordt gedaan met behulp van de volgende logica:

(x-(a ib)) (x-(a-ib)) = x ^ 2 - 2AX (a ib) (a-ib) = x ^ 2 - 2AX | a ib | ^ 2

5) Als het niet vinden van de complexe geconjugeerde wortel, dan is het weer een factor verklaart zoals [1 (a ib)], dat is de wortel van (x - (a ib)).

6) In elke iteratie, gebruikt het deconv () die de rest van de polynoom als het polynoom wordt gedeeld door de factor vindt.

Hoop dat dit helpt in het begrijpen.

Ik ben ook bevestigen het. M bestand dat goed is uitgelijnd.

 

Welcome to EDABoard.com

Sponsor

Back
Top