Доброго времени суток, господа! Попытаюсь объяснить, что мне нужно. У меня имеется wav-файл, частота дискретизации которого, допустим, 48кГц, сами данные этого файла, как я понимаю, есть выборки АЦП. Если мы построим график U(t), где U - это значение АЦП, t - время, то получим картину широкополосного спектра частот. Амплитуда U не постоянная. Свою цель я попытался обрисовать на картинке. Синий график - U(t), красный - то, что я хочу получить (прямоугольные импульсы постоянной амплитуды и длительности). Реализовать хочу на ATMega64. Собственно, вопрос состоит в том, как это сделать или, может, существует нечто подобное?
На графике - да, это не модуляция. Я в курсе, что такое есть АМ и ЧМ, просто не нашёл более подходящего термина. Но не в этом суть. НА графике U(t) мы имеем множество максимумов, нифига не равно отстоящих друг от друга => мы имеем некоторые частоты, определяемые расстоянием между максимами U(t). Пусть это временнОе расстояние пишется в какой-нть массив, с этого массива берём эти значения и строим прямоугольные импульсы (постоянной амплитуды и длительности) с соответствующими частотами.
Я думаю всё просто. Методично считываем числа -- результаты АЦП. И если они выше чем, например, десятая доля максимума, запускаем цикл генерации. Соответственно как только условие не выполняется, мы перестаём рубить прямоугольники.
А смысл в том, что если в одном из максимумов будет небольшой провал - проскочет 2 импульса. Должно быть так: если есть значащий гребень на огибающей для U(t) - заменяем прямоугольником.
Сначала сгладь мелкие пики сигнала простейшим ФНЧ первого порядка. Получишь гладкую кривую с определённой верхней граничной частотой. Затем продифференцируй полученный сигнал. При превышении порогового уровня изменяй состояние выхода.
У тебя выходной сигнал изменяется согласно производной входного.
Мега это легко сумеет.
Зы я такое делал аппаратно на двух ОУ. Называется компаратор считывания для ZX Spectrum Ленинград