Output Tiefpassfilter

Theoretisch wird der Ausgangsfilter nicht benötigt, da ein Lautsprecher eine Induktivität darstellt und demnach Tiefpassverhalten aufweist. Dennoch kann es zu Schäden am Lautsprecher selbst oder der Frequenzweiche kommen, wenn kein Tiefpassfilter vorgeschaltet wird. Die Modulation erzeugt hochfrequente Signalanteile, welche beim Hochtöner oder Bauteilen der Frequenzweiche zu starker Wärmeentwicklung führen können.

Schaltplan eines Tiefpassfilters mit Widerständen zur Dämpfung von Überschwingern


Durch die bekannten Zusammenhänge der Impedanzen eines Kondensators mit dessen Kapazität X_c = \frac{1}{j\omega \cdot C} und der Impedanz einer Spule mit deren Induktivität X_l = j\omega \cdot l lässt sich die Übertragungsfunktion der obigen Schaltung aufstellen:

    \[\\\begin{center}G(j\omega) = \begin{pmatrix}\frac{1}{C3 \cdot j\omega  + \frac{1}{R1}} + \frac{1}{C1 \cdot j\omega}\end{pmatrix}\cdot\frac{1}{L1 \cdot j\omega + \frac{1}{C3 \cdot j\omega  + \frac{1}{R1}}  +  \frac{1}{C1 \cdot j\omega} }\notag\end {center} \\\]

Da die Schaltung symmetrisch ist, wurde nur die obere Hälfte betrachtet. Deswegen finden sich auch nur die Bauteilwerte von L1, C1, R1 und C3 in der berechneten Übertragungsfunktion. Die Bauteilwerte L2, C2, R2 und C4 sind aufgrund der Symmetrie identisch zu denen von L1, C1, R1 und C3. Um die Berechnung der Bauteilwerte und den resultierenden Frequenzgang zu vereinfachen wurde folgendes Matlab Skript entwickelt:

%% Initialize
clear;
close all;
clc;

%% Parameters
RL = 8; %Ohm (loudspeaker impedance)
fc = 20e3; %Hz (cut frequency of the filter)
LT = RL /(2*pi*fc);
CT = 1/( ((2*pi*fc)^2) * (LT));
L1 = 1/2*LT;
C1 = 1/((2*pi*fc)^2 * L1);
C3 = C1;
R1 = 1/(sqrt(2) * 2*pi*fc*C1);

%% Transferfunction
f = 20:10:80e3;
w = 2.*pi.*f;

%Transferfunction via ohms law...
tf = (1./(C3*1j.*w + 1./R1) + 1./(C1.*1j.*w))./ ...
(L1.*1j.*w + 1./(C3.*1j.*w + 1./R1) + 1./(C1.*1j.*w));

mag = (abs(tf));
mag = mag2db(mag);
phi = rad2deg(angle(tf));
imp = ifft(tf, 2^17);

%% Filter response
figure('Name', "Bode");

subplot(3, 1, 1);
plot(f, mag);
grid minor;
set(gca, 'XScale', 'log');
title("Maginitude");
xlabel("Frequency in [Hz]");
ylabel("Magnitude in [dB]");
xlim([20; 80e3]);
ylim([1.1*min(mag) 1.1*max(mag)]);

subplot(3, 1, 2);
plot(f, phi);
grid minor;
set(gca, 'XScale', 'log');
title("Phase");
xlabel("Frequency in [Hz]");
ylabel("Phase in [deg]");
xlim([20; 80e3]);
ylim([-185; 185]);

subplot(3, 1, 3);
plot(real(imp));
grid minor;
title("Impulse Response");
xlabel("Samples");
xlim([ 0 (find(abs(real(imp)) < = 1e-5*max(real(imp)), 1))]);
ylim([1.1*min(real(imp)) 1.1*max(real(imp))]);

Das Skript berechnet, nach Angabe der Cutfrequenz f_c und der Lautsprecherimpedanz R_L die benötigten Bauteilwerte des Filters. Zudem wird der Frequenzgang und die Impulsantwort des Filters erzeugt und dargestellt.

Frequenzgang und Impulsantwort des Filters