Hi :o) Ich möchte einen Filter in Simulink implementieren der folgendermaßen aussieht: 2/N * Summe von i=0 bis N-1 von {(cos [2*pi/N*i]) * z^-i} N ist die Anzahl meiner Samples z^-i ist mein Delay Es ist ein FIR Passbandfilter mit N Taps, eine Form des DCT filters. Später möchte ich das Ding folgendermaßen erweitern: 2/N * Summe von i=0 bis N-1 von { Summe aller h von { (cos [2*pi/N*h*i]) * z^-i } } h sind in dem Fall die Vielfachen meiner Grundfrequenz. Ich bin eher der Regelungsfreak und weniger der DSP-Profi. Ich hoffe ihr könnt mir bei der Aufgabe auf die Sprünge helfen :)
Als Nachtrag: Ich habe mal einen simplen MAF mit folgender Syntax aufgebaut: [1/N .*ones(1,N)] Also 1/N und N Koeffizienten von z mit 1 belegt. Vielleicht kann man ähnlich den obigen Filter aufbauen? Was mir nur etwas Kopfschmerzen bereitet: Ich fülle die Koeffizienten nicht nur mit 1 und wie bringe ich das mitlaufende z^-1 unter?
Ich bins wieder. Ich will das Problem mal herunterbrechen und garnicht explizit auf den DCT Filter beziehen. Letztendlich brauche ich nur ein Array mit folgender Reihe: [cos(2*pi/N*1 , cos(2*pi/N*2 , cos(2*pi/N*3 , cos(2*pi/N*4 ... cos(2*pi/N*i] Da i bei mir 200 ist brauche ich eine Möglichkeit ein solches Feld zu erstellen ohne mich Wund zu tippen.
N = abtastrate / grundfrequenz for i = 0:(N-1) num = cos(2*pi/N*i) end In den Numerator eines FIR trägt man dann 2/N*num ein. Erweitert auf mehrere Oberschwingungen: for i = 0:(N-1) num = cos(2*pi/N*1*i) + cos(2*pi/N*2*i) + ... + cos(2*pi/N*k*i) end Das sollte klappen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.