深入理解STM32定时器中的输入捕获滤波器
STM32Cube学习之八:输入捕获

STM32Cube学习之八:输入捕获假设已经安装好STM32CubeMX和STM32CubeF4支持包。
Step1.打开STM32CubeMX,点击“New Project”,选择芯片型号,STM32F407ZETx。
Step2. 在Pinout界面下配置晶振输入引脚。
配置TIM2使用内部时钟源,CH1作为输入捕获通道,默认映射到PA0引脚。
配置TIM3使用内部时钟,CH1~CH4为PWM输出通道,默认映射引脚分别为PA6,PA7,PB0,PB1。
配置TIM4使用内部时钟,CH1,CH2为PWM输出通道,映射引脚分别为PD12,PD13。
配置串口,作为信息输出接口。
Step3.在Clock Configuration界面配置时钟源。
使用外部8M晶振作PLL时钟输入,并使用PLL输出作为系统时钟。
为了后面的计算方便,将系统时钟配置成160MHz。
Step4.配置外设参数。
在configuration界面中点击TIM2/ TIM3/ TIM4按钮,可以进入参数配置界面。
TIM2:在Parameter Settings页配置预分频系数为7,其计数时钟就是80MHz/(7+1)=10MHz。
计数周期(自动加载值),转换为十六进制形式,输入32bit最大值0xFFFFFFFF。
注意,TIM2的自动加载寄存器ARR和各个通道的捕获/比较寄存器CCRx都是32bit的。
在NVIC页面使能捕获/比较中断。
在GPIO页面设置捕获输入引脚下拉电阻,设置成上拉也可以,主要是为了使在没有信号输入时在输入引脚上得到稳定的电平。
TIM3:在Parameter页配置预分频系数为7,计数周期(自动加载值)为9999。
其溢出频率就是80MHz/(7+1)/(9999+1)=1kHz,这就是TIM3各通道输出的PWM信号的频率。
各通道输出PWM的占空比参数如上图红框标注,其他参数使用默认值。
按照图中参数,CH1~CH4输出的PWM周期都是1ms,而高电平时间分别是123.4us,234.5us,567.8us,678.9us。
stm32定时器原理

stm32定时器原理STM32定时器是一种非常重要的硬件模块,能够实现精确的时间控制和周期性操作。
本文将介绍STM32定时器的原理,包括定时器的基本功能、定时器的分频器、定时器的计数器、定时器的中断、定时器的输出比较和定时器的输入捕获等。
首先介绍定时器的基本功能,STM32定时器可以产生一个特定的周期性信号,在一定的时间间隔内产生触发事件,例如控制LED闪烁、蜂鸣器发声等等。
此外,定时器还可以通过设定特定的计数值来实现定时功能,如延时、计时器等等。
其次介绍定时器的分频器,STM32定时器的分频器可以设置定时器的工作频率,通常是通过将系统时钟分频来实现。
分频器的设置可以通过修改寄存器的值来实现,通常是通过设置预分频器和分频器来实现。
接着介绍定时器的计数器,STM32定时器的计数器是用来记录分频器的计数值,通过相应的计数值来确定定时器的工作周期。
定时器的计数器可以在特定的条件下自动重置或停止,以实现特定的计时或延时功能。
然后介绍定时器的中断,STM32定时器的中断可以在定时器计数器达到特定的值时触发,然后执行中断服务程序。
在中断服务程序中可以实现特定的操作,例如控制IO口状态、改变定时器的工作频率等。
接下来介绍定时器的输出比较,STM32定时器的输出比较可以将定时器的输出信号与预设的比较值进行比较,以实现特定的操作。
例如可以控制LED的亮度、PWM信号、电机控制等等。
最后介绍定时器的输入捕获,STM32定时器的输入捕获可以在外部信号产生时捕获定时器的计数值,可以用于测量脉冲宽度、频率等等。
定时器的输入捕获通常需要设置定时器的捕获模式和捕获通道等参数。
综上所述,STM32定时器是一种非常重要的硬件模块,应用广泛,我们需要充分理解其原理和应用,以实现精确的时间控制和周期性操作。
STM32输入捕获模式

