Hallo,

Ik dien een hoogdoorlaatfilter te ontwerpen aan de hand van gegeven specificaties:

-passband vanaf 0.6pi
-stopband tot 0.4pi
-passband ripple 1dB
-stopband attenuation 40db

Ik moet het doen via analoog butterworth ontwerp techniek.
Nu heb ik van alles geprobeerd maar ik weet niet of ik het helemaal goed doe. Ik moet een transformatie doen, de specificaties in het analoge domein geven en vervolgens ook naar het digitale domein overgaan.

Het geen wat ik gedaan heb is het volgende. Eerst de bilineaire transformatie toegepast om OmegaP en OmegaS te krijgen. Daarna normaliseer ik de die. (omegaP' = 1, OmegaS' = OmegaS/OmegaP) Vervolgens bepaal ik epsilon en de orde N. Daarna bepaal ik H(S) en pas de transformatie van laagdoorlaat naar hoogdoorlaat toe (s = OmegaP'*OmegaP / s) toe. Om naar het digitale domein te gaan vervang ik s door (z-1)/(z+1).

Is dit allemaal goed wat ik doen, want als ik het plot komt het niet helemaal uit. Hoop dat jullie me wat verder kunnen helpen. Alvast bedankt.

Het beste kun je het werk dat je hebt gedaan, laten zien. Wat gaat er mis bij de plot?
Het is best mogelijk dat je een orde moet kiezen die "te veel" stopband demping oplevert, of misschien "te weinig" doorlaatrimpel. Dat is niet erg.

Ik zal aan het einde van de dag even posten wat ik allemaal gedaan heb. Hoop dat jullie me verder kunnen helpen dan.

Hierbij een documentje met wat ik gedaan heb. Dit is het belangrijkste. Ik weet dus niet of dit allemaal goed is wat ik gedaan heb. Verder dien ik dus H(s) en |H(omega)|^2 te plotten in matlab.

Ow en natuurlijk het document

http://www.2shared.com/file/8383020/8e608543/Signaalbewerking2.html

(onderaan bij Last downloaded: staat click here om te downloaden)

[Bericht gewijzigd door Henry S. op (61%)]

Haha, in emails vergeet ik ook altijd het aanhangsel.

Volgens mij gaat het mis op p.1, bij "De orde N wordt bepaald door.."
Als ik gewoon rechtstreeks N oplos uit de eerste uitdrukking, dan kom ik op N=13,02. Dat wordt dus N=14. 10 is niet genoeg, zo te zien.

Is dat het probleem dat je in de plot zag?

Nee, dat is het probleem niet. Ik twijfel meer aan de transformaties die ik doe goed zijn en het normaliseren van de frequenties.

Ha wacht, ik snapte die Ω's al niet. Ik dacht dat ik naar een klassieke Butterworth zat te kijken.
Vergeet niet dat er, toen ik mijn opleiding genoot, geen digitale filters bestonden..;)
Ik zie nu dat je aan het predistorten was, of heet dat tegenwoordig warpen? Is dit voor een infinite impulse filter?
Moet ik me eerst nog even over inlezen, ben ik bang. :+

Klopt ik prewarp de frequenties eerst, om van de digitale specificaties naar het analoge tijddomein te gaan. Dan kan ik aan de hand van een analoog prototype butterworth een filter ontwerpen en dan terug transformeren. En dit is inderdaad voor een IIR filter.

Zo, nu weet ik alles van digitale filters. :):):) :+
Wat ik vind, is dat het warpen gebeurt met de functie
Ω = 2/T tan(ω T/2)

Bij jou zie ik die T niet terug. Mogelijk reken je hier met fs = 1?
Maar belangrijker: de factor 2 aan het begin is er niet. Misschien gaat het daar mis.
Omdat dat bij zowel p als s is, kom je voor de genormaliseerde Ωs wel op 1,724 (eigenlijk: 1,725) uit. De epsilon en de orde N kloppen daardoor ook.
Maar klopt het onderaan p.2 nu nog wel? Voor Ω'p staat hier 0,546, maar dat moet dus eigenlijk 1,093 zijn.

http://cnx.org/content/m12757/latest/
Zie onderaan de pagina bij het kopt prewarping en example 1

Dat is tot nu toe de enige tekst waar ik die 2 vervangen zie worden door iets anders. :)
Hij zal wel geabsorbeerd zijn in een van de scaling functies.

Iets anders. Op pagina 2 schrijf je:

H(s)H(-s) = (ABS(H(s)))2 = 1/(1 + (-s2/Ωc2)N) , en:
H(s) = 1/(1+(s/Ωc)N)

Ik vraag me af of dat zo is. Stel even N=2 en Ωc=1. Voor zo'n tweepolige Butterworth geldt wel
(ABS(H(s)))2 = 1/(1+s4), maar
H(s) = 1/(s2 + √2 s + 1) en dus niet H(s) = 1/(1+s2) , ook al neem ik s := j ω.

Als ik de functie 1/(1+0.50882 s20) in een "Laplace box" stop in de sim, en dat plot, komt er een mooie butterworth laagdoorlaat uit, alleen twee keer zo steil als bedoeld, omdat ik H(s)2 aan het plotten ben.
Maar gebruik ik 1/(1 + 0.5088 s10) in de Laplace box, dan krijgt ik een heel rare hoge piek bij de kantelfrequentie.

Volgens mijn boek geld

(ABS(H(s)))2 = 1/(1 + (-s/Ωc)2N)

oftewel ook gelijk aan 1/(1 + (-s2/Ωc2)N)

maar ook gelijk aan H(S)H(-s) = (1/(1 + (s/Ωc)N)) * (1/(1 + (-s/Ωc)N)

Hmmz ik zie nu inderdaad denk wat je bedoeld. Het geld alleen als N=1 maar voor hogere ordes gaat het inderdaad niet meer op.

Ik zal dan denk de cuttoff frequentie Ωc moeten berekenen, de polen sk daarna bereken en dan de volgende formule toepassen.

H(s) = Ωcn/(Σ (s-sk)

Nou, ik kan met geen mogelijkheid die onderste uitdrukking gelijk krijgen aan die middelste.
Met -s2, bedoelen ze daarmee (-s)2 of -(s2)?
Aangezien -s tussen de haakjes stond, zou het het eerste moeten zijn. Maar dat is gelijk aan gewoon s2.

Ik vrees dat ik je verder niet kan helpen. Maar ik heb wel een leuk studieobject gevonden. :)

Ik ga nog even wat dingen proberen. Ben nu ieder geval wel tot inzicht gekomen dat wat ik met die H(S) doe niet klopt. Bedankt :-)