一种基于DSP的快速滤波方法技术

技术编号:33879966 阅读:24 留言:0更新日期:2022-06-22 17:09
本发明专利技术涉及一种基于DSP的快速滤波方法。属于地球物理探测技术领域。方法包括以下步骤:步骤1根据滤波参数计算滤波缓冲阵列参数;步骤2建立滤波缓冲阵列,长度为N1;步骤3将实时采集数据写入步骤2建立的阵列中;步骤4在阵列中添加随机头序列;步骤5对缓冲阵列进行快速傅里叶变换;步骤6根据滤波系数去除带外频点;步骤7对带外置零的缓冲阵列进行快速傅里叶反变换;步骤8提取时域信息。本发明专利技术解决传统滤波算法参数过多导致的运算量过大,无法应用于嵌入式算法的限制性的问题,同时去除传统滤波算法的通带内纹波,减少相应的频率失真。减少相应的频率失真。

【技术实现步骤摘要】
一种基于DSP的快速滤波方法


[0001]本专利技术涉及一种快速滤波方法,特别是涉及一种用于基于DSP的快速滤波方法。属于地球物理探测


技术介绍

[0002]对于地质勘探而言,其仪器需要自身快速处理数据,且对数据进行滤波等操作,现存的滤波技术手段存在如下缺点:
[0003]1.通带内纹波较高,造成通带不平坦,引起频率失真效应;
[0004]2.传统滤波算法造成滤波系数较多,会引起运算大幅增加,进而占用系统资源,不适用于地震采集仪器嵌入式算法;
[0005]3.传统滤波算法对于频带的高频或低频截止,不能做到很高,如若做到很高,当采用FIR滤波器时,必须用非常多的系数进行拟合,如若用IIR滤波器,则会引起相位失真,对于线性相位所要求的应用所不适用;
[0006]4.对于带通滤波器,传统滤波算法实现比较困难,往往采用滤波器级联方式来实施,但如若用此方式,则会引起运算量的成倍增加。

技术实现思路

[0007]本专利技术要解决的技术问题是提供一种基于DSP的快速滤波方法,解决传统滤波算法参数过多导致的运算量过大,无法应用于嵌入式算法的限制性的问题,同时去除传统滤波算法的通带内纹波,减少相应的频率失真。且传统滤波算法的多系数拟合方法决定了滤波的高频截止或低频截止精度与拟合系数的数量正相关,从而提高截止频率的精度就会造成运算量的进一步增加。本专利技术采用基于DSP的快速滤波方法,在提高截止频率的精度的同时,无需增加运算量,即在大幅度减少系统资源占用的基础上,提高滤波精度。<br/>[0008]本专利技术一种基于DSP的快速滤波方法,所述方法包括以下步骤:
[0009]步骤1根据滤波参数计算滤波缓冲阵列参数;
[0010]步骤2建立滤波缓冲阵列,长度为N1;
[0011]步骤3将实时采集数据写入步骤2建立的阵列中;
[0012]步骤4在阵列中添加随机头序列;
[0013]步骤5对缓冲阵列进行快速傅里叶变换;
[0014]步骤6根据滤波系数去除带外频点;
[0015]步骤7对带外置零的缓冲阵列进行快速傅里叶反变换;
[0016]步骤8提取时域信息。
[0017]本专利技术一种基于DSP的快速滤波方法,相比于现有技术的方案,具有以下优点:
[0018]1.通带无纹波,带内绝对平坦,
[0019]2.降低运算要求,大幅减少占用系统资源,
[0020]3.能够将频带的高频或低频截止做到很高,且不会引起运算增加或相位失真,
[0021]4.可实现带通滤波,且不会引起运算量的大幅增加。
附图说明
[0022]图1为本专利技术基于DSP的快速滤波方法的流程图。
具体实施方式
[0023]实施例1
[0024]如图1所示,本实施例基于DSP的快速滤波算法,基于DSP内集成的FFT和IFFT功能,完成滤波。
[0025]第一步,根据滤波参数计算滤波缓冲阵列参数:
[0026]对于低通滤波,根据FFT,对于采样率为f
s
的信号,设滤波缓冲阵列的计算长度为N1,则FFT变换后,频率分辨率为设低通截止频率为ω
p
,则是的整数倍,即存在整数n,使
[0027][0028]对于高通滤波,根据FFT,对于采样率为f
s
的信号,设滤波缓冲阵列的计算长度为N1,则FFT变换后,频率分辨率为设高通截止频率为ω
p
,则ω
p
是的整数倍,即存在整数n,使
[0029][0030]对于带通滤波,根据FFT,对于采样率为f
s
的信号,设滤波缓冲阵列的计算长度为N1,则FFT变换后,频率分辨率为N1,设高通截止频率为ω
p
,则存在整数n,同时满足式(1)和式(2)。
[0031]由此可计算出滤波缓冲阵列的长度N1。
[0032]由于其采用DSP库运算,因此存在前序序列失真,前序序列失真长度由DSP库决定,根据不同库的类型进行查找,DSP中FFT数据头失真长度为
[0033]N
r
=10...............(3)
[0034]为了消除失真对滤波算法的影响,在第二步建立的缓冲阵列前端,添加随机头序列,序列长度为N
r

