2011-01-02 2 views
1

ich bin mir nicht sicher, wie man den Frequenzgang (H) des Hochpassfilters zeichnet? Nach dem Zeichnen der Frequenzantwort kann ich den b-Koeffizienten erhalten, indem ich den ifft von (H) nehme. Also ja, für einen Tiefpassfilter, mit einer Grenzfrequenz von sagen Pi/2: der Frequenzantwortcode wird H = exp(-1*j*w*4).*(((0 <= w) & (w<= pi/2)) | ((2*pi - pi/2 <= w) & (w<=2*pi)); da die Antwort ist "1" zwischen 0 und Pi/2 und zwischen (2 * Pi - Pi/2) und 2 * pi. Kannst du mir helfen, H für einen Hochpassfilter zu schreiben? Vielen Dank im Voraus.Wie entwerfe ich einen Hochpassfilter in MATLAB, ohne die integrierte Funktion zu verwenden?

Antwort

3

Wenn Sie einen Tiefpassfilter mit Frequenzgang H_lp(w) haben, können Sie einen entsprechenden Hochpassfilter H_hp(w) finden durch seinen Frequenzgang von 1.en

Subtrahieren
H_hp(w) = 1 - H_lp(w) 

Also, wenn Sie Ihren Hochpass wollen Filter von K zu pi zu übergeben, entwerfen Sie einen Tiefpass, den Sie bereits wissen, der von 0 zu K geht, dann verwenden Sie die obige Gleichung, um den Hochpass-Frequenzgang zu finden, und nehmen Sie dann die IFFT H_hp .

+0

Sortieren von. Dies gibt Ihnen die ergänzende Antwort, die möglicherweise nicht das ist, wonach Sie suchen. Siehe meine Antwort, die beinhaltet, den Tiefpass-Prototyp bis Nyquist zu übersetzen. –

3

Wenn Sie die Impulsantwort b[n] eines Tiefpassfilters haben, können Sie es in einen äquivalenten Hochpassfilter umwandeln, indem Sie bis zur Nyquist-Frequenz mischen. Sie tun dies, indem Sie mit einer komplexen Exponentialfunktion multiplizieren: exp(j*pi*n). Dies ist jedoch sehr einfach, da dies einfach die Sequenz +1, -1, +1, -1, ... ist. Multiplizieren Sie daher einfach jede zweite Probe von b[n] mit -1.

+0

+1, das ist bei weitem der einfachere Weg zu gehen. Es funktioniert auch für IIR-Filter - multipliziere die Zählerkoeffizienten mit "+1, -1, +1, ..." und die Nennerkoeffizienten mit "-1, +1, -1, ...". – mtrw

Verwandte Themen