Gast
#2176055
Hallo allerseits.
Ich möchte einen FIR oder IIR Filter in einem Mikrocontroller
softwaremäßig einbauen.Die Koeffizientenberechnung überlasse ich
dabei Matlab Studio.
Dabei werden ja immer statische bzw. konstante Koeffizienten ermittelt,
in Abhängigkeit der Sample Rate und gewünschter Bandbreite.
Folgende Frage stellte sich mir beim Filterentwurf:
Beispiel:
Filter mit Abtastrate F(a)=1MHz,
Bandbreite mit B = F(a)/4 = 1MHz/4 = 250kHz,
Zeit zwischen 2 Abtastwerte beträgt: T(a)=1/F(a)=1µs
Wie verhält sich der Filter wenn ich T(a)=1µs in meinem
µC Programm nicht als konstant voraussetzten kann?
Eine ISR Anfrage kann mir z.b. einen 2.Task aktivieren,wodurch
sich die Zeit zur Berechnung eines neuen Ausgangswertes verändert:
ISR_Routine()
{
task2_enabled=1;
}
while(1)
{
if(task2_enabled==1)
{
Task2();
}
Task1()
{
Filter(new_sample);
}
}
Da die Bandbreite auch von F(a)=1/T(a) abhängt verändert sich diese
durch oben beschriebenes Problem.
Gibt es Filteralgorithmen mit z.b. variablen Koeffizienten?
(die man auch in einem µC umsetzten kann!)
Oder kann man eine variable Zeit T(a) unberücksichtigt lassen?
Gruß
Christian