AnyMath 文档

带通,带通

带通滤波器后的信号。

库::`工程师`

语法

函数调用

* [参数:y]=带通(<参数:x>>,<参数:wpass>>) — 过滤输入信号 [参数:x] 使用具有由双元矢量指定的带宽频率范围的带通滤波器 [参数:wpass] 以标准化单位 rad/倒计时。 功能 *带通* 使用带宽衰减的最小阶滤波器 60 dB并补偿滤波器引入的延迟。 如果 [参数:x] -矩阵,函数独立过滤每列。

* [参数:y]=带通(<参数:x>>,<参数:fpass>>,<参数:fs>>) — 使用采样率 [参数:fs] 输入信号的Hz [参数:x]. 二元素向量 [参数:fpass] 以Hz为单位指定滤波器带宽的频率范围。

* [参数:y]=带通(_,名称,值) — 为具有一个或多个参数的任何先前语法设置附加选项 Name,Value.

* <参数:y>=带通(_;out=:plot) — 绘制输入信号并叠加滤波后的信号。

争论

输入参数

# *x* — 输入信号

+ 向量资料 | 矩阵

Details

指定为矢量或矩阵的输入信号。

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

# *wpass* — 归一化带宽频率 范围+ 向量资料

Details

归一化带宽频率范围,定义为具有间隔中的元素的双元素向量 (0, 1).

# *fpass* — 带宽频率范围,Hz

+ 向量资料

Details

带宽频率范围,定义为具有间隔中的元素的双元素向量 (0,[参数:fs]/2) 以赫兹为单位。

# *财政司司长* — 抽样调查 费率+ 标量,标量

Details

的采样频率,设置为正实标量。

名称-值输入参数

指定格式中的可选参数对 名称,值,在哪里 姓名 -参数的名称,以及 价值 -适当的值。 名称-值参数应该放在其他参数之后,但对的顺序无关紧要。

使用逗号分隔名称和值,以及 姓名 把它放在引号里。

*例子:* f=带通(x,200,fs,"StopbandAttenuation",30).

# *冲动反应* — 脉冲响应类型

+ "汽车" (默认情况下)| "冷杉" | "iir"

Details

滤波器的脉冲响应类型,设为 "冷杉", "iir""汽车":

* "冷杉" -该函数设计了一个具有有限脉冲响应(FIR)的线性相位最小阶滤波器。 为了补偿延迟,该函数将添加到输入信号 零,在哪里 -过滤顺序。 该函数然后过滤信号并删除第一个信号。 在输出处计数。

+ 在这种情况下,输入信号必须至少是符合规格的滤波器的两倍。

* "iir" -该函数设计了具有无限脉冲响应(BIH)的最小阶滤波器,并使用该函数 *n.过滤,过滤* 来执行零相位滤波和滤波器延迟补偿。

+ 如果信号比满足规范的滤波器长不到三倍,则该函数设计一个较低阶的滤波器,因此具有较低的陡度。

* "汽车" -如果输入信号足够长,该函数设计一个最小阶FIR滤波器,否则设计一个最小阶FIR滤波器。 具体来说,该函数执行以下步骤: **计算FIR滤波器必须具有的最小阶数以满足规格。 如果信号至少是所需滤波器阶数的两倍,则设计并使用此滤波器。 **如果信号不够长,计算FIR滤波器必须具有的最小阶数才能满足规格。 如果信号长度至少是所需滤波器阶数的三倍,则设计并使用该滤波器。 **如果信号长度不足则将阶数截断为信号长度的三分之一并设计该阶数的IIR滤波器。 顺序的下降由于过渡带的下降的陡度而发生。 **过滤信号并补偿延迟。

# *陡度* — 过渡带下降的陡度

+ [0.85 0.85] (默认情况下)| 向量资料 | 标量,标量

Details

过渡带下降的斜率,定义为区间内有元素的双元素向量 [0.5, 1) 或间隔中的标量 [0.5, 1). 随着陡度的增加,滤波器的脉冲响应接近带通滤波器的理想脉冲响应,但所得滤波器长度也增加,以及滤波操作的计算成本。 有关详细信息,请参阅带通滤波器的陡度下降

# *StopbandAttenuation* — 滤波器的延迟带中的衰减

+ 60 (默认情况下)| 正标量

Details

滤波器延迟带中的衰减,以dB为单位设置为正标量。

输出参数

# *y* — 滤波信号

