Как бы я сэмплировал звуковой тракт на частоте Найквиста, используя c и микроконтроллер? - PullRequest
0 голосов
/ 25 декабря 2010

Это настолько просто и менее расплывчато, насколько я могу это сделать, поэтому, пожалуйста, постарайтесь помочь мне.

Это означает, что я хочу:

1) Ввести звуковую дорожку (Anaglod)

2) С помощью микроконтроллеров АЦП преобразовать ее в цифровуюoutput

3) Затем пусть микроконтроллеры / платы таймера сэмплируют данные с выбранными интервалами.

4) Скажите доске, чтобы она взяла «звуковую дорожку сэмплирования» и сэмплировала ее со скоростью 2B, (B означает самую высокую частоту.

F = частота

F (Гц = 1 / с) Пример 100 Гц = 1000 (Цикл / с) F (s) = 1 / (2f)

Пример проблемы: 1000 Гц = Наивысшая частота 1/2 (1000 Гц) = 1/ 2000 = 5x10 (-3) сек / цикл или частота дискретизации 5 мс

5) Выложите его обратно на АЦП на платах и ​​конвертируйте обратно в аналоговый, таким образом, выход является идеальной реконструкциейисходная звуковая дорожка.

Используя анализ Фурье, я определю самую высокую частоту, на которой я буду дискретизировать дорожку.

Тем не менее, теоретически это звучит достаточно просто и прямо, но мне нужно запрограммировать это на C и использовать мою плату msp430 / плату Experimenters для выборки трека.

Я собираюсь использовать Texas Instruments CCS и Octave для моих программ и отладки. Это - это моя доска, которую я буду использовать.

Вопросы:

Является ли C подходящим языком для этого?Могу ли я получить примеры того, как сэмплировать такт на частоте Найквиста, используя C?Какой код на С скажет плате использовать компонент АЦП?И любая рекомендуемая информация, которая похожа или которая поможет мне в этом проекте.

Ответы [ 3 ]

0 голосов
/ 30 декабря 2010

5) АЦП не выполняет цифро-аналоговое преобразование, потому что это АЦП, а не ЦАП.Но вы можете использовать ШИМ с фильтром нижних частот для вывода аналогового сигнала.

Часто плохая идея дискретизировать сигнал на частоте Найквиста.Это вызовет много псевдонимов на высоких частотах.Например, сигнал с частотой F-deltaF, где deltaF невелик, будет выглядеть как амплитуда F, модулированная 2deltaF.

Вот почему частота дискретизации CD составляет 44,1 кПс, а не 30 кПс (как в два раза 15 кГц - более высокая частотапредел).

0 голосов
/ 24 марта 2011

Вы должны сэмплировать сигнал с частотой, которая в два раза выше самой высокой частоты в вашем сигнале.В противном случае вы получите эффекты сглаживания (искажение исходного сигнала).Невозможно определить самую высокую частоту в вашем сигнале с помощью анализа Фурье, потому что для выполнения fft вы должны преобразовать свой аналоговый сигнал в цифровые значения - с частотой преобразования (которую вы хотите определить с помощью fft).

Наибольшая частота входного сигнала определяется фильтром аналогового входа, который сигнал должен пройти перед аналого-цифровым преобразованием.

0 голосов
/ 29 декабря 2010

Я не совсем понимаю, что вы хотите сделать, но я отвечу на ваши конкретные вопросы.

Да, C - правильный язык для этого.

Вы, вероятно, должны посмотретьв коде приложения на веб-сайте Texas Instruments, чтобы узнать, как взаимодействовать с АЦП.Вы можете начать с примера кода , указанного в нижней части страницы , с которой вы связались .Он имеет код C, который показывает, как использовать АЦП.

Кстати, АЦП преобразует только аналоговый в цифровой.Для перехода с цифрового на аналоговый вам необходим ЦАП, которого, похоже, нет на этой плате.

...