例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
顾名思义,滤波器就是具有频率选择作用的电路和运算处理系统。
滤波器按照使用器件的不同分为有源滤波器和无源滤波器。无源滤波器由无源器件电阻、电容、电感组成,利用感容器件的阻抗特性随频率变化而变化的原理。
无源滤波器的优点是结构简单,不需要电源供电,可靠性高,缺点是通频带内的信号能量会有损失,使用感性器件会引起电磁感应,电感较大时会影响滤波器的体积。
有源滤波器是由有无源器件和有源器件组成,通常有源滤波器由集成运放和电阻,电容组成,不需要电感,因此电路体积小,重量轻。有源滤波器的优点是其输出阻抗很低,输入阻抗和开环增益较高,多级相连时相互影响比较小,很容易构成多级滤波器,而且滤波器的体积较小,缺点是由于有源器件,需要电源供电,要消耗功率可靠性不如无源滤波器,不适用于一些高压、大功率场合。
滤波器特性可以用其频率响应来描述,按其特性的不同,可以分为低通滤波器,高通滤波器,带通滤波器和带阻滤波器等。滤波器的阶数,滤波器的阶数是指在滤波器的传递函数中有几个极点,阶数同时也决定了转折区的下降速度,一般每增加一阶(一个极点)。
决定滤波器阶数的技术指标主要有:(1)通带截至频率(2)阻带截止频率(3)通带衰减(4)阻带衰减。
按照频率响应的不同,滤波器可以分为巴特沃斯(Butterworth)滤波器、贝塞
尔(Bassel)滤波器、切比雪夫(Chebyshev)滤波器、椭圆(Eliptic)滤波器等种
类。这四种滤波器的特性比较如表所示:
滤波器种类 | 特性 |
---|---|
巴特沃斯滤波器 | 通带和阻带没有起伏,在通带范围内的特性曲线是最平坦的 |
贝塞尔滤波器 | 阻带内的衰减比巴特沃斯小,截止特性差,具有良好的相移特性 |
切比雪夫滤波器 | 具有更陡峭的过渡带,在通带内等波纹起伏 |
椭圆滤波器 | 具有最陡峭的过渡带衰减特性,截止特性最好 |
代码如下(示例):
%% Parameter Interface
Frequence0 = 60; %单位:Hz
Frequence1 = 1e3; %单位:Hz
Frequence2 = 1.8e3; %单位:Hz
SampleFre = 4e3; %单位:Hz
SampleLen = SampleFre; %采样点数
%% Main
%-------------------产生三路信号
t = 0:1/SampleLen:1/SampleFre*(SampleLen-1);
SignalData0 = sin(2*pi*Frequence0*t);
SignalData1 = 2*sin(2*pi*Frequence1*t);
SignalData2 = 3*sin(2*pi*Frequence2*t);
SignalData3 = SignalData0+SignalData1+SignalData2;
figure;hold on
plot(t(1:150),SignalData0(1:150),'b')
plot(t(1:150),SignalData1(1:150),'r')
plot(t(1:150),SignalData2(1:150),'k')
title('输入信号成分')
hold off
figure;plot(t(1:150),SignalData3(1:150))
title('三路信号求和')
%-------------------输入信号频域图
FFT_Data = abs(fft(SignalData3));
m = FFT_Data(1:length(FFT_Data)/2);
n = length(SignalData3);
f = (1:n/2)*(SampleFre/n);
figure;
plot(f,m)
xlabel('Frequency')
ylabel('Power')
title('输入信号频谱')
输入信号为:sin(2pi60t)+2sin(2pi1000t)+sin(2pi18000t)
输入信号的时域图:
利用命令filterDesigner启动matlab滤波器设计模块,如下图所示:
滤波器的类型为低通巴特沃斯滤波器,滤波器阶数选择为最小阶数;
(1)通带截至频率为800Hz
(2)阻带截止频率为1600Hz
(3)通带衰减为1dB
(4)阻带衰减为80dB。
滤波器的幅频和相频特性如下图所示:
matlab自带的滤波器设计工具,可以将该设计好的滤波器变量导出至工作区
工作区就会出现一个Hd的对象,再用filter函数对输入信号进行滤波,代码如下:
%% 滤波器设计
filterDesigner
%% 信号滤波后
y = filter(Hd,SignalData3);
figure;plot(t(1:150),y(1:150));title('输出信号时域')
y_Data = abs(fft(y));
m = y_Data(1:length(y_Data)/2);
n = length(y);
f = (1:n/2)*(SampleFre/n);
figure;
plot(f,m);
title('输出信号频谱')
xlabel('Frequency')
ylabel('Power')
输入信号经过滤波器滤除掉了高于频率1.6KHz的信号分量。
所以输出信号时域图为:
输出信号的频域图为: