Зарегистрирован: Ср сен 07, 2011 18:59:45 Сообщений: 4
Рейтинг сообщения:0
Добрый день, уважаемые Коты! Требуется Ваша помощь.
Перерыл все интернеты и наш форум в частности, но так и не нашёл необходимого.
В общем, нужен пример использования быстрого преобразования Фурье для CVAVR.
Задача простая: считывать сигнал с АЦП контроллера AVR, выделить его спектр, вывести результат на 8-ми битный порт(каждому выводу которого соответствует свой диапазон частот). В итоге должна получиться ЦМУ
Знаю о существовании прекрасной библиотеки http://elm-chan.org/works/akilcd/report_e.html но она для avr-gcc, а работать я умею только с CVAVR, а перекомпилировать под свою среду у меня не получается, хотя очень хочется использовать ту библиотеку.
Добавлю: не для коммерческих целей и не для курсового/диплома: только спортивный интерес. Вся надежда остаётся только на Вас: сам я пока не обладаю достаточными знаниями даже для того, чтобы перекомпилировать библиотеку Чана, а не то чтобы с нуля написать свою:cry:
В файле variables.c нужные переменные. Ненужные выкинуть, т.к. этот файл выдернут из исходника. Ну и сам FFT. PS. Счас проверю прикрепляемость. PPS. Оппа, прикрепилось!
Заголовок сообщения: Re: FFT (БПФ) в CodeVisionAVR
Добавлено: Чт фев 09, 2012 13:59:57
Родился
Зарегистрирован: Ср сен 07, 2011 18:59:45 Сообщений: 4
Рейтинг сообщения:0
pyzhman, при попытке компиляции выдаёт несколько ошибок(компилятор - CVAVR 2.04.4a):
2 штуки undefined symbol 'PI' - их я исправил введя переменную float PI=3.1415; - правильно ли я сделал?
4 штуки undefined symbol 'sin' - к чему относится "sin" ?
Также выскакивает Warning: included from: 1.c: overflow is possible in 16 bit addition, casting to 'long' may be required , несмотря на то, что тип проблемной переменной указан как long int
Честно говоря, недалеко продвинувшемуся тяжело разобраться в этом коде, тут ещё и TWI переплетается, пытаюсь вычистить код. Ну и после всего, как же в итоге сравнивать полученный результат с критериями(нужными диапазонами?)
Прицепите библиотеку math.h. Пи и синусы появятся. На варнинг забить. Результат преобразования заносится в исходный массив. Делаем с ним то, что хотим.
Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.
Заголовок сообщения: Re: FFT (БПФ) в CodeVisionAVR
Добавлено: Чт фев 09, 2012 14:50:57
Родился
Зарегистрирован: Ср сен 07, 2011 18:59:45 Сообщений: 4
Рейтинг сообщения:0
Есть ещё несколько вопросов: atmega8 эту функцию не потянет, как я вижу? Используется аж 2184 байта SRAM И очередное проявление моей глупости: что за исходный массив? И как правильно использовать функцию fft?
Как я понимаю нужно произвести несколько замеров, скажем 32. Чем больше замеров будут производиться, тем медленнее будет работать преобразование, но точнее результат. Вот есть у нас вход АЦП. Есть функция fft. Что делать дальше?
mega8 не потянет, т.к. не тот объем памяти. Мною использовалась mega64. Исходный массив - куда забиваются считанные с АЦП данные. Размерность массива кратна двойке. Использование: вызов функции, все готово, в этом массиве находятся частоты и соответствующие им амплитуды. Можно отдельно прогнать через окно, чье-либо. В свое время взято с
Код:
/*********************************************************************** This code is generated by the AlgoPascal translator
This code is distributed under the ALGLIB license (see http://www.alglib.net/copyrules.php for details) ***********************************************************************/
Там было описание что, как и куда. Посмотрите. PS. Может Чан все-таки проще? Картинки во всяком случае красивые.
Заголовок сообщения: Re: FFT (БПФ) в CodeVisionAVR
Добавлено: Пт фев 10, 2012 21:48:22
Родился
Зарегистрирован: Ср сен 07, 2011 18:59:45 Сообщений: 4
Рейтинг сообщения:0
pyzhman, TRIOD, спасибо за отзывчивость! Использовать вырезок из AlgoPascal не имею желания, т.к. неоправданно высокие аппаратные потребности у данного кода.
А вот ссылка TRIOD'а заинтересовала, визуально библиотека выглядит красиво и понятно, вызывая тем самым надежду.
Сейчас я занят аппаратной разработкой(потому особо глубоко не вникал в последнюю ссылку), БПФ будет лишь частью фарша(и хотелось бы, чтобы главной и работоспособной частью)
TRIOD, к Вам вопрос на будущее: для какого компилятора под AVR вы портировали представленный код? И может быть для уверенности поделитесь примером портированного Вами кода(для любого компилятора), если он ещё сохранился и не является военной тайной?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения