2016-03-19 3 views
-1

Ich lerne über Signalverarbeitung und derzeit muss ich in Matlab einen Sprachsynthesizer machen. Für emulieren die Resonatorsystem des Mundes I diese Übertragungsfunktion haben:Filterkoeffizienten in Matlab

R (z) = 1 - z^(- 1)

Kann ich dieses System mit Filterfunktion in Matlab implementieren? Ich weiß nicht, wie man die Koeffizienten "a" und "b" extrahiert ...

Hinweis: y = filter (b, a, x), wobei x das Eingangssignal ist, das wir filtern müssen.

Danke euch allen!

+0

Hier gibt es keine Koeffizienten 'a' und' b'. – Adriaan

+0

also kann ich das nicht mit "filter" machen? – Kroka

+0

Keine Ahnung. Sie sprechen von zwei Koeffizienten, die nirgendwo anders in Ihrem Beitrag angezeigt werden. Sie könnten genauso gut gesagt haben, dass Sie Kaffee und Kekse benötigen, um fortzufahren. Ich sehe in Ihrem Beitrag auch nicht, wie diese mit Ihrem (höchst unklaren) Problem zusammenhängen. – Adriaan

Antwort

2

Beratung in der Dokumentation zu filter stellen Sie eine Übertragungsfunktion als eine rationale Funktion von Koeffizienten, so dass:

enter image description here

Die gewünschte Übertragungsfunktion Sie wollen, Y(z)/X(z) = R(z) ist gleich:

R(z) = 1 - z^{-1} 

Hier a(1) ist implizit gleich 1. Daher b(1) = 1 und b(2) = -1 Bezug auf die obige Gleichung . Alle Koeffizienten im Nenner sind 0 bis auf a(1) die bis 1.

Als solche gleich, a = 1; b = [1 -1]; und Filterung so das Signal einfach ist:

a = 1; b = [1 -1]; 
y = filter(b, a, x); 

x das Signal von Interesse ist, Sie wollen Filter.

+1

Vielen Dank! – Kroka

+0

Aber ist nicht 'b (2) = -1'? –

+0

@MatthiasW. Nein, es ist nicht .... * korrigiert schnell *. Sehen? Eine illusion! (Übrigens danke für die Korrektur :)) – rayryeng