Text/zinghd
[作者简介]
作者还没有想出如何描述自己。
在阅读飞行控制的源代码时,我们经常会看到类似下面这样的算法
thr _ LPF+=(1/(1+1/(2.0f * 3.14 f * T))*(height _ thr-thr _ LPF)
从变量名thr_lpf可以知道这是节气门低通滤波后的值,但是为什么这个算法可以实现低通滤波呢?它的截止频率是多少?让我们一步一步揭开背后的秘密算法。
首先,整理以上公式得到:
订单:
您可以获得:
所以程序实际上对应这个迭代过程。
电路中的滤波
为了知道什么是低通滤波,低通滤波得到的电路图如下:
可用电压的传递函数为:
增加
Wc是截止角频率
Fc截止频率
[数]离散化
从S域到Z域,通过Z的逆变换得到差分方程。
z变换(有很多方法,如一阶前向差分、双线性变换等。这里,使用一阶后向差分方法)
在一阶反向差分法中
其中t是采样周期,被带入S域传递函数
通过z逆变换求解差分方程后,我们可以得到:
做
可用性
这里的公式和程序里的很像,现在是差系数的问题
为什么
因为
所以
拖入
可用性
对滤波电路进行离散分析后,得到源程序的迭代过程。两者有相同的数学描述,硬件电路可以达到低通滤波的效果,所以这个程序可以相同,我们通过计算可以得到原来的程序是截止频率fc=1Hz,所以用MATLAB来测试滤波器的性能。
%基波:振幅为3的1Hz正弦波
signal _ Original _ 1 = 3 * sin(2 * pi * t);
%噪声函数被指定为基波的1/310赫兹30赫兹100赫兹200赫兹300赫兹400赫兹500赫兹正弦波
noise _ White _ 1 = sin(2 * pi * 10 * t)+sin(2 * pi * 30 * t)+sin(2 * pi * 50 * t)+sin(2 * pi * 100 * t)+sin(2 * pi * 200 * t)+sin(2 * pi * 300 * t)+sin(2 * pi * 400 * t)+sin(2 * pi * 500 * t);
%构造的混合信号
mix _ Signal = Signal _ Original+Noise _ White;
我们用MATLAB自带的有源一阶RC低通滤波器(一阶巴特沃兹低通滤波器)进行比较
设计滤波器一阶RC滤波器设计
根据:
设计截止频率fC=1Hz的一阶RC滤波器;
其中混合信号Mix_Signal被输入并被滤波以获得结果LPF_RC
Fs = 10000%采样频率10KHz
fc = 1;%截止频率1Hz
a = 1:1:长度(t)
% t采样周期等于1/采样频率
LPF 1 = LPF 0+(1/(1+1/(2.0 * 3.14 *(1/Fs)* fc))*(Mix _ Signal(a)-LPF 0);
lpf0 = lpf1
LPF _ RC(a)= LP f1;
结束
巴特沃斯滤波器的设计
输入混合信号Mix_Signal,滤波后得到结果Butter_Filter
%截止频率fc
WC = 2 * fc/Fs;
%返回具有归一化截止频率Wn的低阶低通数字巴特沃兹滤波器的传递函数系数。
[b,a]=黄油(lv,Wc,' low ');
Butter_Filter=filter(b,a,Mix _ Signal);
快速傅里叶变换
波形中包含的正弦波的频率和幅度可以通过快速傅里叶变换来分析。
得到b=[T 0],a =[RC+T-RC];
b =[t0];
a =[钢筋混凝土+T-钢筋混凝土];
[h,w]=freqz(b,a);
set(gca,‘XScale’,‘log’)
曲线图((w*Fs/( 2* pi))、20* log10( abs(h))、‘g’)
Butterworth滤波器是利用双线性变换的RC标准滤波器,MATLAB提供自己的Butter函数计算分子和分母系数。
[b,a]=黄油(lv,Wc,' low ');
[h,w]=freqz(b,a);
图((w*Fs/( 2* pi))、20* log10( abs(h))、‘b’);网格;
将三种方法的RC滤波器幅频特性曲线画在一起,可以看出100Hz之前的曲线几乎完全重合,理论性能与实际性能一致。
回到原来的算法
thr _ LPF+=(1/(1+1/(2.0f * 3.14 f * T))*(height _ thr-thr _ LPF)
你能在这么短的算法里想到这么多数学原理吗?
参考数据
http://www . 360 doc . com/content/15/0714/22/22888854 _ 484947052 . shtml
https://wenku.baidu.com/view/85f8dc20dd36a32d7375814d.html
https://wenku.baidu.com/view/3efd1b0e51e79b8969022627.html
【网络函数】在动态电路励磁作用下,响应(输出)相量与励磁(输入)相量之比称为网络函数,记为H..
[z变换] Z变换(英文:Z-transform)可以将时域信号(即离散时间序列)变换成复频域的表达式。它在离散时间信号处理中的位置与拉普拉斯变换在连续时间信号处理中的位置相同。
关注微信微信官方账号,回复【rc】获取本文参考和MATLAB源代码。同时欢迎添加作者微信(weibohandi001)交流。
位置
重点观察分析无人机在行业中的应用,有深度,有争议,有真相,有干货
因“核心”缺失而衰落的联想,有多少无人机企业缺少“大脑”?
【干货】飞行控制相关地磁知识总结
【干货】如何对四轴飞行器建模分析?
1.《一阶低通滤波器 【干货】飞控中的一阶RC低通滤波算法》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《一阶低通滤波器 【干货】飞控中的一阶RC低通滤波算法》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guonei/1474958.html