Engee 文档

布莱克曼

布莱克曼的窗户。

库::`工程师`

语法

函数调用

争论

输入参数

# L — 窗口长度

+ 一个正整数

Details

的窗口长度,设置为正整数。

如果你问 L 作为一个非整数,函数会将其舍入到最接近的整数值。
数据类型

漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64</无翻译>

# sflag — 窗口选择

+ "对称" (默认情况下)| "定期"

Details

窗口选择方法,设置如下:

  • "对称" —使用windows设计过滤器时使用此值。;

  • "定期" —使用windows进行光谱分析时使用此值。 选择值时 "定期",功能 布莱克曼 计算窗口长度 [参数:L]+1 并返回第一个 [参数:L] 分。 缺失的端点是序列的下一周期周期性扩展的开始。 因此,该序列满足离散傅立叶变换的周期性的假设。

数据类型

字符串</无翻译>

# 类型名称 — 输出数据的类型

+ 漂浮64 (默认情况下)| 漂浮物32

Details

以下列方式之一指定的输出数据(类)的类型:

  • 漂浮64 -使用此值返回输出数据。 [参数:w] 具有双精度。

  • 漂浮物32 -使用此值返回输出数据。 [参数:w] 具有单一精度。

数据类型

数据类型</无翻译>

输出参数

# w — 布莱克曼之窗

+ 列向量

Details

Blackman窗口作为列向量返回。

例子:

布莱克曼之窗

Details

让我们创建一个Blackman窗口 64 点。 让我们使用显示结果 情节.

import EngeeDSP.Functions: blackman
using Plots

L = 64
w = blackman(L)

plot(w,
     title = "Time domain",
     xlabel = "Samples",
     ylabel = "Amplitude",
     linewidth = 2,
     color = :blue,
     grid = true)

blackman 1

import EngeeDSP.Functions: blackman, fft, fftshift
using Plots

L = 64
w = blackman(L)
N_fft = 1024

window_fft = fft([w; zeros(N_fft - L)])
freq_response = 20 * log10.(abs.(fftshift(window_fft)) .+ eps())

freq_axis = range(-π, π, length=N_fft)

plot(freq_axis, freq_response,
     title = "Frequency domain",
     xlabel = "Normalized Frequency (×π rad/sample)",
     ylabel = "Magnitude (dB)",
     xlims = (0, π),
     ylims = (-140, 40),
     linewidth = 2,
     color = :blue,
     grid = true)

blackman 2

算法

下面的公式定义了一个长度为Blackman的窗口 :

哪里 同样 何时 甚至,和 何时 奇怪的那个。

在对称情况下,布莱克曼窗口的后半部分, ,是通过相对于中点反射前半部分而获得的。 当在FIR滤波器中使用Blackman窗口时,对称变体是优选的方法。

周期布莱克曼窗口是通过将所需窗口长度扩展一个计数来构建的 ,构造对称窗口并移除最后计数。 在频谱分析中使用布莱克曼窗口时,周期性变体是首选方法,因为离散傅立叶变换涉及输入矢量的周期性扩展。

文学作品

  1. Oppenheim,Alan V.,Ronald W.Schafer和John R.Buck。 实时信号处理。 Upper Saddle River,NJ:Prentice Hall,1999,第468-471页。