Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: FFT используя FFTComplexIP
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
Petrovich
Подскажите кто знает. Делаю FFT для dsPIC33 используя библиотечную функцию FFTComplexIP.
Входной массив описан вот так:
fractcomplex Input_Sygnal[2048] __attribute__ ((space(ymemory), aligned (4096)));
twiddleFactors описан так:
const fractcomplex TwidFactors[1024] __attribute__ ((space(auto_psv), aligned (4096))
Входной массив заполняю так:
Input_Sygnal[Count_Samples].real = ADC;
Input_Sygnal[Count_Samples].imag = 0;

FFT делаю так:
FFTComplexIP(11, &Input_Sygnal[0], (fractcomplex *) __builtin_psvoffset(&TwidFactors[0]), (int) __builtin_psvpage(&TwidFactors[0]));
BitReverseComplex (11, &Input_Sygnal[0]);
SquareMagnitudeCplx(2048, &Input_Sygnal[0], &Input_Sygnal[0].real);

В результате все Input_Sygnal[].real всегда равны 0, при любом сигнале подаваемом на вход. Ни черта не могу понять, вроде все так как в ихних примерах, почему не работает? 07.gif Подскажите кто знает...
Vlad27
Входной массив пустой? Может с АЦП не считываются входные данные? А в симуляторе как?
Petrovich
Данные с с АЦП идут конечно.
Petrovich
Эту проблему победил, но возник иной вопрос.
Частота семплирования 8192Гц. На вход подаю 1кГц. Накапливаю 2048 выборок. После FFT просматриваю 1024 значения Input_Sygnal[].real. Наблюдаю две палки симмитричные относительно 512. первая стоит приблизительно на 125 месте. Почему так? Разрешение по частоте должно быть 4 Гц, палка должна быть на 250-м месте и ни какой второй быть не должно. Или я что то не понимаю??
Petrovich
Все заработало,
вот здесь SquareMagnitudeCplx(2048, &Input_Sygnal[0], &Input_Sygnal[0].real);
нельзя подставлять в качесве выходного входной массив. Хотя имеено так сделанно в микрочиповском примере. На самом деле надо делать так:
SquareMagnitudeCplx(2048, &Input_Sygnal[0], &Out_FFT[0]);
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.