• Как устроены гитарные тюнеры?

    @MichaelBorisov
    Применяется частотный анализ (основанный на преобразовании Фурье или Wavelet и др). Музыкальный звук в частотной области представляет собой набор пиков. Первый пик на самой нижней (базовой) частоте, а остальные — на кратных ей частотах. В простейшем случае алгоритм таков:

    1) Записываем кусок звукового сигнала
    2) Вычисляем спектральную плотность мощности (СПМ) методом Уолша (Welch) или другим.
    3) Ищем на СПМ первый пик, берем его частоту.
    4) Вычисляем номер ноты по формуле:
    N = 12*log2(f/440), где f — частота, в Гц, где находится первый пик
    номер ноты получается в полутонах относительно ля первой октавы (эта нота имеет частоту 440Гц, отсюда и константа в формуле).

    Если N получается близким к целому — значит подстройка выполнена точно на ту ноту, которой соответствует N. Если дробная часть N больше 0.1 или меньше 0.9 — значит подстройка неточная.

    Поиск пика по СПМ — нетривиальная задача, потому что локальных максимумов там много из-за шума, а глобальный максимум не обязательно является первой гармоникой (он может быть на кратной базовой частоте). Поэтому можно, например, найти сначала глобальный максимум, а потом поискать, нет ли локальных максимумов на частотах, близких к дольным от частоты глобального максимума, и при этом имеющих амплитуду, скажем, не менее 1/2 от амплитуды глобального максимума.
    Ответ написан
    2 комментария
  • С какого фреймворка стоит начать (Yii, zend, symfony)?

    ckald
    @ckald
    CodeIgniter. Мне кажется, он очень удачно направляет начинающего разработчика. И, при этом, отлично справляется с огромными или высоконагруженными проектами.
    Ответ написан
    2 комментария
  • Каковы трудозатраты на создание квадрокоптера?

    Infthi
    @Infthi
    Пока могу посоветовать идею для корпуса: www.youtube.com/watch?v=-HnwhGgsgXc
    Ответ написан
    Комментировать