![]() |
会搭讪的皮蛋 · 刘晓明大使夫妇举行庆祝建国65周年侨学界招待 ...· 8 月前 · |
![]() |
快乐的马克杯 · 2018年度市科技局绩效评价报告-财政信息- ...· 10 月前 · |
![]() |
爱跑步的篮球 · Eplan electric p8 ...· 10 月前 · |
![]() |
要出家的米饭 · 手机推荐_原创频道_什么值得买· 11 月前 · |
![]() |
无邪的柑橘 · 阴阳师真蛇时大蛇为什么要带蚌精? - 知乎· 1 年前 · |
如果本文帮到了你,帮忙点个赞;
如果本文帮到了你,帮忙点个赞;
如果本文帮到了你,帮忙点个赞;
HPF 一阶RC高通滤波器详解(仿真+matlab+C语言实现)
LPF 一阶RC低通滤波器详解(仿真+matlab+C语言实现)
低通滤波器(
LPF
)可以滤除频率高于截止频率的信号,类似的还有高通滤波器,带通滤波器,带阻滤波器。一阶RC低通滤波器的电路如下图所示;
因此可以将③式转化为:
x
i
−
y
i
=
R
C
△
T
y
i
−
y
i
−
1
⋯
④
因此最终滤波输出的序列
y
i
如下所示;
同样进行简化之后可以得到;
y
i
=
α
∗
x
i
+
(
1
−
α
)
∗
y
i
−
1
后面可以根据这个公式进行程序设计;
另外,截止频率
f
c
满足;
f
c
=
2
π
R
C
1
⋯
⑤
这里直接根据公式③构建一搞
Subsystem
;
V
i
n
(
t
)
−
V
o
u
t
(
t
)
=
R
C
d
t
d
V
o
u
t
Subsystem
整体的仿真图如下:
其中
Sine Wave
频率设置为
2*pi*50
其中
Sine Wave1
频率设置为
2*pi
所以这里需要使得
2*pi*50
的信号衰减,所以根据,截止频率
f
c
的计算公式,可以改变增益的值,具体如下所示;
最终的仿真的运行结果如下图所示;
Gain Value
为
0.005
Gain Value
为
0.0318
根据公式
y
i
=
α
∗
x
i
+
(
1
−
α
)
∗
y
i
−
1
实现数字一阶RC低通滤波器,具体matlab程序如下;
运行结果如下所示;
low_filter.h
typedef struct int16_t Input; int16_t Output[2]; int32_t FilterTf; int32_t FilterTs; int32_t Kr; int32_t Ky; } low_filter; void low_filter_init(low_filter *v); int16_t low_filter_calc(low_filter *v);
FilterTs
为采样时间;FilterTf
为RC
时间常数具体参考下图;
low_filter.c
void low_filter_init(low_filter *v){ v->Kr = v->FilterTs*1024/(v->FilterTs + v->FilterTf); v->Ky = v->FilterTf*1024/(v->FilterTs + v->FilterTf); int16_t low_filter_calc(low_filter *v){ int32_t tmp = 0; tmp = ((int32_t)v->Kr*v->Input + v->Ky*v->Output[1])/1024; if(tmp>32767){ tmp = 32767; if( tmp < -32768){ tmp = -32768; v->Output[0] = (int16_t)tmp; v->Output[1] = v->Output[0]; return v->Output[0];
7 C语言运行结果
实际测试结果
![]() |
快乐的马克杯 · 2018年度市科技局绩效评价报告-财政信息-衡阳市科学技术局 10 月前 |
![]() |
要出家的米饭 · 手机推荐_原创频道_什么值得买 11 月前 |
![]() |
无邪的柑橘 · 阴阳师真蛇时大蛇为什么要带蚌精? - 知乎 1 年前 |