WAV: преобразование амплитудной модуляции в частотную

Обсуждаем контроллеры компании Atmel.
Ответить
Встал на лапы
Сообщения: 113
Зарегистрирован: Сб янв 11, 2014 21:25:55

Сообщение Alex-Elektron »

Доброго времени суток, господа! Попытаюсь объяснить, что мне нужно. У меня имеется wav-файл, частота дискретизации которого, допустим, 48кГц, сами данные этого файла, как я понимаю, есть выборки АЦП. Если мы построим график U(t), где U - это значение АЦП, t - время, то получим картину широкополосного спектра частот. Амплитуда U не постоянная. Свою цель я попытался обрисовать на картинке. Синий график - U(t), красный - то, что я хочу получить (прямоугольные импульсы постоянной амплитуды и длительности). Реализовать хочу на ATMega64. Собственно, вопрос состоит в том, как это сделать или, может, существует нечто подобное?

P.S. Спасибо за проявленный интерес!
Вложения
Модуляция.jpg
Красный график - то, что нужно мне.
(18.21 КБ) 384 скачивания
Реклама
Вымогатель припоя
Сообщения: 506
Зарегистрирован: Пн авг 31, 2009 22:10:50
Откуда: СК

Сообщение Шурики »

То, что на графике, это не модуляция.
Видимо, имелось ввиду преобразование в ШИМ?
Реклама
Друг Кота
Аватара пользователя
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ

Сообщение просто КОТ »

Что-то я не понял логику... Просто работаем по принципу -- есть сигнал/есть генерация, а нет сигнала -- нет генерации?
Изображение
И ты врёшь!!! © Vladisman
Изображение
Контактная информация:
Встал на лапы
Сообщения: 113
Зарегистрирован: Сб янв 11, 2014 21:25:55

Сообщение Alex-Elektron »

На графике - да, это не модуляция. Я в курсе, что такое есть АМ и ЧМ, просто не нашёл более подходящего термина. Но не в этом суть. НА графике U(t) мы имеем множество максимумов, нифига не равно отстоящих друг от друга => мы имеем некоторые частоты, определяемые расстоянием между максимами U(t). Пусть это временнОе расстояние пишется в какой-нть массив, с этого массива берём эти значения и строим прямоугольные импульсы (постоянной амплитуды и длительности) с соответствующими частотами.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ

Сообщение просто КОТ »

Я думаю всё просто. Методично считываем числа -- результаты АЦП. И если они выше чем, например, десятая доля максимума, запускаем цикл генерации. Соответственно как только условие не выполняется, мы перестаём рубить прямоугольники.
Изображение
И ты врёшь!!! © Vladisman
Изображение
Контактная информация:
Реклама
Встал на лапы
Сообщения: 113
Зарегистрирован: Сб янв 11, 2014 21:25:55

Сообщение Alex-Elektron »

Не совсем так..... Нужно что-то на подобие быстрого преобразования Фурье.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ

Сообщение просто КОТ »

А смысл? Твои прямоугольники не зависят ни от омплитуды входного, ни от формы. Там только временные рамки.
Изображение
И ты врёшь!!! © Vladisman
Изображение
Контактная информация:
Встал на лапы
Сообщения: 113
Зарегистрирован: Сб янв 11, 2014 21:25:55

Сообщение Alex-Elektron »

А смысл в том, что если в одном из максимумов будет небольшой провал - проскочет 2 импульса. Должно быть так: если есть значащий гребень на огибающей для U(t) - заменяем прямоугольником.
Держит паяльник хвостом
Аватара пользователя
Сообщения: 960
Зарегистрирован: Вс дек 02, 2012 16:58:33
Откуда: от туда

Сообщение GARMIN »

Сначала сгладь мелкие пики сигнала простейшим ФНЧ первого порядка. Получишь гладкую кривую с определённой верхней граничной частотой. Затем продифференцируй полученный сигнал. При превышении порогового уровня изменяй состояние выхода.
У тебя выходной сигнал изменяется согласно производной входного.
Мега это легко сумеет.
Зы я такое делал аппаратно на двух ОУ. Называется компаратор считывания для ZX Spectrum Ленинград ;)
Контактная информация:
Ответить

Вернуться в «AVR»