STM32输入捕获模式
在输入捕获模式下,定时器将统计外部信号的上升沿或下降沿出现的
时间,并将统计结果保存在相关的寄存器中。
用户可以根据需要选择统计
上升沿还是下降沿,并可以选择计数溢出时是否复位计数器。
1.选择定时器和通道:根据实际需求选择合适的定时器和通道。
一般
来说,每个定时器都有多个通道可以配置为输入捕获模式。
2.配置定时器:根据测量的要求配置定时器的工作模式、计数方向和
预分频系数等。
定时器的配置将影响捕获的精度和测量范围。
3.配置输入捕获:选择捕获触发源,可以选择外部信号引脚或其他定
时器的输出作为触发源。
配置捕获触发源时还可以选择捕获的边沿类型
(上升沿或下降沿)和是否复位计数器。
4.开启定时器:配置完成后,通过使能相关的定时器和通道将输入捕
获模式启用。
5.捕获外部信号:当捕获触发源产生触发信号时,定时器将开始计数,当捕获到外部信号的边沿时,定时器会自动将计数值保存在指定的寄存器中。
6.读取测量结果:根据所选择的定时器和通道,从相关的寄存器中读
取测量结果,可以通过计算得到所需的参数,比如周期、脉宽等。
输入捕获模式在很多应用中都是非常常见且重要的。
例如在测量旋转
编码器的位置和速度时,可以使用输入捕获模式来捕获编码器的A相和B
相信号,并通过计算来确定位置和速度。
此外,输入捕获模式还可以用于
测量外部信号的频率、测量脉冲信号的宽度等。
总之,STM32输入捕获模式是一种功能强大且灵活的功能,能够帮助用户实现对外部信号的精确测量和控制。
通过合理配置和使用,可以满足各种不同的应用需求。
理解STM32定时器中的输入捕获滤波器

理解STM32定时器中的输入捕获滤波器关于STM32定时器中的输入捕获滤波器的功能描述,在中文参考手册中描述如下:我不理解官方的说明,在网上搜了老半天,基本都是下面这几句话:1)当滤波器连续采样到N次个有效电平时,认为一次有效的输入电平。
2)该数字滤波器实际上是个事件计数器,它记录到N个事件后会产生一个输出的跳变。
例如:当f(CK_INT) = 72MHz, CKD[1:0] = 01时,选择f(DTS) = f(CK_INT)/2 = 36MHz;而ETF[3:0] = 0100,则采样频率f(SAMPLI NG) = f(DTS) / 2 = 18MHz, N = 6,此时高于3M Hz的信号将被这个滤波器滤除,这样就有效地屏蔽了高于3MHz的干扰。
看了这些说法,我还是不理解这个数字滤波器到底是如何工作的,问题如下:问题1:当滤波器连续采样到N次个有效电平时,是输出这个电平?还是输出一个跳变?问题2:当滤波器没有连续采样到N次个有效电平时,输出是的什么?带着这两个问题,我们来分析一下,下面以TIM3为例:首先可以肯定输入捕获过程如下:详细信息见参考手册中的14.2节,通用定时器框图TIM3_C H1(PA.6) ----> TI1(外部信号) -------> 输入滤波器I C1F[3:0] -----> IC1(滤波器输出信号) -------> 输入捕获预分频器IC1PSC[1:0] ----> 捕获/比较1寄存器CCR1从上面的过程可以知道,1)发生输入捕获所需要的跳变沿是由滤波器输出产生的。
2)滤波器和预分频器可软件编程,如果IC1F[3:0] = 0x0,则滤波器全通,即TI1 和IC1是同一个信号。
STM32F4_TIM输入波形捕获(脉冲频率)