+ 向量资料 | 矩阵

Details

滤波后的信号作为与输入信号具有相同维数的矢量或矩阵返回。

例子:

带通音调滤波

Details

我们将生成一个频率采样的信号 1 kHz期间 1 几秒钟。 该信号包含三个音调:频率为 50 赫兹, 150 Hz和 250 赫兹。 高频和低频音调的幅度是中间音调幅度的两倍。 将具有方差的高斯白噪声添加到信号中 1/100.

import EngeeDSP.Functions: bandpass, randn

fs = 1e3
t = 0:1/fs:1
x = [2 1 2] &ast; sin.(2π &ast; [50; 150; 250] .&ast; reshape(t, 1, :)) + randn(1, length(t)) / 10

使用带通滤波器对信号进行滤波,以去除低频和高频分量。 指定带宽频率 100 Hz和 200 赫兹。 我们将输出原始和滤波信号以及它们的光谱。

bandpass(x,[100 200],fs; out=:plot)

bandpass 1

带通滤波器的陡度下降

Details

滤除频率采样的白噪声 1 kHz,使用具有无限脉冲响应和带宽的带通滤波器 100 赫兹。 我们使用不同的陡度值。 让我们绘制滤波信号的光谱。

import EngeeDSP.Functions: randn, bandpass, pspectrum

fs = 1000;
x = randn(20000,1);

y1 = bandpass(x,[50 150],fs,"ImpulseResponse","iir","Steepness",0.5)
y2 = bandpass(x,[200 300],fs,"ImpulseResponse","iir","Steepness",0.8)
y3 = bandpass(x,[350 450],fs,"ImpulseResponse","iir","Steepness",0.95)

pspectrum([y1 y2 y3],fs,out=:plot)

bandpass 2

让我们通过在带宽的较低和较高频率设置不同的陡度值来使滤波器不对称。

y1 = bandpass(x,[50 150],fs,"ImpulseResponse","iir","Steepness",[0.5 0.8])
y2 = bandpass(x,[200 300],fs,"ImpulseResponse","iir","Steepness",[0.5 0.8])
y3 = bandpass(x,[350 450],fs,"ImpulseResponse","iir","Steepness",[0.5 0.8])

pspectrum([y1 y2 y3],fs,out=:plot)

bandpass 3

此外

带通滤波器的陡度下降

Details

论点 [参数:陡峭度] 控制滤镜过渡区域的宽度。 斜率越低,过渡区域越宽。 陡度越高,过渡区域将越窄。

要解释滤波器的陡度,请考虑以下定义:

*_奈奎斯特频率_ -可以在给定频率下采样而不失真的信号的最高频率分量。 奈奎斯特频率为 rad/倒计时如果输入信号不包含时间信息,并且 Hz,如果设置采样率。

*滤波器延迟带的较低和较高频率_ -低于或高于衰减等于或大于使用设定值的频率 [参数:StopbandAttenuation].

*滤波器的下过渡band_的宽度 ,在哪里 -指定带宽频率的第一个元素 [参数:fpass].

*滤波器上部过渡band_的宽度 ,在哪里 -指定带宽频率的第二个元素 [参数:fpass].

*大多数不完善的滤波器也会衰减带宽中的输入信号。 这种与频率相关的衰减的最大值称为带宽脉动。 每个过滤器中使用 *带通* 它在带宽中有涟漪 0.1 分贝。

bandpass cn

要控制过渡条的宽度,可以指定 [参数:陡峭度] 作为二元素向量 ,或者作为标量。

何时 [参数:陡峭度] 设置为向量:

*该函数计算下过渡带的宽度为

+

**何时是第一个元素 [参数:陡峭度] 等于 0.5,过渡的宽度为 50%的 . **随着第一个元素的临近 [参数:陡峭度]1 过渡的宽度逐渐减小,直到达到最小值在 1%的 .

*该函数计算上部过渡带的宽度为

+

**当第二个元素 [参数:陡峭度] 等于 0.5,过渡的宽度为 50%的 . **随着第二个元素的临近 [参数:陡峭度]1 过渡的宽度逐渐减小,直到达到最小值在 1%的 .

何时 [参数:陡峭度] 作为标量给出,那么函数:

*计算 使用指定的标量值。 *创建一个对称滤波器,其下部和上部过渡带的宽度等于 .

默认值为 [参数:陡峭度] 同样 [0.85 0.85].