死磕带通滤波器

死磕带通滤波器带通滤波器的作用与陷波器类似,带通滤波器在数字电源控制领域有重要作用。比如在三相LCL逆变器的谐振抑制控制方面,通过带通滤波器可以提取谐振点附近的频谱做进一步的控制策略。在有源电力滤波器利用带通滤波器可以提取电网信号的基波频率从而做进一步的控制。带通滤波器传递函数带通滤波器的传递函数是:h(s)=AwoBss2+Bs+wo2h(s)=\frac{Aw_oBs}{s^2+Bs+w_o^2}h(s)=s2+Bs+wo2​Awo​Bs​其中,wow_owo​是带通的“中心频率”,也就是想要通过频率

大家好,又见面了,我是你们的朋友全栈君。

带通滤波器的作用

与陷波器类似,带通滤波器在数字电源控制领域有重要作用。比如在三相LCL逆变器的谐振抑制控制方面,通过带通滤波器可以提取谐振点附近的频谱做进一步的控制策略。在有源电力滤波器利用带通滤波器可以提取电网信号的基波频率从而做进一步的控制。

带通滤波器传递函数

带通滤波器的传递函数是:
h ( s ) = A w o B s s 2 + B s + w o 2 h(s)=\frac{Aw_oBs}{s^2+Bs+w_o^2} h(s)=s2+Bs+wo2AwoBs
其中, w o w_o wo 是带通的“中心频率”,也就是想要通过频率的中心点频率。 B B B是带通的频宽比,注意此处频宽比是一个相对于中心频率的比例,比如:
w o = 50 ∗ 2 ∗ p i w_o=50*2*pi wo=502pi
B = 0.2 B=0.2 B=0.2
表达的意义是设定中心频率为50Hz,带通的带宽为50*0.2=10Hz。

带通滤波器的伯德图

设定“中心频率”为50Hz,频宽比为0.4。用matlab绘制伯德图,如下:
带通滤波器的幅频特性
可见,仅仅在50Hz附近有大于0的增益,其他频率点都被抑制了。于是就有了“带通”的效果。

离散化

上述都是在连续域中分析的,但是对于数字控制应用,它是无法落地实现的,所以我们需要对连续域模型进行离散化分析。

Z变换

利用Z变换可以离散化。也可以利用matlab对S函数进行Z变换,选定离散时间Ts=0.0002,则其Z变换如下:
F ( z ) = 0.0012557 z − 0.0012557 z 2 − 1.996 z + 0.999920 F(z)=\frac{0.0012557z-0.0012557}{z^2-1.996z+0.999920} F(z)=z21.996z+0.9999200.0012557z0.0012557

差分方程

z变换后很自然能得到差分方程,只需要对分子分母除以 z z z的最高次幂:
Y X = 0.0012557 X k − 1 − 0.0012557 X k − 2 1 − 1.996 X k − 1 + 0.999920 X k − 2 \frac{Y}{X}=\frac{0.0012557X_{k-1}-0.0012557X_{k-2}}{1-1.996X_{k-1}+0.999920X_{k-2}} XY=11.996Xk1+0.999920Xk20.0012557Xk10.0012557Xk2
有了差分方程,程序的实现可以落到实地。在Matlab的m文件中编写matlab function为例说明:

function Y = BandFilter(X)
%#codegen
%% 中间变量定义及初始化
Num0 = 0;
Num1 = 0.0012557;
Num2 = -0.0012557;

Den0 = 1;
Den1 = -1.996;
Den2 = 0.999920;

persistent Xk_1; %1次的输入
persistent Xk_2; %2次的输入

persistent Yk_1; %1次的输出
persistent Yk_2; %2次的输出

if isempty(Xk_1)   Xk_1 = 0;
end
if isempty(Xk_2)   Xk_2 = 0;
end
if isempty(Yk_1)   Yk_1 = 0;
end
if isempty(Yk_2)   Yk_2 = 0;
end
%% 执行计算
Temp = Num0*X + Num1*Xk_1 + Num2*Xk_2 - (Den1*Yk_1 + Den2*Yk_2);
Y = Temp/Den0;
Xk_2 = Xk_1;
Xk_1 = X;
Yk_2 = Yk_1;
Yk_1 = Y;

Simulink仿真

利用Sum模块将50Hz、1Hz、500Hz正弦信号,以及直线信号、随机信号,这5个信号相加,得到一组带有谐波的信号注入到带通滤波器,结构图如下所示:
带通滤波器的Simulink仿真
从仿真结果可以看到:滤波后,除了50Hz的波形被保留下来,其他波形都被滤除了。可见,带通滤波器在杂波信号中获取指定次的谐波有较好的效果。
在这里插入图片描述

参考文献

二阶滤波器的标准传递函数

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133885.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python2安装_python安装不了

    Python2安装_python安装不了py2exe相信大家都知道,一个能够打包Python程序变成可执行文件的Python库。用起来很简单,但是好像还是有限,像opencv这样的库还是没有办法打包等。我安装的时候遇到了一小点问题,分享给大家:Python3安装py2exe安装直接使用pipinstallpy2exePython2安装py2exepython2安装的时候无法直接使用pipinstallpy2exe,…

    2025年10月22日
    3
  • asp.net中Session小例子

    asp.net中Session小例子登录界面aspx代码如下:functionisempty(){vartxt_id=document.getElementById(“txt_userID”);if(txt_id.value==””){alert(“请输入用户名!”);

    2022年7月25日
    6
  • net start命令发生系统错误5和错误1058的解决方法

    net start命令发生系统错误5和错误1058的解决方法文章来源:1.netstart命令netstart命令用于开启服务,格式为:netstart[服务名]2.打开SqlServer的默认实例服务[Win+R]快捷键—>cmd—>netstartmssqlserver提示错误“发生系统错误5”,截图如下:3.错误分析发生这个错误的原因是win7/win8命令提示符管理员和非管理员权限有区别,需要

    2022年7月26日
    5
  • Python的八种数据类型[通俗易懂]

    Python的八种数据类型[通俗易懂]Python的八种数据类型八种数据类型分别是:number(数字)、string(字符串)、Boolean(布尔值)、None(空值)list(列表)、tuple(元组)、dict(字典)、se

    2022年7月5日
    28
  • 案例上手 Python 数据可视化

    案例上手 Python 数据可视化课程亮点6个常用的数据可视化工具使用方法 20个案例贯穿各个工具的学习过程 基于GUI/HTML/Web网站多种绘图风格 中、美、日三国不同思想的制图工具 从静态到交互,满足不同需要的图示课程背景数据可视化是数据分析和机器学习的重要环节,比如数据清洗、特征工程、机器学习、数据分析(特别是报告)、评估等环节都会用到“数据可视化”技术。数据可视化同时还广泛存在于各…

    2022年6月16日
    24
  • 爱奇艺vip会员账号共享怎么用_爱奇艺的vip都和谁有合作

    爱奇艺vip会员账号共享怎么用_爱奇艺的vip都和谁有合作之前没事的时候,使用nmap检测到路由器存在弱口令admin今天没事登录路由器看看哪台机器流量比较多,刷新了几次流量统计,发现10.0.0.81的机器一直排的首位,流量蛮大,于是想看看这台机器在干什么打开我的kali系统,启动arpspoof,准备命令arpspoof-ietho-cown-t10.0.0.8110.0.0.1启动Wireshark,设置过滤条件i

    2022年9月28日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号