#math
#математика
Вопрос:
Моя математика довольно слабая, и у меня возникает путаница из-за различий. Я пытаюсь выяснить формулу midi, чтобы выводить частоту, когда у меня есть значение midi
MidiNumber = 69 12* Log2(440/Frequency)
Итак, я вывел
Частота = (-69 5280 Log2 среднее число) /(12 Log2)
Если я подключаю что-то, это работает правильно 440 = (-69 5280 Log2 69) / (12 Log2)
Если я сделаю это, все будет работать некорректно (-69 Log[2, 5280.] 69)/ Log[2, 12.]
Это результат, который я получаю в своем программировании, я не знаю точно разницу между двумя уравнениями. Может быть, это 12 * Log2, но это 12 * Log2 [1] или …? Понятия не имею.
Комментарии:
1. Для какого языка отформатированы ваши инструкции?
2. Я пытаюсь заставить мой arduino принимать midi-числа, поэтому я просто пытался перевести производную функцию в код. (-69 Log[2, 5280.] 69)/ Log [2, 12.] дает мне что-то вроде 3,44 вместо 440
Ответ №1:
Часть вашей путаницы, похоже, заключается в том, что Log2 (n) рассматривается как Log2 * n . Log2 на самом деле является функцией, обратная которой равна 2 ^ x .
Итак, ваш вывод должен выглядеть примерно следующим образом:
MidiNumber = 69 12 * Log2(440 / Frequency)
MidiNumber - 69 = 12 * Log2(440 / Frequency)
(MidiNumber - 69) / 12 = Log2(440 / Frequency)
2^((MidiNumber - 69) / 12) = 440 / Frequency
Frequency = 440 / 2^((MidiNumber - 69) / 12)