WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Filter erstellen

 

JaSoIstEs
Forum-Guru

Forum-Guru


Beiträge: 266
Anmeldedatum: 01.10.12
Wohnort: Hessen
Version: 2019b
     Beitrag Verfasst am: 09.07.2018, 13:57     Titel: Filter erstellen
  Antworten mit Zitat      
Das Thema ist etwas älter, stehe aber leider vor einem ähnlichen Problem.

Ich muss einen IIR (digitaler) Tiefpass-Filter 1. Ordnung auslegen.

Ich habe eine Grenzfrequenz von 1kHz, Ts von 50e-6 und einer Zeitkonstante von 0.05 und das ganze soll dann in der Direkt Form 1 aufgebaut werden.

Wenn ich die Funktionen wie beschrieben verwende verwirrt mich das Ergebnis ein wenig.

Code:

Grenzfrequenz = 1e3;
Ts = 50e-6;
% analoges Filter im s-Bereich erstellen
Wn = 2*pi*(Grenzfrequenz); % normierte Grenzfrequenz
[b_s,a_s] = butter(1,Wn,'low','s'); % Butterworth TP 1. Ordnung
% Übertragungsfunktion
Hs = tf(b_s,a_s)
% kontinuierlich zu diskret
Hsz = c2d(Hs,Ts)
% Koeffizienten erzeugen
[b_sz,a_sz] = tfdata(Hsz,'v') %Num = b_sz, Den = a_sz
bode(Hs, Hsz)
grid on;
 


Zum Verständnis habe ich mir hierfür das Buch von Tietze/Schenk zur Brust genommen.

Übertragungsfunktion: A(z) = (alpha0 + alpha1*z^-1)/(1+beta1*z^-1)

für deinen Tiefpassfilter müsste nach der Theorie alpha0 = alpha1 sein, was hier aber nicht der Fall ist.

Mache ich hier etwas falsch oder habe ich ein Verständnis Problem?

Im Voraus, vielen lieben Dank für eure Hilfe.

[EDITED, Jan, Bitte keine neuen Fragen an bestehende Threads anhängen - Danke!]
Private Nachricht senden Benutzer-Profile anzeigen
Gesplittet: 09.07.2018, 14:54 Uhr von Jan S
Von Beitrag Frage zu Filtern (Grundverständnis) aus dem Forum Signalverarbeitung


JaSoIstEs
Themenstarter

Forum-Guru

Forum-Guru


Beiträge: 266
Anmeldedatum: 01.10.12
Wohnort: Hessen
Version: 2019b
     Beitrag Verfasst am: 09.07.2018, 16:17     Titel:
  Antworten mit Zitat      
Ich hab das ganze jetzt etwas abgeändert.

Code:

filterfg = 1e3;
filterTs = 50e-6;
% analoges Filter im s-Bereich erstellen
Wn = (filterfg*2)/20e3; % normierte Grenzfrequenz
[b_s,a_s] = butter(1,Wn,'low'); % Butterworth Tiefpass 1. Ordnung
% Übertragungsfunktion
Hs = tf(b_s,a_s)
% kontinuierlich zu diskret
Hsz = c2d(Hs,filterTs,'tustin')
% Koeffizienten erzeugen
%[b_sz,a_sz] = tfdata(Hsz,'v'); % Num = b_sz, Den = a_sz
bode(Hs, Hsz)
grid on;
 


Ist die Berechnung von Wn so überhaupt richtig? Ich finde keine eindeutige Formel für die Berechnung.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.