bandpass¶
概要¶
对数据文件使用无限脉冲带通滤波器
语法¶
BandPass [BUtter|BEssel|C1|C2] [Corners v1 v2] [Npoles n] [Passes n]
[Tranbw v] [Atten v]
输入¶
- BUTTER
应用 Butterworth 滤波器
- BESSEL
应用 Bessel 滤波器
- C1
应用 Chebyshev I 型滤波器
- C2
应用 Chebyshev II 型滤波器
- CORNERS v1 v2
设定拐角频率分别为
v1
和v2
, 即频率通带为v1-v2
- NPOLES n
设置极数为
n
,可以取1到10之间的整数- PASSES n
设置通道数为
n
,可以取1或2- TRANBW v
设置 Chebyshev 转换带宽为 v
- ATTEN v
设置 Chebyshev 衰减因子为 v
缺省值¶
bandpass butter corner 0.1 0.4 npoles 2 passes 1 tranbw 0.3 atten 30
说明¶
SAC 提供了一系列无限脉冲滤波器(IIR)可对数据进行滤波,包括 Butterworth、Bessel、Chebyshev I 型和 Chebyshev II 型滤波器。这些递归数字滤波器都基于传统的模拟滤波器,将模拟滤波器经过双线性变换(一种可以保留模拟滤波器稳定性的数学变换)即可得到数字滤波器。
多数情况下 Butterworth 滤波器都是个不错的选择,因为 Butterworth 滤波器从通带到阻带的转变相对比较尖锐,且群延迟响应相对平缓,因而 Butterworth 滤波是 SAC 中默认的滤波器类型,其 3 dB 点位于指定的截止频率处。
Bessel 滤波器适用于在不使用双通滤波的情况下要求线性相位的情形,其振幅响应不够理想,SAC 中的 Bessel 滤波器经过归一化以保证其 3 dB 点也位于指定的截止频率处。
两个 Chebyshev 滤波器用于需要通带与阻带间具有较为尖锐的转变的情况。尽管他们有较好的振幅响应,但是它们的群延迟响应是 SAC 所有滤波器中最差的。
使用这些滤波器时需要小心。首先,所有的递归滤波器都具有非线性相位响应,会导致滤波后波形的频散,即波形出现畸变。若要求滤波后的波形保留原始相位,则要求滤波器具有零相位。对同一个数据做正向和反向两次滤波,即相当于对数据做了一次零相位滤波,对应于命令中双通道的情况。双通道滤波器的振幅响应,等于单通道滤波器的振幅响应的平方。与此同时,零相位滤波器具有非因果的脉冲响应,会导致滤波后的信号在尖锐的跳起之前附加一个虚假的前驱信号。因而双通滤波后的数据是不能用于拾取震相的跳起到时的,此时,双通滤波不是一个好选择。
其次,当滤波器的通带宽度比数据的 Nyquist 频率小很多时,滤波器会出现数值不稳定,当滤波器的级数增加时问题更加严重。对于需要极窄通带的情形,更可靠的方式是先对数据进行减采样,然后对采样后的数据应用一个通带稍宽一些的滤波器,再将滤波后的数据插值回原始数据的采样率。当滤波通带的带宽降到 Nyquist 频率的百分之几以下时很有必要使用这种策略。
一般来说,随着极数的增加,滤波器从通带到阻带的过渡会更加尖锐。但是,使用极数过大是要付出代价的。随着极数的增加,滤波器的群延迟也会变宽,进而导致滤波后的波形频散更加严重。因而要仔细考虑是否真的需要超过3个或4个极点的滤波器。
Butterworth 和 Bessel 滤波器的设计特别简单,只需要指定截止频率和极数即可。Chebyshev 滤波器设计起来更复杂一点,除了截止频率和极点数目之外,还需要提供转换带宽以及阻带衰减因子。转换带宽是滤波器通带和阻带之间的区域的宽度。由于双线性变换频率轴的非线性弯曲,递归数字滤波器的转换带宽可能会比设计时指定的要小。在 SAC 里,模拟滤波器的截止频率在双线性变换之后要做补偿以保证其满足设计要求。阻带边界同样也是不准确的。因此,若要精确指定通带边界,在选定截止频率后必须对其进行补偿。阻带衰减因子是通带增益与阻带增益的比值。
示例¶
应用一个四极 Butterworth 滤波器,拐角频率为 2 Hz 和 5 Hz:
SAC> bp n 4 c 2 5
在此之后如果要应用一个二极双通具有相同频率的 Bessel:
SAC> bp n 2 be p 2
头段变量改变¶
depmin、depmax、depmen