本文在前面文章“STM32基本的计数原理”的基础上进行拓展,讲述关于“定时器输入捕获”的功能,和上一篇文章“定时器比较输出”区别还是挺大的。
在引脚上刚好相反:一个输入、一个输出。
本文只使用一个TIM5通道3(也可其他通道)捕获输入脉冲的频率,通过捕获两次输入脉冲的间隔时间来计算脉冲波形的频率。
间隔一定时间读取频率并通过串口打印出来。
当然也可通过两路通道捕获脉冲信号的占空比,计划后期整理。
笔者通过信号发生器产生信号,上位机串口助手显示捕获的脉冲频率。
(没有信号发生器的朋友可以结合上一篇文章PWM输出做信号源:在同一块板子上也可以使用不同定时器,将输出引脚接在输入引脚)先看一下实例的实验现象:关于本文的更多详情请往下看。
Ⅱ、实例工程下载笔者针对于初学者提供的例程都是去掉了许多不必要的功能,精简了官方的代码,对初学者一看就明白,以简单明了的工程供大家学习。
笔者提供的实例工程都是在板子上经过多次测试并没有问题才上传至360云盘,欢迎下载测试、参照学习。
提供下载的软件工程是STM32F417的,但F4其他型号也适用(适用F4其他型号:关注微信,回复“修改型号”)。
STM32F4_TIM输入波形捕获(脉冲频率)实例:https:///cB6XrSi6rK3TP 访问密码STM32F4资料:https:///cR2pxqF5x2d9c 访问密码53e7Ⅲ、原理描述笔者将TIM分为三大块:时基部分、比较输出和输入捕获,请看下面截图“通用TIM框图”。
前面的文章已经将“时基部分”的一些基础知识讲述过了,“时基部分”的功能是比较有用的,它除了可以用来延时(定时)之外,它还可以拿来触发其他一些功能,如:触发DA转换、AD采集等。
上一篇文章讲述的就是图中比较输出部分,比较输出部分功能相对比较简单。
该文主要讲述“输入捕获”部分,这部分输入的通道1与2、通道3与4可以相互协作。
该文只使用了TIM5的通道3,捕获输入信号频率。
stm32的定时器输入捕获与输出比较讲解

stm32的定时器输入捕获与输出比较(2015-09-28 09:26:24)转载▼分类:stm32标签:it明确一点对比AD的构造,stm32有3个AD,每个AD有很多通道,使用哪个通道就配置成哪个通道,这里定时器也如此,有很多定时器TIMx,每个定时器有很多CHx(通道),可以配置为输入捕捉-------测量频率用,也可以配置为输出比较--------输出PWM使用输入捕捉:可以用来捕获外部事件,并为其赋予时间标记以说明此事件的发生时刻。
外部事件发生的触发信号由单片机中对应的引脚输入(具体可以参考单片机的datasheet),也可以通过模拟比较器单元来实现。
时间标记可用来计算频率,占空比及信号的其他特征,以及为事件创建日志,主要是用来测量外部信号的频率。
输出比较:定时器中计数寄存器在初始化完后会自动的计数。
从bottom计数到top。
并且有不同的工作模式。
另外还有个比较寄存器。
一旦计数寄存器在从bottom到top计数过程中与比较寄存器匹配则会产生比较中断(比较中断使能的情况下)。
然后根据不同的工作模式计数寄存器将清零或者计数到top值。
1、朋友,可以解释一下输入捕获的工作原理不?计数寄存器的初值,是自己写进去的吗?我如果捕获上升沿,两个值相减,代表的时两个上升沿中间那段电平的时间。
对不?timer1有五个通道(对应五个IO引脚),在同一时刻,只能捕获一个引脚的值,对不?那输出比较的原理你可以帮我介绍一下不?比较单元的值是人为设进去的吧?是的,但是他要根据你的控制寄存器的配置,来初始化你的比较匹配寄存器。
上面这个总看不懂,好像不不止你说的那几种情况:“匹配了是io电平取反、变低、还是变高,就会产生不同的波形了”就是比较匹配了你要IO电平怎么办?是清0还是置1?还是怎么样?这样才能产生波形啊要不然你要比较单元有什么用呢?设置输出就是置1,清除输出就是置0,切换输出就是将原来的电平取反,对不?是的你理解的很快011:计数器向上计数达到最大值时将引脚置1,达到0时,引脚电平置0,,对不?恩定时器1的输出比较模式怎么用。
stm32数字带通滤波例程

