赞
踩
简单介绍常用低通滤波器的设计思路,以及将低通滤波器使用matlab和c语言实现。抛砖引玉,为刚接触这一领域的同学提供思路,也为后续的进阶学习铺路。
本来默认这篇帖子的阅读者均是学习过信号与系统或类似课程,就不对这一基本概念进行赘述。但为了这篇博客更好读懂,在这里做一些简单的非专业描述,有过基础的同学可跳过。
在信号学科中,无论是什么类型的信号,都可以通过傅里叶变换,将一个任意信号分解成由若干“权重不一”“频率不同”
的三角函数信号(即正弦余弦信号)的线性组合(即直接叠加在一起)。因此对于一个信号而言,根据不同的三角函数信号组合方式便有了不同的信号特性。如果其信号中包含的小频率(低频)信号权重更大,则其低频的特性明显。同理,根据不同频率信号权重的占比具有不同的信号特性。
举个例子,声音就是一种信号,有人声音低沉,有人声音高亮,这是因为不同的人的声带等发生结构发出的声音的频率特性不同导致的。
原本是介绍低通滤波器,为什么要介绍信号。
信号具有频率特性,是由其组成成分
决定的。
滤波器也具有频率特性,是由其结构特征
决定的。
不同的滤波器对于不同频率的信号具有不同的接受程度
,这种接收程度即对信号的增益
。根据这一特点,可以将滤波器分为低通滤波器、带通滤波器、带阻滤波器、高通滤波器等。顾名思义,就是对于低于某一频率的信号段更能接受(增益较大),对于中间某一个范围频率的信号段更能接受,对于高于某一频率的信号段更能接受。
这里面还有好很多专业的描述,例如如何衡量接受程度,这个接受的范围如何量化,滤波器的相位问题以及一些专业名词如截止频率通带频率阻带频率等。
继续举例子,麦克风中就包含滤波器,有些麦克风质量较差,容易录不进去低频的声音,也容易导致高音失真沙哑,都是因为这个麦克风对于高频信号的接受程度低,采集声音时容易将声音信号压缩变质。
以常见的一阶低通滤波器为例,其传递函数形式为
G
(
s
)
=
1
s
ω
c
+
1
G(s)=\frac{1}{\frac{s}{\omega _c}+1}
G(s)=ωcs+11
其中,
ω
c
\omega _c
ωc为截止角频率。
设计一个截止频率
f
c
=
5
h
z
f_c=5hz
fc=5hz的滤波器,则
ω
c
=
2
π
f
c
\omega _c=2\pi f_c
ωc=2πfc,在matlab中实现,并观察其伯德图(幅相曲线)。
wc = 2*pi*5;
%截止频率为5hz
a=[1];
b=[1/wc,1];
H = tf(a,b);
bode(H);
grid;
伯德图如下
可以根据自己的需要设计对应的滤波器。
大多数工程上都需要使用低通滤波器来对数据进行滤波处理,在此记录一下c语言实现的基本思路。
由于计算机系统属于离散系统,因此需要对滤波器进行离散化,得到差分方程。
离散化(Z变换)有三种方法(只给结论,不作讨论)
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。