Перейти к содержанию
    

FFT используя FFTComplexIP

Подскажите кто знает. Делаю 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: Подскажите кто знает...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Входной массив пустой? Может с АЦП не считываются входные данные? А в симуляторе как?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эту проблему победил, но возник иной вопрос.

Частота семплирования 8192Гц. На вход подаю 1кГц. Накапливаю 2048 выборок. После FFT просматриваю 1024 значения Input_Sygnal[].real. Наблюдаю две палки симмитричные относительно 512. первая стоит приблизительно на 125 месте. Почему так? Разрешение по частоте должно быть 4 Гц, палка должна быть на 250-м месте и ни какой второй быть не должно. Или я что то не понимаю??

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все заработало,

вот здесь SquareMagnitudeCplx(2048, &Input_Sygnal[0], &Input_Sygnal[0].real);

нельзя подставлять в качесве выходного входной массив. Хотя имеено так сделанно в микрочиповском примере. На самом деле надо делать так:

SquareMagnitudeCplx(2048, &Input_Sygnal[0], &Out_FFT[0]);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...