滤波器基础:抗混叠_ad转换前加抗稳叠-程序员宅基地

技术标签: Algorithm  

摘要:在数据采样系统中,高于二分之一采样率的频率成分“混叠”(搬移)到有用频带。大多数时间,混叠是有害的副作用,所以在模/数(AD)转换级之前,将“欠采样”的较高频率简单滤除。但有时候,特意设计利用欠采样,混叠使得AD系统作为混频器工作。 本应用笔记讨论数据采样系统的不同滤波要求,介绍混叠以及用于抗混叠的不同类型滤波器。

滤波是一种我们往往视为当然的常见过程。我们在打电话时,接收器滤除其它所有信道,使我们仅仅接收到特定的信道。当我们调节立体声系统的均衡器时,利用带通滤波器选择性增大或降低特定频带的音频信号。

滤波器在几乎所有数据采样系统中扮演着重要角色。大多数模/数转换器(ADC)都安装有滤波器,滤除超出ADC范围的频率成分。有些ADC在其结构本身上就具有滤波功能。

我们接下来讨论数据采样系统、滤波要求以及与混叠的关系。

背景
数据采样系统能够高精度处理的最大频率成分称为其奈奎斯特极限。采样率必须大于或等于输入信号最高频率的两倍。如果违反该规则,在有用频带内就会出现多余或有害的信号,称之为“混叠”。

例如,为了数字化1kHz信号,要求最低采样率为2kHz。在实际应用中,采样率通常较高,以提供一定的裕量,降低滤波要求。

为帮助理解数据采样系统和混叠,我们以传统的电影摄影为例。

在西部老片中,当马车加速时,车轮正常加速转动,然后看起来车轮速度却变慢了,再然后似乎停止了。当马车进一步加速时,车轮看起来像在倒转。实际上,我们知道马车没有倒走,因为其它动作都一切正常。什么原因造成了这种现象?答案就是:帧速率不够高,不足以准确捕获车轮的转动。

为帮助理解,假设在马车车轮上贴一个看得到的标记,然后车轮转动。然后我们按时间拍摄照片(或采样)。由于电影摄影机通过每秒捕获一定数量的照片来捕获动作,所以本质上是数据采样系统。就像胶片采用车轮的离散图像一样,ADC捕获的是运动电信号的一系列快照。

当马车首次加速时,采样率(电影摄影机的帧速率)远远高于车轮的转速,所以满足奈奎斯特条件。摄像机的采样率高于车轮转速的两倍,所以能够准确描述车轮的运动,我们看到车轮加速的样子(图1a和1b)。

在奈奎斯特极限下,我们在180度范围内看到两个点(图1c)。人眼一般很难明确分辨这两个点的时间,这两个点同时出现,车轮表现为停止。在这种车轮转速下,转动速率是已知的(根据采样率),但搞不清楚转动方向。当马车继续加速时,不再满足奈奎斯特条件,看到车轮的方式可能有两种:我们“看到”车轮在正转,其他人则看到是倒转(图1d)。

马车车轮的例子
图1. 马车车轮的例子。

这两种方向都可以看做是正确的方向,取决于您如何“看”车轮,但我们知道已经发生了信号混叠。也就是说,系统中出现了有害的频率成分,我们不能将其与真实值区分开,同时出现了正转和倒转的运动信息。我们一般看到倒转成分或正转成分的“约数”或“镜像”。由于是眼/脑相结合的方式处理数据,因此我们并不能察觉到车轮前转的主要信息。另一种有意思的现象是采样率与车轮转速严格相等时,由于标记始终出现在车轮的相同位置,所以数据几乎没有提供有用信息。在这种情况下,没有人能清楚车轮在转动还是静止。

现在转入数学领域,假设车轮为单位圆,采用正弦和余弦坐标。如果在余弦值的正向和负向峰值采样(180度错相),那么就满足奈奎斯特条件,能够利用两个采样数据点重构原始余弦值。所以,奈奎斯特极限是重构原始信号的关键。当增加的点越来越多时,复现原始信号的能力就提高了。

转到频域,图2所示为采样数据系统的频率响应。注意,数据在采样率的倍数处重复(原始信号的“镜像”);这是采样数据系统的一种基本特征。图2a中,满足奈奎斯特条件,有用频带内没有混叠现象。然而,在图2b中,由于有用频带内的最高频率大于二分之一采样率,不再满足奈奎斯特条件。重叠的区域发生了混叠;频率为fT的信号也出现在fT’处,与马车车轮的混叠相似。

采样数据系统频率响应,无混叠。
图2a. 采样数据系统频率响应,无混叠。

