布莱克曼
布莱克曼的窗户。
库::`工程师`
语法
函数调用
-
[参数:w]=布莱克曼([参数:L],[参数:sflag])-使用参数指定的窗口选择返回Blackman窗口[参数:sflag].
-
[参数:w]=布莱克曼(___,[参数:typeName])-表示返回窗口的可能性[参数:w]具有单精度或双精度。
争论
输入参数
# L — 窗口长度
+
一个正整数
Details
的窗口长度,设置为正整数。
如果你问 L 作为一个非整数,函数会将其舍入到最接近的整数值。
|
| 数据类型 |
|
例子:
布莱克曼之窗
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)
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的窗口 :
哪里 同样 何时 甚至,和 何时 奇怪的那个。
在对称情况下,布莱克曼窗口的后半部分, ,是通过相对于中点反射前半部分而获得的。 当在FIR滤波器中使用Blackman窗口时,对称变体是优选的方法。
周期布莱克曼窗口是通过将所需窗口长度扩展一个计数来构建的 ,构造对称窗口并移除最后计数。 在频谱分析中使用布莱克曼窗口时,周期性变体是首选方法,因为离散傅立叶变换涉及输入矢量的周期性扩展。
文学作品
-
Oppenheim,Alan V.,Ronald W.Schafer和John R.Buck。 实时信号处理。 Upper Saddle River,NJ:Prentice Hall,1999,第468-471页。