数字滤波器(5)—FIR连续采样分段卷积时域重叠相加法

2024-08-27 Amphenol Sensors(安费诺传感器学堂公众号)
数字滤波器,AMPHENOL SENSORS 数字滤波器,AMPHENOL SENSORS 数字滤波器,AMPHENOL SENSORS 数字滤波器,AMPHENOL SENSORS

此前,我们提到了FIR系统在时域的分段卷积中使用“重叠保留(Overlap-Save)”的处理方式,本文我们说明一下数字滤波器(5)—FIR连续采样分段卷积时域“重叠相加(Overlap-Add)”的处理方式。


信号处理在时域和频域中处理是有差异的。


说得通俗一点就是:时域中处理是直接用采集到的信号进行计算;而频域中则要用离散傅里叶变换(DFT)/离散傅里叶反变换(IDFT)对采集到的信号进行转换到频域,然后再从频域转回时域处理。

在我们看到的参考文档[1]中,描述的是在频域进行DFT,然后由IDFT转回时域处理的过程。如下图所示。大概的过程是:


每次处理的数据长度为L,然后在每分段的尾部添加(M-1)个0之后,让每次处理的数据序列长度N=L+M-1,通常N为2的幂次倍;

同时对于滤波器,也需要将原来长度为b的序列,通过填0的方式增加到长度为N;

由DFT将两个数列分别转换到频域,相乘后,再IDFT转回时域,就得到N=(L+M-1)的时域卷积结果;

保留每次操作的所有数据,然后在下一次操作结束后,将最新数据的最前面的(M-1)个结果数据和上一次结果数据的最后(M-1)个数据顺序相加......持续直至结束。

FIR频域的重叠相加示意图

我们看看时域的卷积应该怎么操作。

FIR时域重叠相加操作示意图

如上图所示:


每次读取长为L的数据序列,然后与长度为M的滤波器进行卷积,生成一个(L+M-1)的卷积结果序列;

保留每次操作的所有数据,然后在下一次操作结束后,将最新数据的最前面的(M-1)个结果数据和上一次结果数据的最后(M-1)个数据顺序相加......持续直至结束。

两个过程看起来略有差异,甚至会觉得时域的处理更简单省事,会不会更省时?其实频域看起来费时,但数据规模到了一定程度之后,频域的处理速度就具有优势了。然而对于一般的应用,直接卷积操作还是可以接受的。

还记得上次我们提到Python中卷积函数np.convolve的三种模式吧?该函数对卷积是在时域中进行的。


在Python中,卷积函数np.convolve(data_segment, b, mode)对指定长度的数据data_segment(长度L),和FIR滤波器系数序列b(长度M)进行卷积。输出的结果序列则分为以下三种:


full:        结果长度=M+L-1

same:        结果长度=max(M,L)

valid:        结果长度=max(M,L)-min(M,L)+1=L-(M-1)


在这里,我们需要选用full模式,这样就获取每段卷积一个不落的所有数据(L+M-1)。先看模拟效果后看Python代码。


故事情节设定:50Hz的信号中,夹杂300,450Hz的干扰。滤除干扰。

FIR选频滤波器的幅频响应

FIR系统重叠相加的滤波结果示意图


这里要特别说明一点:卷积后的数据长度,最终会比原来的数多出(M-1)个,所以输出到图的时候,需要有意控制长度。


滤波过程中要经历“热身”,所以最开始阶段有(M-1)个数据也是可以剔除的。同样,如果我们看卷积最终结果尾部不处理,也有(M-1)个无效数据的输出需要截取。

卷积后尾部无效数据(M-1)


上代码,我们自己在代码中划重点,并调整输出结果的有效长度范围:

import numpy as npimport matplotlib.pyplot as pltfrom scipy import signalfrom scipy.fft import fftimport math

# 创建带通滤波器f1 = 40f2 = 60filter_len = 80     # 滤波器长度fs = 1600           # 采样频率维持不变

b = signal.firwin(filter_len, [f1, f2], pass_zero=False, fs=fs)

# 设置数据长度seg_filter_len = 256                            # filter output length of each segment datasegment_len = seg_filter_len - filter_len + 1   # 分段数据目标长度 seg_filter_len = segment_len + filter_len - 1target_length = segment_len * 50                # 总数据长度

# 而新的时间序列的上限 bbspace = target_length / fs

# 生成的时间序列为L的整数倍,模拟每次采样的数据的长度t = np.arange(0, bspace, 1/fs)

