Страница 1 из 1

Скорость АЦП Меги для применения в спектроанализаторе

Добавлено: Чт окт 23, 2008 17:12:32
Pierburg
Уважаемые коты!!!
Решил сделать цифровой анализатор спектра на меге. Изучил метод дискретного преобразования Фурье, все понятно.
Хочу сделать 20 столбиков с основными частотами 31.25-62.5-125-250-500-1k-2k-4k-8k-16k и еще 10 полуоктавных частот, которые на 1.41 выше основных тонов.
Промоделировал в маткаде, вроде все красиво. Но!!!
Для получения разложения спектра сигнала вплоть до 16кГц и 22.56кГц нужно иметь 32000 и 45000 выборок в секунду. Способен ли на такое АЦП Меги 8 и 16??? В даташите написано, что время преобразования 65-260мкс.
А второй вопрос - это быстродействие.
Нужно 20*2*(1+1024)+20 операций умножения
20 операций нахождения корня и 1024+1 операций сложения
и все это 4-5 раз за секунду
Потянет ли все это мега8-16???
Или делать 4 выборки по 32 значения вместо 2х по 1024???

Добавлено: Чт окт 23, 2008 17:40:58
ARV
напрямую не выйдет, надо хитрить.
АЦП и быстродействия хватит.
Я лично проверял :)))

Добавлено: Чт окт 23, 2008 17:56:35
Pierburg
напрямую это как??? я не совсем понимаю :(

Добавлено: Чт окт 23, 2008 18:11:33
ARV
а вы посчитайте неспеша: солько отсчетов для FFT надо сделать, чтобы получить вашу сетку частот... и станет ясно, что далеко не все так просто в лоб возможно сделать.

Добавлено: Чт окт 23, 2008 18:43:45
Pierburg
ARV писал(а):а вы посчитайте неспеша: солько отсчетов для FFT надо сделать, чтобы получить вашу сетку частот... и станет ясно, что далеко не все так просто в лоб возможно сделать.

Считаю, в слух :)
Надо сделать 1024 отсчета с частотой 32000Гц для получения основных октавных частот, при этом основные частоты будут соответствовать номерам 1,2,4,8,16,32...512 в матрице после дискретного преобразования Фурье
для самого дискретного преобразования для получения значения в определенной частоте надо сделать:
1024*2 операции умножения + 2*1024 операции сложения+2 раза возвести в квадрат и сложить и один раз найти корень
поправьте если не так
:)

Для уменьшения вычислений можно разбить весь диапазон на 2 участка по пять октав и делать 2 выборки по 32 значения, второй путь мне кажется более перспективным :)))

Добавлено: Чт окт 23, 2008 19:18:42
ARV
1024 отсчета в ОЗУ AVR (во всяком случае, очень многих доступных моделей) просто не влезут, особенно если учесть, что потребуется память для FFT и прочего. Но если использование МК с ОЗУ в 4К и более для вас не проблема - количество извращений резко сократится...

мои эксперименты с atmega8 от встроенного 8-мгц генератора привели меня к выводу, что больше 128 семплов обрабатывать особого смысла уже нет - не хватит быстродействия. применять меги с большим объемом ОЗУ - так же, имхо, не имеет смысла - проще (и выгоднее) уже использовать что-то более продвинутое...