blackman
Окно Блэкмана.
| Библиотека |
|
Аргументы
Входные аргументы
#
L —
длина окна
положительное целое число
Details
Длина окна, заданная как положительное целое число.
Если задать L как нецелое число, функция округлит его до ближайшего целого значения.
|
| Типы данных |
|
#
sflag —
выборка окна
"symmetric" (по умолчанию) | "periodic"
Details
Метод выборки окна, задаваемый следующим образом:
-
"symmetric"— используйте это значение при использовании окон для проектирования фильтров; -
"periodic"— используйте это значение при использовании окон для спектрального анализа. При выборе значения"periodic", функцияblackmanвычисляет окно длинойL + 1и возвращает первыеLточек. Отсутствующая конечная точка является началом следующего периода периодического расширения последовательности. Следовательно, последовательность удовлетворяет предположению о периодичности дискретного преобразования Фурье.
| Типы данных |
|
#
typeName —
тип выходных данных
Float64 (по умолчанию) | Float32
Выходные аргументы
#
w —
окно Блэкмана
вектор-столбец
Details
Окно Блэкмана, возвращаемое как вектор-столбец.
Примеры
Окно Блэкмана
Details
Сформируем окно Блэкмана с 64 точками. Отобразим результат с помощью plot.
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)
Алгоритмы
Следующее уравнение определяет окно Блэкмана длины :
где равно , когда четное, и , когда нечетное.
В симметричном случае вторая половина окна Блэкмана, , получается путем отражения первой половины относительно средней точки. Симметричный вариант является предпочтительным методом при использовании окна Блэкмана в КИХ-фильтре.
Периодическое окно Блэкмана строится путем расширения желаемой длины окна на один отсчет до , построения симметричного окна и удаления последнего отсчета. Периодический вариант является предпочтительным методом при использовании окна Блэкмана в спектральном анализе, поскольку дискретное преобразование Фурье предполагает периодическое расширение входного вектора.