18+
реклама
18+
Бургер менюБургер меню

Александр Иванов – Цифровая обработка сигналов на Python. От инженера к разработчику. (страница 8)

18

Формально DFT записывается так. Для каждой частоты k мы вычисляем:

X[k] = сумма по n от 0 до N-1 от x[n] умножить на e в степени минус j умножить на 2π умножить на k умножить на n, делённое на N.

Не пугайтесь этой формулы. Сейчас мы разберём её по кусочкам и превратим в работающий код. Вы увидите, что за страшными символами скрывается простая и красивая идея.

Комплексные числа: вращающаяся стрелка

В формуле DFT есть загадочная буква j и экспонента. Это комплексная экспонента, и она пугает многих новичков. Но комплексные числа — это не что-то сверхъестественное. Это просто удобный математический инструмент для описания вращения.

Представьте себе стрелку на плоскости. У неё есть длина и направление. Обычные числа могут описать длину стрелки, но не направление. Комплексные числа описывают и то, и другое. Комплексное число состоит из двух частей: действительной и мнимой. Действительная часть — это проекция стрелки на горизонтальную ось. Мнимая — проекция на вертикальную ось. Длина стрелки — это модуль комплексного числа. Угол, который стрелка образует с горизонтальной осью, — это фаза.

Когда мы умножаем сигнал на комплексную экспоненту e в степени минус j умножить на 2π умножить на k умножить на n, делённое на N, мы делаем вот что. Мы берём стрелку единичной длины и начинаем её вращать. Частота вращения зависит от k. Для k=0 стрелка стоит на месте. Для k=1 стрелка делает один полный оборот за N отсчётов. Для k=2 — два оборота. И так далее. Умножая сигнал на эту вращающуюся стрелку, мы проверяем, насколько сигнал похож на вращение с данной скоростью. Если сигнал колеблется с той же частотой, что и вращение стрелки, они будут синхронны, и после суммирования получится большое число. Если нет — они будут расходиться, и сумма будет близка к нулю.

Конец ознакомительного фрагмента.

Текст предоставлен ООО «Литрес».

Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.