采样数据系统频率响应,发生混叠。
图2b. 采样数据系统频率响应,发生混叠。

欠采样
欠采样是一种功能强大的工具,可有效用于所选应用。欠采样允许ADC作为一个混频器,能够接收调制高频载波信号并产生较低频率的镜像。这种方式下,就像下变频器。另一种主要优点是允许ADC的采样率低于奈奎斯特频率,一般具有较明显的成本优势。例如,假设调制载波为10MHz,带宽为100kHz (±50kHz,中心频率为10MHz)。以4MHz进行欠采样,产生1阶和与差项(f1 + f2和f1 - f2),分别为14MHz和6Mz;2阶项(2f1、2f2、2f1 + f2、f1 + 2f2、| 2f1 - f2 |、| f1 - 2f2 |),分别为8MHz、20MHz、18MHz、2MHz、24MHz和16MHz。出现在2MHz处的镜像信号为有用信号。注意,我们的原始信号在10MHz,通过对其进行数字化在2MHz产生了镜像。现在,我们可以在数字域进行信号处理(滤波和混频),恢复原始50kHz信号。该过程无需大幅的模拟处理,这是其主要优势之一。由于所有处理都在数字域完成,如果需要对电路的性能和特性进行更改,只需修改软件即可。相对而言,对于模拟设计,如果需要更改电路性能,需要改变电路硬件元件和布局,并且成本相当高。

欠采样的一项缺点是有用频带内可能出现有害信号,您不能将其与有用信号区分开。此外,欠采样时,ADC输入的频率范围往往非常宽。在上例中,即使采样率为4MHz,ADC前端仍然必须采样10MHz信号。相对而言,如果在ADC之前利用模拟混频器将调制载波信号向下搬移到基带,那么ADC的输入带宽只需要为50kHz,而非4MHz,降低了ADC前端和输入滤波要求。

欠采样示例
图3a. 欠采样示例。

欠采样数字化的镜像信号(1阶和2阶)
图3b. 欠采样数字化的镜像信号(1阶和2阶)。

过采样
过采样提供所谓的处理增益。在过采样时,以较高采样频率获得多出实际需要的采样数量,然后对数据滤波,从而有效降低系统的噪底(假设噪声为宽带白噪声)。这不同于平均,后者是获取很多采样,噪声被平均。可以这么理解过采样:如果输入信号来自于扫描频率的信号源,频谱则可以分为多个范围或“容器”,每个容器的带宽固定。宽带噪声分散在整个有用频率范围内,所以每个容器具有特定量的噪声。现在,如果提高采样率,那么频率容器的数量也增多。在这种情况下,出现的噪声量仍相同,但我们有更多的容器可供容纳噪声。然后我们利用滤波器滤除超出有用频带的噪声。结果就是每个容器的噪声减少,所以就通过过采样有效降低了系统的噪底。

举例说明,如果我们有一个2ksps ADC (下式中使用1kHz奈奎斯特极限)和1kHz信号,ADC之后为1kHz数字滤波器,处理增益由下式给出:-10 × log (1kHz/1kHz) = 0dB。如果们将采样率增大至10ksps,处理增益现在为-10 × log (1kHz/5kHz) = 7dB,或者说大约1位分辨率(1位大约相当于信噪比(SNR)提高6dB)。通过过采样,噪声没有减少,而是分散在更宽的带宽内;将部分噪声置于有用带宽范围之外,效果就相当于减少了噪声。这种噪声改善基于以下公式:

SNR改善(dB) = 10 × LOGA/B,其中A等于噪声,B等于过采样噪声。

表述这一过程的另一种方式是:过采样降低了带内RMS量化噪声,系数为过采样率的平方根。或者,如果噪声降低二分之一,则相当于3dB有效处理增益。不要忘了,我们这里仅讨论了宽带噪声。过采样不能简单消除其它噪声源和其他误差。

抗混叠滤波器
有了以上背景知识后,我们现在讨论抗混叠滤波器。在选择滤波器时,目标是提供一个截止频率,能从ADC输入中消除有害信号或至少将其衰减至不对电路形成负面影响。抗混叠滤波器是满足这一要求的低通滤波器。如何选择正确的滤波器?需要考虑的关键参数是在通带内的衰减量(或纹波)、阻带内的预期滤波器滚降、过渡区域的陡度,以及不同频率通过滤波器时的相位关系(图4a)。

实际滤波器
图4a. 实际滤波器。