# 产生一个含有300Hz,450Hz和50Hz信号的模拟信号x = np.sin(2 * np.pi * 50 * t) + 0.5 * np.sin(2 * np.pi * 300 * t) + 0.5 * np.sin(2 * np.pi * 450 * t)
segments = []for i in range(0, len(x), segment_len):    segments.append(x[i:i+segment_len])

# Filtering & Overlap-Add processing# Total outputput buffer, len = target_length + filter_len - 1filtered_signals = np.zeros(target_length + filter_len - 1)             for i in range(len(segments)):    filtered_segment = np.convolve(segments[i], b, mode='full')    # full模式用于保留所有卷积结果 N = L + M -1    filtered_signals[i*segment_len:i*segment_len+len(filtered_segment)] += filtered_segment # 叠加过程
filtered_signals = filtered_signals#[:target_length] # 保留和原信号等长的部分

# Filter Freq Responsew, h = signal.freqz(b, 1, fs=fs)plt.figure()plt.plot(w, abs(h))plt.title('Filter Freq Response')plt.grid()plt.xlabel('f[Hz]')plt.ylabel('Amplitude')

# Signal Before filtering & Spectrumn = len(x)freq = np.fft.fftfreq(n, 1/fs)y = np.fft.fft(x)
plt.figure()plt.subplot(221)plt.plot(t[:500], x[:500])plt.title('Original Signal')plt.subplot(222)plt.plot(freq[:n//2], np.abs(y[:n//2]*2/n)) # 标幺,绘制前一半plt.title('Spectrum of Orginal Signal')plt.grid()

# Signal After filtering & Spectrumn = len(x)y = np.fft.fft(filtered_signals)
plt.subplot(223)# 1. Normal outputplt.plot(t[:500], filtered_signals[:500])plt.title('Filtered Signal')plt.subplot(224)plt.plot(freq[:n//2], np.abs(y[:n//2]*2/n)) # 标幺,绘制前一半plt.title('Spectrum of Filtered Signal')plt.grid()

plt.tight_layout()

plt.show()

# 2. End of convolution without end cutoff: for test purposeplt.figure()temp = t[8000:8850]s = filtered_signals[8079:8929]plt.plot(temp, s)plt.title('Filtered Signal')plt.grid()plt.show()


授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由小妮转载自Amphenol Sensors(安费诺传感器学堂公众号),原文标题为:数字滤波器(5)—FIR连续采样分段卷积时域重叠相加法,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

解析数字滤波器(1)——陷波滤波器

有鉴于数字信号处理涉及的面太多,我们必须要把话题收缩。数字滤波的种类也是五花八门,因此再选一个小的类型,AMPHENOL SENSORS将围绕离散线性时不变系统来简单讨论一下陷波滤波器(Notch Filter)和梳状滤波器(Comb Filter),通过代码的演示和输出,我们可以比较一下这两类滤波器的特点。在本文中先以陷波滤波器为题来讨论相关的内容。

技术探讨    发布时间 : 2024-07-25

解析数字滤波器(2)——梳状滤波器及相关话题

本文AMPHENOL SENSORS将围绕但不限于梳状滤波器进行展开。其中,梳状滤波器,一方面可以滤除特定的频率(尤其是特定频率的谐波),另一方面也可以在信号中对指定频率及其倍频的信号进行拣选。例如图-1所示的滤除指定谐波成分的梳状滤波器的幅频图。

技术探讨    发布时间 : 2024-07-25

数字滤波器(4)—IIR/FIR系统对连续采集数据的滤波处理和模拟仿真

在之前我们的博文中,所提到的数据的滤波处理和仿真分析,其实都是围着一段固定长度的模拟数据展开的,除了知道滤波器的幅频、相频响应特性之外,也直观地看到了滤波的效果会是怎么样的。实际应用会怎么样?需要怎么处理?

技术探讨    发布时间 : 2024-08-27

数字滤波器(6)—FIR频域连续滤波“重叠相加法”C++源码

传感器和信号处理仅一线之隔,信号的前后端合理搭配,是我们更准确地感知这个世界的一种基本态度和方式。FIR频域重叠相加法还记得我们(此处有重复之嫌)之前的发文《FIR连续采样分段卷积时域重叠相加法》?不过那是在时域处理的模拟和仿真。这次我们的内容是用C++在频域实现的滤波卷积法,仍然是重叠相加法,届时大家可以比较一下两种方式的差异。基本是通过两个处理过程。

设计经验    发布时间 : 2024-07-03

数字滤波器C语言的模拟及验证

本文通过一个带通滤波器的Python验证,再转换到C++代码模拟验证的实现过程说明数字滤波器是如何工作的。我们先通过Python测试验证,并生成滤波器的参数数据。然后将获取的参数用到C程序中重现滤波器。

设计经验    发布时间 : 2024-06-29

Amphenol Sensors(安费诺)/Thermometrics 温度传感器选型指南

目录- 温度传感器产品介绍及应用领域    NTC热敏电阻/PTC热敏电阻    探针和组件    其他技术和附件   

型号- T5D,HM,YA,YB,YC,P60,YD,YF,P65,YG,YH,RL40,YK,YL,YP,YR,EC95,GC32,YS,RL45,GC16,B35,UD20,RL30,3006,AB6,MELF,JA,YS4019,JB,JTC,JC,JD,RL35,JE,JF,MF65,SP85,JS2945,JI,B43,JL,JM,JP,FP10,JR,JTR,CTR100,FP14,P85,JW,M,NDK,T,NDM,CTR65,NDL,ZTP,BB07,PT1000,0706,BB05,NDP,YS4020,NDU,YSM 4021,CL,CTR85,BR16,KU,BR14,KY,BR11,TC,FP07,1403,NHQM,YSM,TH,R100,TM,MA400,PTSM,TP,1803,BB11,EVAP,P100,MA100,DK,SC30,R60,BR23,P20,R65,HVAC,P25,YM120,PT200,EVAPA1450,MS,DKM,MT,CTR60,P30,RL1004,BR32,A1447-A1450,ND,PTA,NK,EVAPA1447,1703,PTE,PTD,SP100,PTF,DC95,PTH,B05,B07,PTO,EVAP A1424,SC50,R85,BR42,C100,2006,JYA,NHQ,NHQMM,GC11,GC14,GE,RL20,M2000,B10,PT100,B14,GT,BR55,MC65,SP60,TK95,SP65,RL14,RL060628,RL10

选型指南  -  AMPHENOL SENSORS PDF 中文 下载

Amphenol Sensors(安费诺)温度传感器/MEMS压力传感器/C〇2、湿度、灰尘传感器选型指南

目录- Sensors    Temperature Sensors    Pressure Sensors    CO2, Humidity & Dust Sensors   

型号- DK SERIES,NDP SERIES,NHQ SERIES,AAS-AQS-UNO-RH-CO2,RL40,T5D SERIES,FMA SERIES,GC32,EC95,AB6 SERIES,RL45,GC16,GT SERIES,DKM SERIES,CTP65,M SERIES,UD20,S SERIES,CTP60,RL30,AIT SERIES,GE-1935,TH SERIES,NDL SERIES,3006,MELF,YS4019,RL35,HM SERIES,GE-2102,GE-2103,JS2945,T6715,T6613-X,AAS-AQS-UNO,TM SERIES,R85 SERIES,SM-UART-04L,YSM SERIES,FP10,NPI-15,T6715-X,FP14,NPC-120,HS12SP,NPI-19,B35 SERIES,T6713,BB07,SUF SERIES,NK SERIES,BB05,YS4020,T6703,YSM 4021,YR SERIES,BR16,A-1737,BR14,T6700,BR11,T SERIES,FP07,1403,NHQM,P85 SERIES,ZTP SERIES,JF SERIES,NDK SERIES,JS8741,NPH SERIES,JS8746,R100,JR SERIES,PTSM,MA400,SM-PWM-01C,JB SERIES,1803,BB11,B05 SERIES,T6616,EVAP,YF SERIES,JA SERIES,P100,YD SERIES,YH SERIES,MF65 SERIES,YG SERIES,MA100,JIC SERIES,YB SERIES,B43 SERIES,T9602,NPC-100,YA SERIES,YC SERIES,SC30,CTP100,BR23,T6613,PTD SERIES,PTE SERIES,YM120,HVAC,JTC SERIES,JTR SERIES,MS SERIES,YK SERIES,WTF083B001,P30 SERIES,YL SERIES,YP SERIES,PTA SERIES,PTH SERIES,ND SERIES,B07 SERIES,PTF SERIES,PTO SERIES,P60 SERIES,JM SERIES,YS SERIES,T6600,RL1004,BR32,JS6780,JI SERIES,HS30P,JW SERIES,A1447-A1450,JS SERIES,TP SERIES,JE SERIES,JC SERIES,GE-1856,1703,B14 SERIES,T6615-X,GE SERIES,R65 SERIES,DC95,JYA SERIES,T3000,EVAP A1424,SC50,BR42,A-1266,C100,GE-1923,NPP-301,706 SERIES,2006,NKA SERIES,AS SERIES,B10 SERIES,P25 SERIES,NHQMM,GC11,RL20,CL SERIES,P20 SERIES,GC14,GE-1920,NPC-1220,JP SERIES,P65 SERIES,ES SERIES,CTP85,T6713-X SERIES,BR55,MC65,KU SERIES,TK95,NDM SERIES,R60 SERIES,NDU SERIES,NPC-1210,TC SERIES,JL SERIES,RL14,JD SERIES,RL060628,RL10

选型指南  -  AMPHENOL SENSORS  - 05/2019 PDF 英文 下载

Amphenol Sensors(安费诺)/All Sensors 压力传感器选型指南(简版)

目录- 传感器解决方案及产品优势介绍    传感器技术介绍    单芯片压力传感器    双芯电路交叉耦合补偿压力传感器    双芯电路和气路交叉耦合补偿压力传感器    传感器应用领域介绍    压力单位换算    传感器通用名词解释   

型号- DLH,ADCX,ACPC-C,AXCA,ACPC,BLV,DLV,ACPC-H,AXCA-PRIME,AXCA-MIDDLE,MAMP,MLV,SAMP,ACPC-P,BLC,ADUX,BLVR,MAMP-/P,ADCA,DLH,DLVR,DLVR,BLCR,MAMP-P,MDCX,ADO,BLV,AXCX-PRIME-INCH,DLHR,DLHR,AXCX,MLV,AXCA-MIL,BLC,DLC,ADO-MIL

选型指南  -  AMPHENOL SENSORS PDF 中文 下载

AMPHENOL SENSORS与世强先进的代理协议

描述- 2019年6月,安费诺(常州)连接系统有限公司与世强先进(深圳)科技股份有限公司签署了代理协议。

代理协议/证明  -  AMPHENOL SENSORS  - 2019年6月1日 PDF 中文 下载

Amphenol Sensors(安费诺)建筑及工业应用传感器选型指南

目录- Chip Cap 2完全校准的温湿度传感器    Telaire Ventostat®T8700壁挂式温湿度变送器    Telaire Ventostat®T8031 CO2小型风管式C02传感器    Telaire®T8041/T8042 分管式C02传感器    Telaire T8100-R系列挂壁式C02和温度变送器(带继电器)    Telaire®7000室内空气品质监测器    Telaire VaporstatTM 9002红外露点变送器    Telaire®配件    Telaire HumiTrac™温湿度变送器    T9602湿度与温度传感器    AAS-53系列水管型温度变送器    ADT/AOT/AIT温湿度变送器使用说明书   

型号- P40250128,CC2D265,P40250129,P40250126,P40250127,P40250125,P40250122,P40250123,DC95F302W,P40250120,P40250121,T8031,CC2D255,EHR-4,T8100-D-R,P40250139,K53,T8700,CC2A23,PT1000A,AIT,PT1000B,CC2A25,P40250133,P40250131,T2075NG,P40250130,T804K0-10V,T1508,T8200-D-5P,T8042-5VI0-5V,T9602-5-A-1,NI1000,9002,T9602-3-A-1,T5100,P40250149,CC2A35,T8700-E-D,P40250147,0-5000PPM,P40250144,PT100A,T7001I,P40250145,PT100B,P40250142,P40250143,T8100,S4B-EH,CC2A33,P40250141,CC2D235,CC2D355,T7001,PT1000,T2072,T7001D,CC2D25,T9602-3-A,T8042I0-10V,CC2D23,P40250156,T8041,T8100-R,P40250151,T8042,P40250150,T9602-3-D,NTC10K,CC2025,7000,T9602-3-D-1,CC2D35,T9602,CC2D33,ADT,NTC15K,T8200,CC2D335,CHIPCAP 2,NTC10K-II,T2090,T1551,T1552,MPNT3D03750M4,NTC20K,T2007,T8700-D,T8700-E,T8100,T2080,T8100-EC,P40250109,PA0250118,T8100-E-D-GN-5P-R,PA0250115,T1505,P40254275,P40254276,P40254277,P40250189,P40250186,P40250184,P40250185,T8300,P40250182,P40250183,P40250181,AAS-53,8000,PT100,T7001SK,P40250119,NTC10K-A,AOT,P40250117,T9602-5-A,P40250113,P40250114,P40250111,P40250112,DC95F103W,T2076NG,P40250110,P40250193,T9602-5-D,T8001,P40250191,7001D,P40250192,T8002,T9602-5-D-1,MPNV12R30M 16004616,B4B-EH-A,P40250190,T8041-5VI0-5V,RS485,NTC10K-III

选型指南  -  AMPHENOL SENSORS PDF 中文 下载

Amphenol Sensors Electric Car Battery Packs-A New Power Source

Amphenol Sensors‘ Electric car battery packs paired with the appropriate sensor technology, electric vehicles open new doors to remote and emergency power supply that’s efficient, safe, and long-lasting.

厂牌及品类    发布时间 : 2021-12-07

【选型】Amphenol Sensors(安费诺)/SGX Sensortech 红外/半导体/电化学/气体传感器传感器选型指南

目录- 安费诺公司介绍    工业安全气体传感器    环境监测产品    半导体    红外输出产品    催化CH4    红外HC    红外CO2    电化学   

型号- MICS-4514,IR12EJ,IR22BD,SGX-4H2S,MICS-2614,VQ546MR,INIR12PR-1.4%,VQ24,VQ25,VQ548ZD,IR12EM,SGX-7H2S,IR21GM,IR34BC,IR11BD,IR21GJ,SGX-40X,SGX-7OX,IR604/1,VQ542R,IR25TT-M,IR11BR,IR604/3,IR604/2,SGX4NH3,SGX-SURECO,VQ21TSB,IR12GJ,SGX-4DT,IR11EJ,IR21BD,MICS-2714,INIR12,VQ41,INIR11,SGX-7NH3,IR12GM,IR11EM,IR15TT,IR14BD,VQ21TB,IR33BC,IR15TT-M,SGX-70X,SGX-4CO,IR603/2,VQ31,VQ548ZD/W,IR603/1,VQ21TS,VQ35,IR15TT-R,IR603/3,V025,IR25TT,IR11GJ,MP7217,IR11GM,MICS-5524,MP7214,MP7217TC,IR81BB,VQ547TS,VQ542ZD,VQ548MP,VQ542RD,4系列,SGX-7CO,IR13BD,IR22EJ,IR32BC,MICS-5914,IR602/3,IR602/2,IR602/1,INIR12PR-1.7%,VQ21T,VQ546M,IR23BD,IR31CE,IR42BC,MICS-OZ-47,VQ2,VQ545ZD,VQ1,VQ549ZD,IR12BD,IR22GJ,IR21EJ,7系列,IR31BC,SGX-4OX,IR601/3,IR601/2,IR601/1,IR31SE,IR31SC,IR21EM,VQ549ZD/W

选型指南  -  SGX SENSORTECH PDF 中文 下载

Amphenol Sensors(安费诺) 汽车传感器选型指南

目录- 汽车传感器解决方案介绍    车厢空气质量系列传感器    排放处理系列传感器    新能源汽车传感器应用    测量汽车应用中最为关键的参数   

型号- SM-UART-01L,PT200,T6703,TPMS,DPS,G-CAP2,SM-UART-01D,A2103,NPI-19,T6713,A-2102,EGR,A-2103,NPP-301,GE-1935,A-2121,ZTP,DPF,SM-UART-01L+,SM-PWM-01C,NPX1

选型指南  -  AMPHENOL SENSORS PDF 中文 下载

展开更多

电子商城

查看更多

只看有货

品牌:SGMICRO

品类:可编程数字滤波器

价格:¥4.2788

现货: 1,610

品牌:芯海

品类:AFE 芯片

价格:¥5.2942

现货: 1,036

品牌:芯海

品类:AFE 芯片

价格:¥9.4118

现货: 48

品牌:芯海

品类:高性能 AFE

价格:¥12.6000

现货: 30

品牌:MicrOne

品类:8通道同步采样24位高精度ADC

价格:¥250.0000

现货: 0

品牌:芯海

品类:体脂测量AFE

价格:¥37.5000

现货: 0

品牌:SINOXTECH

品类:低噪声24位模数转换器

价格:¥64.2858

现货: 0

品牌:上海贝岭

品类:同步采样模数数据采集系统

价格:

现货: 0

品牌:AMPHENOL SENSORS

品类:Air Quality Sensors

价格:¥119.7800

现货: 5,396

品牌:AMPHENOL SENSORS

品类:温度传感器

价格:¥14.2400

现货: 2,500

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

暂无此商品

海量正品紧缺物料,超低价格,限量库存搜索料号

服务

查看更多

温度传感器定制

可定制温度范围-230℃~1150℃、精度可达±0.1°C;支持NTC传感器、PTC传感器、数字式温度传感器、热电堆温度传感器的额定量程和输出/外形尺寸/工作温度范围等参数定制。

提交需求>

压力传感器定制

可定制板装式压力传感器支持产品量程从5inch水柱到100 psi气压;数字输出压力传感器压力范围0.5~60inH2O,温度补偿范围-20~85ºС;模拟和数字低压传感器可以直接与微控制器通信,具备多种小型SIP和DIP封装可选择。

提交需求>

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面