|
【电源相关招聘】05/17更新 第一次发帖,跟在公司写报告一样,不知道如何从最简单的部分展开以及组织语言,大概列个框架,写写自己的理解! 1、RC低通滤波时域分析 2、RC低通滤波频域分析 3、软件上常用滤波算法 4、Z变换(离散化) 1、 RC低通滤波时域分析 不废话,先上图,典型的RC滤波电路如下: 工程师们对此电路都极为熟悉吧,不管直流、交流、脉冲信号都可以用它,不管什么产品原理图上必定都有这个玩意,先从我们最初认识它的时域开始吧,尽管现在已经退化到看见一阶微分方程就想死的地步^^。首先电容电流: 根据基尔霍夫电压定律写出如下微分方程: ![]() 由于Vi 的单位是V,所以RC的单位则是时间,也就是大家熟知的时间常数t = RC。 OK,至此大家是不是觉得一阶系统还是相当简单吧,那么如何求解这一阶微分方式还是交给数字本身吧,结果如下: 假设电容初始电压为0. Mathcad 计算如下: 一阶RC系统的阶跃响应曲线如下:![]() ![]() 2、 RC低通滤波频域分析 图1简化如下, ![]() 以电容电压为输出,电路的网络函数为: ![]() 令: Wc即为截止频率。则幅值和相角函数如下: 根据上边公式画出一阶RC低通滤波的幅频和相频特性曲线,Mathcad计算如下:![]() ![]() ![]() 幅频特性曲线改用对数坐标如下: ![]() 频域大家搞电源的接触比较多,相对熟悉,我就埋个坑先从软件上常用的滤波算法说起吧。 3、 软件上常用滤波算法 当年还是菜鸟时,在网上流传有常用的10种软件滤波算法(最初源自21ic匠人之手),简单介绍如下: 1) 限幅滤波法 先根据经验判断,确定两次采样允许的最大偏差值,设为A。 每次检测到新采样值时进行判断: (1)如果本次新采样值与上一次滤波效果之差<=A,则本次采样值有效,令本次滤波结果=新采样值; (2)如果本次采样值与上次滤波结果之差>A,则本次采样值无效,放弃本次采样值,本次滤波结果=上次滤波结果。 2) 中位值滤波法 连续采样N次值,把采样值按大小排列,取中间值为本次有效值。 3) 算术平均滤波法 连续取N个值进行算术平均运算。 N较大时,信号平滑度较高,但灵敏度较低;N较小,信号平滑度低,但灵敏度较高。 4) 递推平均滤波法 把连续N个采集值看成一个队列,每次采集到的新数据放入队尾,并扔掉原来队首的数据。把队列中的N个数据进行平均计算,即可获得新的滤波结果。 5) 中位值平均滤波法 中位值平均滤波法又称脉冲干扰平均滤波法,相当于“中位值滤波法”+“算术平均滤波法”。 连续采集N个数据,去掉一个最大和最小值,然后计算N-2个数的平均值。 6) 递推中位值平均滤波法 相当于“中位值滤波法”+“递推平均滤波法”。 这种方法把连续N个值看成一个队列,每次采集到一个新数据放入队尾,并扔掉原来队首的值。 把队列中的N个数据先去掉一个最大值和最小值,然后计算N-2个数据的平均值。 7) 限幅平均滤波法 相当于“限幅滤波法”+“递推平均滤波法”。 每次采样先进行限幅处理,再进行队列平均滤波处理。 8) 一阶滞后滤波法 本次结果滤波结果 = a*本次采样值 + (1-a)*上次结果。 a代表滤波系数,a = 0~1。 只列出8个吧,有兴趣的朋友可以参考附件。仔细看上述8种方法,基本都很好理解。 后边我会针对 中值平均滤波 和 一阶滞后滤波 2种重点分析。 ===================================================== 不过分析之前,先提出个问题:在一阶滞后滤波算法中, 为什么a的值必须在0~1之间? 在0~1之间,a的值到底该怎么选取,如何跟硬件上的RC参数对应起来呢? 这个问题当年困惑了我好久(别笑话俺额),网上也没有深入讲解,这个就是俺发此帖子的初衷,希望大家多讨论哈~ 上边的坑先埋着,先从Z变换说起吧~ 4、 Z变换(离散化) 频率分析中一阶RC低通滤波在S域的传递函数如下: ![]() 这里我们采用一阶后向差分法进行z变换。 (注:Z变换方式有很多种,如一阶前向差分、一阶后向差分、双线性变换法等,不多说了) Z变换: T表示采样周期。代入S域传递函数中: 继续推导如下:![]() 继续转化为差分方程: ![]() 至此,通过Z变换我们把S域的传递函数转化为时域的差分方程。 转自电源网
|