理想滤波器具有“砖墙”响应(图4b),也就是说其过渡比是无限大的。然而,在实际应用中不可能存在这种情况。滚降越陡,滤波器的“Q”或品质因子越高;Q因子越高,滤波器的设计就越复杂。较高的Q因子会造成滤波器不稳定以及在相应的拐点频率下自振。选择滤波器的关键是了解干扰信号的频率及对应幅值。例如,对于手机,设计者知道邻近信号的最差工作条件幅值和位置,从而有针对性地进行设计。并不是所有信号都能在频域预测,甚至有些已知干扰信号太大,不能足够地衰减。但是,根据环境和应用,您可考虑已知干扰和设计,最大程度降低随机干扰,确保工作更可靠。

理想滤波器
图4b. 理想滤波器。

已知有用信号频率后,利用简单的滤波程序确定所需的滤波器结构,以满足通带、阻带和过渡区域要求。在四种基本滤波器类型中,每种都有其各自的优势(图5)。

四种基本的滤波器类型
图5. 四种基本的滤波器类型

例如,巴特沃斯(Butterworth)滤波器的通带区域最平坦,意味着在相应频率范围内的衰减最小;贝塞尔(Bessel)滤波器的滚降较平缓,但其主要优势是线性相位响应,意味着每种频率成分在通过滤波器时的延时是相等的;由于群延迟定义为相位响应相对于频率的偏差,所以线性相位响应通常指的是固定群延迟。切比雪夫(Chebyshev)滤波器的滚降较陡,但在通带内纹波较大。椭圆(Elliptic)滤波器的滚降最陡。对于最简单的抗混叠滤波器,简单的单极点无源RC滤波器往往是可以接受的。在其它情况下,有源滤波器(即使用运放)比较合适。有源滤波器的一项优势是多阶滤波器,滤波器对外部元件值不太敏感,特别是滤波器的“Q”值。

抗混叠滤波器通常不必严格对应拐点频率的位置,所以设计时具有一定余地。例如,如果您需要最大平坦度,但在通带内仍然有太大衰减,只需将拐点频率移远即可解决问题。如果阻带衰减太小,则可提高滤波器的极点数。另一种方案是在滤波后将信号放大,提高信号相对于有害信号的幅值。

对原始信号使用抗混迭滤波器的一个示意图如下。假设你只想采集频率为f1和f2的信号。注意f3位于滤波器的过渡带。这样,不想要的f3会被衰减但仍然会有残留部分被采样。同时注意f4位于过渡带之外,因此会被完全滤除。

总结:
l 输入信号中可能含有高于采样频率的信号,需使用抗混叠滤波器去除。

l 在选择采样频率时需满足采样频率>抗混频滤波器过渡带截止频率*2。

引用:
https://www.maximintegrated.com/cn/app-notes/index.mvp/id/928

http://digital.ni.com/public.nsf/allkb/D9A2F98DA50B0D5086257560002AD2F5

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cdhuandi00/article/details/104457258

智能推荐

使用nginx解决浏览器跨域问题_nginx不停的xhr-程序员宅基地

