Цифровая обработка сигналов. Водяные знаки в аудиофайлах: учебное пособие / Е.Л. Столов.

Скрипт 1. Пример вычисления спектра import numpy as пр from m a t p l o t l i b import pyp lo t as p i t ############### def drawF(N): K1 = 10; K2 = 70 Arg = np.arange(N) Argl = 2 . * np .p i * K1 * Arg/N Arg2 = 2 . * np .p i * K2 * Arg/N Sn = n p . s i n (A r g l ) + np . s in (Arg2 ) FSn = abs(np . f f t . f f t ( S n ) ) p i t . p lo t (F S n [ : in t (N /2 ) ] ) N =100 drawF(N) Находим спектр функции с помощью ДПФ. используя разные значения для числа точек N. Результаты представлены па рис. 1.3. Если N = 200, N > 2К2, то получается ожидаемый результат. На рисунке видны пики в точках 10 и 70. Иная ситуация получается, если N = 100, и неравенство N > 2К2 не имеет места. Один пик наблюдается в точке 10, но другой — в точке 30. Здесь проявился эффект подмены частот, определяемый (1.18). Спектр функции сосредоточен в четырех точках ±10 и ± 70. На месте значения —70 появилось значение —70 + 100 = 30. которое и наблюдается на рисунке. Поскольку значения истинных частот заранее не известны, сигнал следует пропустить через аналоговый фильтр низких частот, оставив лишь частоты из нужного диапазона. Ниже будет сказано более подробно о таких фильтрах. 1 .6.4. Оценки спектра произвольного сигнала с помощью ДПФ Пусть имеется сигнал /(<), который представлен в компьютере в виде последовательности /(пТ ) , где 1/Т — частота

RkJQdWJsaXNoZXIy MTExODQxMg==