С какого (0)? Почему не берем?а отрицательную волну не берем так что суммировать все с "0"
Интересно, почему?Зачем вам компрессор? Тут он скорее зло.
С какого (0)? Почему не берем?а отрицательную волну не берем так что суммировать все с "0"
Интересно, почему?Зачем вам компрессор? Тут он скорее зло.
Да потому, что он компрессор. Вы же хотите цвето-световую реакцию во всем диапазоне громкости, нет?Интересно, почему?
Как раз тут проблем нет. Настраиваете нужное время восстановления. Или вы начитались комментов выше?Да потому, что он компрессор. Вы же хотите цвето-световую реакцию во всем диапазоне громкости, нет?
За даташит спасибо - многое понятно стало. Действительно меряем до опорного только идея в нем заложена совсем другая - так как всего 1024 значений то для повышения точности измерений этим "опорным" напряжением выставляем нужную измеряемую нам величину.@Евгений Л, в даташите все описано же....зачем полемику лишнюю разводить?
Все что касается АЦП находится в районе 213 страницы.
ЧТо касаемо точности, то при внутреннем опорнике точность около 1мВ я как понимаю, единственное что там мешает это шумы от питальника и ЦП, но там еще есть режим понижения шума, хз можно его использовать или нет в нашем случае, скорее всего нет, там проц в сон уходит.
Ну и еще что то нарыл в инете: "Последний параметр, влияющий на точность измерения это внутреннее сопротивление источника сигнала. Разработчики микроконтроллеров ATmega определили, что для сохранения максимальной точности внутреннее сопротивление источника сигнала на аналоговом входе не должно превышать 10 кОм.
В частности, это требование должно быть учтено при использовании на аналоговых входах платы Ардуино резисторных делителей. Эквивалентное сопротивление делителя должно быть не более 10 кОм."
Только не знаю, зачем нам вообще точность в ЦМУ)) у нас проблема то в основном не в точности измерений напряжений и частот, а в кривоватой схеме и коде.
Нет не все а только касающиеся измерения амплитуды встроенным АЦП это п.3. Но даже в этом случае я бы поднял опорное до мах . все остальное имеет место. Но вместе с этим возник вопрос - только что задал перед этим ответом.
@Евгений Л,
Я правильно понимаю, что исходя из того, что Вы изначально неправильно распознали логику работы МК, то все Ваши высказывания относительно данной темы можно считать ложными?
Почему? Для разложения через ряды Фурье вам как раз нужно N семплов амплитудных значений полученных с частотой * 2 от верхней границы. Если вы это сделаете, то все будет хорошо.В такой системе мерять высокие частоты безсмысленно
В теории именно так а тут почитал даташит и впал в ступор: дело в том что начинается измерение не после превышения опорного напряжения сигналом ( некая синхронизация с сигналом) до мах и где можно сделать одно - два измерение и понимать что это и есть амплитуда, а необходимо сделать массу измерений взять мах вычесть минимум и получить амплитуду. Что имеет место для низкой частоты т.к время оцифровки измерения 65 мкС., что при 100 измерениях будет 6,5 мС Таким образом для частоты 50 Гц ( 20 мС) мы за 100 измерений можем получить информацию об амплитуде пропорциональной сигналу (33 (мах)измерение 2 линия - 100 (min) 3 линия или 100 (мах) измерение 3 линия второй группы - 1 (min) измерение 1 линия второй группы. А вот что делать на 10 000 Гц (100 мкС) если измерение длится 65 мкС , Куда оно попадет, сколько измерений делать если в период сигнала влазит только 1 измерение, где брать мах где min. см рис красные лин точка записи 1 и точка записи другая. Зеленые лин точка записи 1 и точка записи другая никакой информации об амплитуде нет. Условно считаем что это высокая частота, что бы рисунок не перерисовыватьПочему? Для разложения через ряды Фурье вам как раз нужно N семплов амплитудных значений полученных с частотой * 2 от верхней границы. Если вы это сделаете, то все будет хорошо.
/* Build raw data */
double cycles = (((samples-1) * signalFrequency) / samplingFrequency); //Number of signal cycles that the sampling will read
for (uint16_t i = 0; i < samples; i++)
{
vReal[i] = int8_t((amplitude * (sin((i * (TWO_PI * cycles)) / samples))) / 2.0);/* Build data with positive and negative values*/
//vReal[i] = uint8_t((amplitude * (sin((i * (twoPi * cycles)) / samples) + 1.0)) / 2.0);/* Build data displaced on the Y axis to include only positive values*/
vImag[i] = 0.0; //Imaginary part must be zeroed in case of looping to avoid wrong calculations and overflows
}
Легко.Я Вас как супер знатока пожплуй спровацирую - покажите линиию ( нарисуйте ) что называется уровнем входного сигнала?
в коде именно "размах" сигнала - громкость.Легко.
Амплитудный уровень сигнала будет равен наивысшему значению, которое попало в окно.
RMS (среднеквадратический) уровень сигнала будет определяться интегралом от отображённой функции.
Уровень сигнала, учитываемый в скетче будет определяться результатом двух преобразований: фильтрации на верхней частоте дискретизации (в реальности - примерно в 1,1-1,2 раза ниже) и определения амплитуды в окне, определяемой буфером.
Для учёта амплитуды потери от частот выше 10кГц (точнее - примерно выше 8кГц) неважны - информации там содержится крайне мало, слух у нас уже сильно понижен на этих частотах и на общую картину это не влияет никак.
Единственное, с чем я не согласен, что громкость = амплитуде. Не знаю также, что там в коде сделано - не смотрел, но также вопрос логарифмической характеристики субъективной громкости должен быть также где-то учтён.
Я только вчера до этого дочитался и планирую начать интегрировать эту "коррекцию восприятия" по звуку и яркости.Не знаю также, что там в коде сделано - не смотрел, но также вопрос логарифмической характеристики субъективной громкости должен быть также где-то учтён.
Смотря какие элементы Вы купили...Господа, прошу совета. Очень хочется собрать себе светомузыку, но к сожалению руки растут из жепы. Все элементы уже приобрел, осталось самое сложное - собрать. Может есть где-нибудь пошаговая инструкция что к чему припаивать?
Это здорово,. что много появляется бесстрашных пользователей Не важно откуда растут руки, если отнестись вдумчиво к вопросу. Есть схема, на которой указано. что к чему соединить. Нужен навык пайки, видеть ситуацию в целом, где и как будут расположены модули, желательно в корпусе. Прочитать внимательно все соответствующие материалы на форуме. Сейчас ответы можно найти в интернете. И пробовать, пробовать, пробовать. Проблемы конечно возникнут, но все они решаемые. На форуме люди никогда не отказывают в консультативной помощи. Дерзай! Ну и советы - прежде. чем что-либо сделать - подумай, а нужно ли оно тебе; боишься - не делай, делаешь - не бойся. Просто спокойно разберись, что и как. Поверь, я вообще очень далек от этих всех дебрей и программирования, тем не менее собрать чего-то проблем нет, вопросы да появляются. Вот, делал без микрофона.Господа, прошу совета. Очень хочется собрать себе светомузыку, но к сожалению руки растут из жепы. Все элементы уже приобрел, осталось самое сложное - собрать. Может есть где-нибудь пошаговая инструкция что к чему припаивать?