Kommentare
- Welche Software verwenden Sie? Oder müssen Sie dies von Hand tun? Beachten Sie, dass Ihre Spezifikationen sehr allgemein sind und aus diesem Grund viele Methoden möglich sind.
- Verwenden von Matlab, jedoch nicht, sondern in Funktionen
- Sie können also keine Funktionen der Signal Processing Toolbox verwenden?
- Nein, ich kann keine der Funktionen aus der Toolbox für die Signalverarbeitung verwenden.
Antwort
Ihr Filter ist stark unterbestimmt, daher gehe ich davon aus, dass Ihr Design sehr einfach sein soll. Eine sehr grundlegende Methode wäre, die Impulsantwort eines idealen Tiefpassfilters mit der Grenzfrequenz $ \ omega_c = 2 \ pi f_c / f_s = 0,4 \ pi $ (wobei $ f_s $ die Abtastfrequenz ist) einfach abzuschneiden und zu verschieben:
$$ h_ {ideal} (n) = \ frac {\ sin (\ omega_c n)} {\ pi n} $$
Beachten Sie, dass Ihr Filter Sie kausal sein muss Die ideale Impulsantwort muss so verschoben und abgeschnitten werden, dass sie in Bezug auf ihr Maximum symmetrisch ist:
$$ h (n) = \ frac {\ sin (\ omega_c (n-10))} { \ pi (n-10)}, \ quad n = 0,1, \ ldots, 20 \ tag {1} $$
Gleichung (1) gibt Ihnen die 21 Filterkoeffizienten $ h (n) $ eines kausalen FIR-Filters, das sich einer idealen Tiefpassfilterantwort annähert. Beachten Sie, dass die Filterreihenfolge 20 ist.
Ein einfacher Matlab / Octave-Code könnte folgendermaßen aussehen:
n = -10:10; omc = 0.4*pi; % normalized cut-off frequency in rad h = sin(omc*n)./(pi*n); % impulse response h(11) = omc/pi; % correct NaN value at n=0 H = fft(h,1024); % complex frequency response f = 1000/1024*(0:512); % FFT frequency grid up to fs/2 plot(f,abs(H(1:513))); % plot magnitude of frequency response
Kommentare
- @farhan: Sie ' sind herzlich willkommen! Wenn Sie der Meinung sind, dass Ihre Frage zufriedenstellend beantwortet wurde, können Sie sie akzeptieren, indem Sie auf die Schaltfläche ' ' neben der Antwort klicken.
- Es gibt Optionen für Aktiv und Älteste. Keine Option für Akzeptieren.
- Kannst du mir helfen, wenn ich einen Filter mit einem rechteckigen Fenster zeichnen möchte?
- @farhan : Es gibt ' ein Häkchen oben links in der Antwort. Was genau meinen Sie mit " Zeichnen eines Filters mithilfe eines rechteckigen Fensters "? Zeichnen Sie den Frequenzgang?
- Ja, ich möchte diesen Code wirklich