stm32数字带通滤波例程一、概述STM32数字带通滤波原理STM32数字带通滤波例程是一种基于STM32微控制器的数字信号处理技术。
带通滤波器是一种允许特定频率范围内信号通过的滤波器,对于去除噪声、提取有用信号具有重要作用。
STM32数字带通滤波例程通过设计数字滤波器,实现对输入信号的滤波处理,从而满足各种应用场景的需求。
二、详述STM32数字带通滤波算法实现1.选择合适的数字滤波器类型:常见的数字滤波器类型有FIR(有限脉冲响应)滤波器和IIR(无限脉冲响应)滤波器。
FIR滤波器具有线性相位、频率响应平坦等特点,IIR滤波器则具有实现简单、低阶滤波器性能较好等优点。
在STM32数字带通滤波例程中,可根据需求选择合适的滤波器类型。
2.设计数字滤波器的参数:数字滤波器的参数包括截止频率、通带衰减、阻带衰减等。
设计时需要根据实际应用场景和性能要求,合理设置滤波器参数。
3.实现数字滤波器:利用STM32内部的数字信号处理(DSP)模块或软件算法实现数字滤波器。
STM32提供了丰富的内置滤波器库,方便开发者快速实现数字滤波器。
4.滤波器系数优化:为了提高滤波器性能,可以通过调整滤波器系数进行优化。
常用的优化方法有最小二乘法、最小化误差平方和等。
三、分析STM32数字带通滤波性能及优化方法1.滤波性能:STM32数字带通滤波例程的性能主要体现在滤波器的频率响应、相位响应和幅频响应等方面。
通过合理设计滤波器参数和优化算法,可以实现高性能的带通滤波器。
2.优化方法:针对STM32数字带通滤波例程的性能优化,可以采用以下方法:a.调整滤波器阶数:增加滤波器阶数可以提高滤波器的性能,但同时会增加计算复杂度和资源消耗。
b.优化滤波器系数:通过最小化误差平方和等方法,调整滤波器系数,以提高滤波器性能。
c.采用多级滤波器:将带通滤波器分为多级,逐级优化,以提高整体性能。
四、总结STM32数字带通滤波应用场景及优势1.应用场景:STM32数字带通滤波例程广泛应用于各种电子设备中,如通信、音频处理、图像处理等领域。
STM32Cube学习之八:输入捕获