[0035]后续存入的实时数据的阵列长度为N
s
,其决定于每次处理数据的大小。
[0036]第二步,建立滤波缓冲阵列,长度为N1。
[0037]建立滤波缓冲区阵列,长度为N1具体表述为在内存中开辟长度为N1的数组,接收长度为N
s
的数据流,以及长度为N
r
的随机阵列,并将此两类数据应用于后续的滤波运算。
[0038]N
s
+N
r
=N1...............(4)
[0039]第三步,将实时采集数据写入上一步建立的阵列中,
[0040]将采集到的实时数据实时添加到上述所开辟的缓冲区数据中,其起始地址为N
r

数据添加模式采用逐次递进的方式,随即判定实时数据添加的长度,如若实时数据长度小于N
s
,则继续上述操作,如若数据长度等于N
s
,则进入下一步操作。
[0041]第四步,在阵列中添加随机头序列。
[0042]添加随机头序列至缓冲序列中,其添加规则为计算上述所采集的长度为N
s
的实时数据的平均值,而后以此平均值为中心,添加随机噪声,随机噪声为白噪声,其频率为全频段。
[0043]第五步,对缓冲阵列进行快速傅里叶变换
[0044]基于DSP库对上述长度为N1的整个序列进行快速FFT运算,运算采用硬件加速的运算规则,数据类型采用双精型。新建长度为N
A
的缓冲数组,用于存放运算完成后的数据输出,N
A
=N1。
[0045]第六步,根据滤波系数去除带外频点。
[0046]对变换后的长度为N
A
的数组,
[0047]对于低通滤波,设低通截止频率为ω
l
,则ω>ω
l
的频点全部置零;
[0048]对于高通滤波,设高通截止频率为ω
h
,则ω<ω
k
的频点全部置零;
[0049]对于带通滤波,设通带下限截止频率为ω
l
,通带上限截止频率为ω
h
,则ω<ω
l
或ω>ω
h
的频点全部置零。
[0050]第七步,对带外置零的缓冲阵列进行快速傅里叶反变换,
[0051]对上述运算后的数组进行基于DSP的IFFT变换,其运算采用基于硬件加速的运算规则,数据类型采用双精型,开辟新数组,运算完成后将数据存至新的缓冲数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于DSP的快速滤波方法,其特征在于:所述方法包括以下步骤:步骤1根据滤波参数计算滤波缓冲阵列参数;步骤2建立滤波缓冲阵列,长度为N1;步骤3将实时采集数据写入步骤2建立的阵列中;步骤4在阵列中添加随机头序列;步骤5对缓冲阵列进行快速傅里叶变换;步骤6根据滤波系数去除带外频点;步骤7对带外置零的缓冲阵列进行快速傅里叶反变换;步骤8提取时域信息。2.根据权利要求1所述的基于DSP的快速滤波方法,其特征在于:所述方法步骤1具体为:对于低通滤波,根据FFT,对于采样率为f
s
的信号,设滤波缓冲阵列的计算长度为N1,则FFT变换后,频率分辨率为设低通截止频率为ω
p
,则是的整数倍,即存在整数n,使对于高通滤波,根据FFT,对于采样率为f
s
的信号,设滤波缓冲阵列的计算长度为N1,则FFT变换后,频率分辨率为设高通截止频率为ω
p
,则ω
p
是的整数倍,即存在整数n,使对于带通滤波,根据FFT,对于采样率为f
s
的信号,设滤波缓冲阵列的计算长度为N1,则FFT变换后,频率分辨率为设高通截止频率为ω
p
,则存在整数同时满足公式一和公式二;由此可计算出滤波缓冲阵列的长度N1;DSP中FFT数据头失真长度为:N
r
=10 公式三在缓冲阵列前端,添加随机头序列,序列长度为N
r
;后续存入的实时数据的阵列长度为N
s
。3.根据权利要求2所述的基于DSP的快速滤波方法,其特征在于:所述方法中步骤2具体为:建立滤波缓冲区阵列,长度为N1具体为在内存中开辟长度为N1的数组,接收长度为N
s
的数据流,以及长度为N
r
的随机阵列,并将此两类数据应用于后续的滤波运算:
N
s
+N
r
=N
1 公式四。4.根据权利要求3所述的基于DSP的快速滤波方法,其特征在于:所述方法中步骤3具体为:将采集到的实时数据实时添加到步骤2所开辟的缓冲区...

【专利技术属性】
技术研发人员:许晴钟玉林钟沛江梁曾龙建民
申请(专利权)人:中地装重庆地质仪器有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1