Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


Получение спектра

Вы не вошли.

 Поиск | Регистрация | Вход 

Diomer
18.10.2004 22:22:05
#1

Гость

Получение спектра

Не ни у кого библиотеки под линукс для получения спектра (через БПФ)? Под windows посмотрел в интернете - лежат только те, которые используют math.h sad

19.10.2004 10:53:25
#2

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Получение спектра

FFTW, она поиском в самом верху выдается.

Diomer
20.10.2004 00:52:07
#3

Гость

Re: Получение спектра

8-0

А что как много занимает??? (1.9 мега) Мне бы всего-лишь библиотеку с 1-2 процедурами килобайт так на 5 smile

20.10.2004 09:39:44
#4

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Получение спектра

Функций там много и оптимизаций разных. Я под виндой пользую с math.h. Там же функции синуса косинуса и прочие. Берешь любую реализацию и правишь на нужные тебе инклюды чтобы все функции математические были.

Diomer
20.10.2004 12:28:14
#5

Гость

Re: Получение спектра

А функций для получения АЧХ и ФЧХ там нет случаем?

20.10.2004 13:46:05
#6

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Получение спектра

Я не знаю - я ей не пользовался. В виндах я пользовался просто небольшим исходником FFT или старой версией Intel Signal Proccesing Library когда она бесплатной была.

Diomer
20.10.2004 14:16:32
#7

Гость

Re: Получение спектра

Тогда еще один вопрос уже по существу.

Вот я получаю с платы (звуковой карты) поток (код xosc программы):

int i;
int boff;
int BufSize;
char *p;
short *YBuf;

.....
BufSize = SamplesPerFrame * Channels * sizeof(short);

p = (char*) YBuf;

  if(!Pause) if(boff<BufSize)

  {

   i = read(dev, p + boff, BufSize - boff);

   if(i>0) boff += i;

  }

  if(nVirt != -1) if(boff>=BufSize)  /* Buffer is full, draw it */

  {

   boff = 0;

   Oscill(nVirt);

   XCopyArea(prDisplay, nVirt, nWnd, prGC, 0, 0, gWidth, gHeight, 0, 0);

//   Pause=!Pause; 
  }

 
Т.е. по сути получил массив типа char с точками и отрисовал его. Как мне теперь перевести этот массив в массив со спектром (с использованием fftw3).

Извиняюсь, что так нагло попросил исправить код...

20.10.2004 14:18:39
#8

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Получение спектра

Не знаю я:) Не пользовался.

Diomer
20.10.2004 14:33:24
#9

Гость

Re: Получение спектра

Poul: а не могли бы Вы исходник ваш fft мне на мыло кинуть, если остался? Спасибо.

Diomer@trancom.ru