文章浏览阅读1k次。通过使用ajax方法跨域请求是浏览器所不允许的,浏览器出于安全考虑是禁止的。警告信息如下:不过jQuery对跨域问题也有解决方案,使用jsonp的方式解决,方法如下:$.ajax({ async:false, url: 'http://www.mysite.com/demo.do', // 跨域URL ty..._nginx不停的xhr

在 Oracle 中配置 extproc 以访问 ST_Geometry-程序员宅基地

文章浏览阅读2k次。关于在 Oracle 中配置 extproc 以访问 ST_Geometry,也就是我们所说的 使用空间SQL 的方法,官方文档链接如下。http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/gdbs-in-oracle/configure-oracle-extproc.htm其实简单总结一下,主要就分为以下几个步骤。..._extproc

Linux C++ gbk转为utf-8_linux c++ gbk->utf8-程序员宅基地

文章浏览阅读1.5w次。linux下没有上面的两个函数,需要使用函数 mbstowcs和wcstombsmbstowcs将多字节编码转换为宽字节编码wcstombs将宽字节编码转换为多字节编码这两个函数,转换过程中受到系统编码类型的影响,需要通过设置来设定转换前和转换后的编码类型。通过函数setlocale进行系统编码的设置。linux下输入命名locale -a查看系统支持的编码_linux c++ gbk->utf8

IMP-00009: 导出文件异常结束-程序员宅基地

文章浏览阅读750次。今天准备从生产库向测试库进行数据导入,结果在imp导入的时候遇到“ IMP-00009:导出文件异常结束” 错误,google一下,发现可能有如下原因导致imp的数据太大,没有写buffer和commit两个数据库字符集不同从低版本exp的dmp文件,向高版本imp导出的dmp文件出错传输dmp文件时,文件损坏解决办法:imp时指定..._imp-00009导出文件异常结束

python程序员需要深入掌握的技能_Python用数据说明程序员需要掌握的技能-程序员宅基地

文章浏览阅读143次。当下是一个大数据的时代,各个行业都离不开数据的支持。因此,网络爬虫就应运而生。网络爬虫当下最为火热的是Python,Python开发爬虫相对简单,而且功能库相当完善,力压众多开发语言。本次教程我们爬取前程无忧的招聘信息来分析Python程序员需要掌握那些编程技术。首先在谷歌浏览器打开前程无忧的首页,按F12打开浏览器的开发者工具。浏览器开发者工具是用于捕捉网站的请求信息,通过分析请求信息可以了解请..._初级python程序员能力要求

Spring @Service生成bean名称的规则(当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致)_@service beanname-程序员宅基地

文章浏览阅读7.6k次,点赞2次,收藏6次。@Service标注的bean,类名:ABDemoService查看源码后发现,原来是经过一个特殊处理:当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致public class AnnotationBeanNameGenerator implements BeanNameGenerator { private static final String C..._@service beanname

随便推点

二叉树的各种创建方法_二叉树的建立-程序员宅基地

文章浏览阅读6.9w次,点赞73次,收藏463次。1.前序创建#include<stdio.h>#include<string.h>#include<stdlib.h>#include<malloc.h>#include<iostream>#include<stack>#include<queue>using namespace std;typed_二叉树的建立

解决asp.net导出excel时中文文件名乱码_asp.net utf8 导出中文字符乱码-程序员宅基地

文章浏览阅读7.1k次。在Asp.net上使用Excel导出功能,如果文件名出现中文,便会以乱码视之。 解决方法: fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);_asp.net utf8 导出中文字符乱码

笔记-编译原理-实验一-词法分析器设计_对pl/0作以下修改扩充。增加单词-程序员宅基地

文章浏览阅读2.1k次,点赞4次,收藏23次。第一次实验 词法分析实验报告设计思想词法分析的主要任务是根据文法的词汇表以及对应约定的编码进行一定的识别,找出文件中所有的合法的单词,并给出一定的信息作为最后的结果,用于后续语法分析程序的使用;本实验针对 PL/0 语言 的文法、词汇表编写一个词法分析程序,对于每个单词根据词汇表输出: (单词种类, 单词的值) 二元对。词汇表:种别编码单词符号助记符0beginb..._对pl/0作以下修改扩充。增加单词

android adb shell 权限,android adb shell权限被拒绝-程序员宅基地

文章浏览阅读773次。我在使用adb.exe时遇到了麻烦.我想使用与bash相同的adb.exe shell提示符,所以我决定更改默认的bash二进制文件(当然二进制文件是交叉编译的,一切都很完美)更改bash二进制文件遵循以下顺序> adb remount> adb push bash / system / bin /> adb shell> cd / system / bin> chm..._adb shell mv 权限

投影仪-相机标定_相机-投影仪标定-程序员宅基地

文章浏览阅读6.8k次,点赞12次,收藏125次。1. 单目相机标定引言相机标定已经研究多年,标定的算法可以分为基于摄影测量的标定和自标定。其中,应用最为广泛的还是张正友标定法。这是一种简单灵活、高鲁棒性、低成本的相机标定算法。仅需要一台相机和一块平面标定板构建相机标定系统,在标定过程中,相机拍摄多个角度下(至少两个角度,推荐10~20个角度)的标定板图像(相机和标定板都可以移动),即可对相机的内外参数进行标定。下面介绍张氏标定法(以下也这么称呼)的原理。原理相机模型和单应矩阵相机标定,就是对相机的内外参数进行计算的过程,从而得到物体到图像的投影_相机-投影仪标定

Wayland架构、渲染、硬件支持-程序员宅基地

文章浏览阅读2.2k次。文章目录Wayland 架构Wayland 渲染Wayland的 硬件支持简 述: 翻译一篇关于和 wayland 有关的技术文章, 其英文标题为Wayland Architecture .Wayland 架构若是想要更好的理解 Wayland 架构及其与 X (X11 or X Window System) 结构;一种很好的方法是将事件从输入设备就开始跟踪, 查看期间所有的屏幕上出现的变化。这就是我们现在对 X 的理解。 内核是从一个输入设备中获取一个事件,并通过 evdev 输入_wayland

推荐文章

热门文章

相关标签