STM32Cube学习之八:输入捕获假设已经安装好STM32CubeMX和STM32CubeF4支持包。
Step1.打开STM32CubeMX,点击“New Project”,选择芯片型号,STM32F407ZETx。
Step2. 在Pinout界面下配置晶振输入引脚。
配置TIM2使用内部时钟源,CH1作为输入捕获通道,默认映射到PA0引脚。
配置TIM3使用内部时钟,CH1~CH4为PWM输出通道,默认映射引脚分别为PA6,PA7,PB0,PB1。
配置TIM4使用内部时钟,CH1,CH2为PWM输出通道,映射引脚分别为PD12,PD13。
配置串口,作为信息输出接口。
Step3.在Clock Configuration界面配置时钟源。
使用外部8M晶振作PLL时钟输入,并使用PLL输出作为系统时钟。
为了后面的计算方便,将系统时钟配置成160MHz。
Step4.配置外设参数。
在configuration界面中点击TIM2/ TIM3/ TIM4按钮,可以进入参数配置界面。
TIM2:在Parameter Settings页配置预分频系数为7,其计数时钟就是80MHz/(7+1)=10MHz。
计数周期(自动加载值),转换为十六进制形式,输入32bit最大值0xFFFFFFFF。
注意,TIM2的自动加载寄存器ARR和各个通道的捕获/比较寄存器CCRx都是32bit的。
在NVIC页面使能捕获/比较中断。
在GPIO页面设置捕获输入引脚下拉电阻,设置成上拉也可以,主要是为了使在没有信号输入时在输入引脚上得到稳定的电平。
TIM3:在Parameter页配置预分频系数为7,计数周期(自动加载值)为9999。
其溢出频率就是80MHz/(7+1)/(9999+1)=1kHz,这就是TIM3各通道输出的PWM信号的频率。
各通道输出PWM的占空比参数如上图红框标注,其他参数使用默认值。
按照图中参数,CH1~CH4输出的PWM周期都是1ms,而高电平时间分别是123.4us,234.5us,567.8us,678.9us。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); } void NVIC_Configure(void) { NVIC_InitTypeDef NVIC_InitStruct; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); /* TIM3_CC_IRQHandler */ NVIC_InitStruct.NVIC_IRQChannel =TIM3_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0; NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStruct); } #define ARR void Tim_Configure( void ) { TIM_TimeBaseInitTypeDef TIM_OCInitTypeDef TIM_ICInitTypeDef //1800, 2000, 2048, 2057
void GPIO_Configure(void) { GPIO_InitTypeDef GPIO_InitStructure; /* 设 置 USART1 复 用 端 ----------------------------------------------------- */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; /* TXD */ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; /* RXD */ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; 口
如下图所示:
从上图中我们可以看到, 对于 1MHz 的信号, 当采样频率为 18MHz 时, N 最大为 9。 当 N 大于 9 时,是不可能连续采样到大于 10 个的有效电平的。 下面我们验证这个猜测: 按照这个猜想,我们先求一下这个数字低通滤波器的最小通带截止频率。 令 CKD[1:0] = 01b, 即 f(DTS) = f(CK_INT) / 4 = 18MHz; IC1F[3:0] = 1111b, 即 f(SAMPLING) = f(DTS) / 32 = 562.5KHz, N = 8; 由公式 f(SAMPLING) / N >= 2 * f 可得: f <= 35.156KHz, 也就是说理论上: 滤波器可以监测到输入信号频率小于 35.156KHz, 占空比为 50% 的方波信号的跳变沿,换句话说,大于 35.156KHz 的此类信号将被滤除掉。 下面是 STM32 定时器输出频率的 计 算 公式 : f(OC1) = 72,000,000 / (ARR 1)*(PSC - 1); 50%的 PWM 波不同频率的计算值如下表: _____________________________________________________________________ fHz | ARR | PSC | 理论上 | 实际上 40K | 1800 – 1 | 0 | 监测不到跳变沿 | 监测不到跳变沿 36K | 2000 – 1 | 0 | 监测不到跳变沿 | 监测到跳变沿 35.156K | 2048 – 1 | 0 | 临界值 | 监测到跳变沿 35K | 2057 – 1 | 0 | 可检测到跳变沿 | 监测到跳变沿 _____________________________________________________________________ 下面是源代码: 配置 TIM3 的通道 1(PA.6)输出不同频率的占空比 50%的方波,配置 TIM3 的通道 2(PA.7)为输入捕获模 式,并使能捕获中断,在中断中输出捕获的值 ,将 PA.6 和 PA.7 短接。 在测试时请注意修改:宏定义 ARR 的常量值。 ========================================================== void RCC_Configure(void)
深入理解 STM32 定时器中的输入捕获滤波器 STM32, 定时器, 输入捕获, 滤波器
Newboy 网上收集整理
关于 STM32 定时器中的输入捕获滤波器的功能描述,在中文参考手册中描述如 下:
上面的 fDTS 由 TIMx_CR1 中的 CKD 配置: 00: tDTS = tCK_INT 01: tDTS = 2 × tCK_INT 10: tDTS = 4 × tCK_INT 11: 保留 假定选 ETF=0101,即“采样频率为 fDTS/2, N=8”;选 CKD=01,即“tDTS = 2 × tCK_INT”;并假定 fCK_INT=72MHz。 这时可以算出,采样频率为 72MHz/2/2=18MHz,因为 N=8,即在滤波器上可以滤 除掉输入端上小于 444.4ns 的脉冲。 根据这一原理, 我的理解是把滤波器放在分频的后面是为了保证通过的信号频率 不超过某个限定, 而不是为了滤除窄脉冲。 但如果 ETR 上出现较高频率的窄脉冲, 例如当分频因子为 4 时,如果 ETR 上出现了超过 9MHz 的一组窄脉冲,它就会在 通过分频和滤波器后被滤除掉。也许我前面的说法有些模糊, “滤波放在后面可 以更多地保证得到干净的波形”,你可以按照我上面的分析理解。
{ /* 开启辅助时钟 */ /* 使能 GPIOA,Pin8 50MHz 推免输出 LED0*/ /* 使能 GPIOD,Pin2 50MHz 推免输出 LED1*/ /* 使能 GPIOA.9 GPIOA.10 串口时钟 */ /* GPIOA_Pin_0~3 for ADC1_Channel_10~13 */ /* GPIOC_Pin_6~10 and GPIOB.all for TFT_LCD */ RCC->APB2ENR |= RCC_APB2Periph_GPIOA; /* 复位 USART1,再结束复位 */ RCC->APB2RSTR |= RCC_APB2Periph_USART1; RCC->APB2RSTR &= ~RCC_APB2Periph_USART1; RCC->APB2ENR |= RCC_APB2Periph_USART1; /* TIM3 */ RCC->APB1ENR |= RCC_APB1Periph_TIM3; RCC->APB1RSTR |= RCC_APB1Periph_TIM3; RCC->APB1RSTR &= ~RCC_APB1Periph_TIM3; }
我不理解官方的说明,在网上搜了老半天,基本都是下面这几句话: 1)当滤波器连续采样到 N 次个有效电平时,认为一次有效的输入电平。 2)该数字滤波器实际上是个事件计数器,它记录到 N 个事件后会产生一个输出 的跳变。 例如:当 f(CK_INT) = 72MHz, CKD[1:0] = 01 时,选择 f(DTS) = f(CK_INT)/2 = 36MHz; 而 ETF[3:0] = 0100,则采样频率 f(SAMPLING) = f(DTS) / 2 = 18MHz, N = 6, 此时高于 3MHz 的信号 将被这个滤波器滤除,这样就有效地屏蔽了高于 3MHz 的干扰。 看了这些说法,我还是不理解这个数字滤波器到底是如何பைடு நூலகம்作的,问题如下: 问题 1:当滤波器连续采样到 N 次个有效电平时,是输出这个电平?还是输出一 个跳变? 问题 2:当滤波器没有连续采样到 N 次个有效电平时,输出是的什么? 带着这两个问题,我们来分析一下,下面以 TIM3 为例: 首先可以肯定输入捕获过程如下:详细信息见参考手册中的 14.2 节,通用定时 器框图 TIM3_CH1(PA.6) ----> TI1( 外部 信号 ) -------> 输入滤波器 IC1F[3:0] -----> IC1( 滤波器输出信号 ) -------> 输入捕获 预 分频器 IC1PSC[1:0] ----> 捕获/比较 1 寄存器 CCR1 从上面的过程可以知道, 1)发生输入捕获所需要的跳变沿是由滤波器输出产生的。 2)滤波器和预分频器可软件编程,如果 IC1F[3:0] = 0x0,则滤波器全通,即 TI1 和 IC1 是同一个信号。 借助这两点分析,我假设的滤波器的工作原理是: 问题 1 猜测答案: 当滤波器连续采样到 N 次个有效电平时, 就输出这个有效电平。 问题 2 猜测答案: 当滤波器没有连续采样到 N 次个有效电平时, 再从 0 开始计数, 输出一直保持上一次输出的有效电平。例如:滤波器上一次输出是高电平,本次 连续采样到 N-1 个高低平, 但第 N 是个低电平,那么滤波器仍然保持上次输出的 高电平,并重新开始计数,记录 1 次低电平,如果在其后采样的 N-1 个也是低电 平,此时滤波才输出低电平,于是一个下降沿才出现在 IC1 上。 举例:如果我们产生一个 f = 1MHz 的占空比为 50%的方波信号,滤波器的采样 频率 f(SAMPLING) = 18MHz,那么如果滤波器要想监测的 1MHz 信号,并且滤除 高频干扰,则理论上 N <= 9 , 即 f(SAMPLING) / N >= 2 * f,这让我想起了《信号与系统》中的“奈圭斯 特采样频率”。