LC低通滤波器
我们使得L=4.7uH,C=220uF;电感L的阻抗为Xl;电容C的阻抗为Xc;
传递函数
H
(
s
)
=
u
o
u
i
=
X
C
X
C
+
X
L
=
1
s
C
1
s
C
+
s
L
=
=
1
1
+
s
2
L
C
(其中
s
=
j
ω
)
H(s)=\frac{u_{o} }{u_{i} } =\frac{X_{C} }{X_{C}+X_{L}} =\frac{\frac{1}{sC} }{\frac{1}{sC}+sL} ==\frac{1 }{1+s^{2} LC}(其中s=j\omega )
H(s)=uiuo=XC+XLXC=sC1+sLsC1==1+s2LC1(其中s=jω)
将传递函数进一步整理可得:
H
=
1
1
−
ω
2
L
C
H=\frac{1}{1- \omega^{2} LC}
H=1−ω2LC1
由上式可得出传递函数的实部和虚部:
r
e
a
l
=
1
1
−
ω
2
L
C
i
m
a
g
e
=
0
\begin{matrix}real=\frac{1}{1- \omega^{2} LC} \\image=0 \end{matrix}
real=1−ω2LC1image=0
进一步求出幅值和相位表达式:
幅值
=
r
e
a
l
2
+
i
m
a
g
e
2
=
∣
1
1
−
ω
2
L
C
∣
相位
=
a
r
c
t
a
n
(
i
m
a
g
e
r
e
a
l
)
=
a
r
c
t
a
n
(
0
)
(
其中
ω
=
2
π
f
)
\begin{matrix}幅值=\sqrt{real^{2}+image^{2} } =\left | \frac{1}{1- \omega^{2} LC} \right | \\相位=arctan\left (\frac{image}{real} \right ) =arctan\left (0\right ) \\(其中 \omega =2\pi f) \end{matrix}
幅值=real2+image2=
1−ω2LC1
相位=arctan(realimage)=arctan(0)(其中ω=2πf)
谐振频率
当电感L与电容C的阻抗相互抵消时,LC低通滤波器的整体阻抗最小,此时滤波器发生谐振,对应频率为谐振频率,计算公式如下:
X
L
=
X
C
2
π
f
L
=
1
2
π
f
C
\begin{matrix}X_{L} =X_{C} \\2\pi fL=\frac{1}{2\pi fC} \end{matrix}
XL=XC2πfL=2πfC1
由此可以求出谐振频率:
f r = 1 2 π L C f_{r}=\frac{1}{2\pi \sqrt{LC} } fr=2πLC1
零点与极点
由传递函数可求出零点与极点:
H
(
s
)
=
u
o
u
i
=
X
C
X
C
+
X
L
=
1
s
C
1
s
C
+
s
L
=
=
1
1
+
s
2
L
C
(其中
s
=
j
ω
)
H(s)=\frac{u_{o} }{u_{i} } =\frac{X_{C} }{X_{C}+X_{L}} =\frac{\frac{1}{sC} }{\frac{1}{sC}+sL} ==\frac{1 }{1+s^{2} LC}(其中s=j\omega )
H(s)=uiuo=XC+XLXC=sC1+sLsC1==1+s2LC1(其中s=jω)
零点:令传递函数的分子为0可求出零点,得此LC滤波器无零点;
极点:令传递函数的分子为0可求出极点,得
s
2
=
−
1
L
C
s
1
,
2
=
±
j
1
L
C
\begin{matrix}s^{2}=-\frac{1 }{LC } \\s_{1,2} = \pm j\frac{1}{\sqrt{LC}} \end{matrix}
s2=−LC1s1,2=±jLC1
所以,LC低通滤波器有两个极点,但是都处在虚轴上,为纯虚极点,轴上的极点通常表示系统的自然频率,且没有阻尼(即实部为零);这两个自然频率点都会在bode图上表现出来,对bode图造成一定的影响;自然频率为:
f
1
,
2
=
±
1
2
π
L
C
(负值需要取其绝对值)
f_{1,2} = \pm\frac{1}{2\pi\sqrt{LC}}(负值需要取其绝对值)
f1,2=±2πLC1(负值需要取其绝对值)
自然频率:自然频率是指一个系统在没有外部驱动的情况下,自然振荡的频率。对于 LC 低通滤波器来说,系统的自然频率是指电感和电容共同决定的振荡频率。
在这里,谐振频率点与自然频率点在数值上相等。
Bode图绘制与分析
现在,我们使用matlab来画出这个LC滤波器的bode图,如下:
传递函数如下,我们通过传递函数来分析这个bode图:
H
=
1
1
−
ω
2
L
C
H=\frac{1}{1- \omega^{2} LC}
H=1−ω2LC1
- 在谐振频率左侧,当f<<fr时,对应的幅值和相位计算如下:
H
=
1
1
−
ω
2
L
C
=
1
1
−
(
2
π
f
)
2
L
C
≈
1
H=\frac{1}{1- \omega^{2} LC} =\frac{1}{1- (2\pi f)^{2} LC} ≈1
H=1−ω2LC1=1−(2πf)2LC1≈1
因此在bode图上对应的幅值增益为0dB,因为传递函数没有虚部,所以相位为0°。 - 在截止频率右侧,当f>>fr时,对应的幅值和相位计算如下:
H
=
1
1
−
ω
2
L
C
=
1
1
−
(
2
π
f
)
2
L
C
(随着频率增大幅值减小,斜率为
−
40
d
B
/
10
d
e
c
,即频率每增加
10
倍,幅值衰减
40
d
B
)
H=\frac{1}{1- \omega^{2} LC} =\frac{1}{1- (2\pi f)^{2} LC} (随着频率增大幅值减小,斜率为-40dB/10dec,即频率每增加10倍,幅值衰减40dB)
H=1−ω2LC1=1−(2πf)2LC1(随着频率增大幅值减小,斜率为−40dB/10dec,即频率每增加10倍,幅值衰减40dB)
在bode图上,幅值增益为负数,并逐渐减小;传递函数计算的H为负数,所以相位为-180°。 - 在谐振频率处f=fr≈4949.48Hz处,对应的幅值和相位计算如下:
H
=
1
1
−
ω
2
L
C
=
1
1
−
(
2
π
f
r
)
2
L
C
=
∞
H=\frac{1}{1- \omega^{2} LC} =\frac{1}{1- (2\pi f_{r})^{2} LC} =∞
H=1−ω2LC1=1−(2πfr)2LC1=∞
在bode图上增益为无穷大,相位从0°变化到-180°
matlab代码
L=4.7*10^(-6);
C=220*10^(-6);
H=tf(1,[(L*C) 0 1]);
% 获取零极点
z = zero(H);
p = pole(H);
disp(z);
disp(p);
opts = bodeoptions;
opts.FreqUnits = 'Hz'; % 设置频率单位为Hz
bode(H, opts);
grid on
% 获取当前坐标轴
h = findobj(gcf, 'Type', 'axes');
% 设置增益图的横纵坐标显示值
set(h(1), 'XScale', 'log'); % 设置横坐标为对数刻度
set(h(1), 'XLim', [0,10000000]);
set(h(1), 'XTick', [0,1,10,100,1000,10000,100000,1000000,10000000]); % 设置横坐标刻度
set(h(1), 'YLim', [-100, 100]); % 设置纵坐标范围
set(h(1), 'YTick',[-100,-50,0,50,100]); % 设置纵坐标刻度
% 设置相位图的横纵坐标显示值
set(h(2), 'XScale', 'log'); % 设置横坐标为对数刻度
set(h(1), 'XLim', [1,10000000]);
set(h(2), 'XTick', [0,1,10,100,1000,10000,100000,1000000,10000000]); % 设置横坐标刻度
set(h(2), 'YLim', [-225, 45]); % 设置纵坐标范围
set(h(2), 'YTick', [-225,-180,-135,-90,-45,0,45]); % 设置纵坐标刻度
% 计算截止频率
%RC = 1 / abs(p); % 截止频率为极点的绝对值的倒数
resonant_freq = 1 / (2 * pi *sqrt(L*C)); % 截止频率(Hz)
disp(resonant_freq);
% 在增益图上标示零点和极点
for i = 1:length(h)
if i == 1 % 增益图
% 标示零点
for j = 1:length(z)
if ~isinf(z(j)) % 排除无穷大
hold on;
% 将零点从弧度转换为赫兹
freq_hz = real(z(j)) / (2 * pi);
plot([freq_hz, freq_hz], [-180, 180], 'r--'); % 画虚线
text(freq_hz, 90, sprintf('Zero: %.2f Hz', freq_hz), 'Color', 'r'); % 添加文本标注
end
end
% 标示极点
for j = 1:length(p)
if ~isinf(p(j)) % 排除无穷大
hold on;
% 计算频率
freq_hz = (p(j)) / (2 * pi); % 使用虚部计算频率
% 处理负频率
if freq_hz < 0
freq_hz_positive = -freq_hz; % 转换为正频率
else
freq_hz_positive = freq_hz; % 保持正频率
end
% 标示正频率
plot([freq_hz_positive, freq_hz_positive], [-100, 10], 'g--'); % 画虚线
text(freq_hz_positive, 80, sprintf('Pole: %.2f Hz', freq_hz_positive), 'Color', 'g'); % 添加文本标注
end
end
% 标示截止频率
%hold on;
%plot([cutoff_freq, cutoff_freq], [-100, 50], ':'); % 画截止频率虚线
%text(cutoff_freq, -50, sprintf('Cutoff: %.2f Hz', cutoff_freq), 'Color', 'b');
elseif i == 2 % 增益图
% 标示零点
for j = 1:length(z)
if ~isinf(z(j)) % 排除无穷大
hold on;
% 将零点从弧度转换为赫兹
freq_hz = real(z(j)) / (2 * pi);
plot([freq_hz, freq_hz], [-180, 180], 'r--'); % 画虚线
text(freq_hz, 90, sprintf('Zero: %.2f Hz', freq_hz), 'Color', 'r'); % 添加文本标注
end
end
% 标示极点
for j = 1:length(p)
if ~isinf(p(j)) % 排除无穷大
hold on;
% 计算频率
freq_hz = (p(j)) / (2 * pi); % 使用虚部计算频率
% 处理负频率
if freq_hz < 0
freq_hz_positive = -freq_hz; % 转换为正频率
else
freq_hz_positive = freq_hz; % 保持正频率
end
% 标示正频率
plot([freq_hz_positive, freq_hz_positive], [-180, 180], 'g--'); % 画虚线
text(freq_hz_positive, -80, sprintf('Pole: %.2f Hz', freq_hz_positive), 'Color', 'g'); % 添加文本标注
end
end
end
end
% 标示截止频率
hold on;
plot([resonant_freq, resonant_freq], [-225, 225], ':'); % 画截止频率虚线
text(resonant_freq, -90, sprintf('Resonant: %.2f Hz', resonant_freq), 'Color', 'b');