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


Работа с библиотекой lcomp в linux

Вы не вошли.

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

Konstantin
14.01.2013 16:02:15
#26

Гость

Re: Работа с библиотекой lcomp в linux

А параметр бит/сек? Его я правильно посчитал?

14.01.2013 16:23:27
#27

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

Re: Работа с библиотекой lcomp в linux

я не помнючто там в wav? но у платы разрядность отсчета 32 бита, а битрейт уже с частотой оцифровки связан.

Konstantin
14.01.2013 17:17:40
#28

Гость

Re: Работа с библиотекой lcomp в linux

dRate = 200, dKadr = 0,01 следовательно
sample rate = 20000kHz = 20000000Hz. Я правильно все понял?

14.01.2013 17:52:56
#29

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

Re: Работа с библиотекой lcomp в linux

частота кадров 1/0.01 те 100кгц. в кадре два отсчета отстоят друг от друга на 5мкс.  в отличии от звуковых плат каналы опрашиваются последовательно, а не синхронно...

Konstantin
15.01.2013 10:34:35
#30

Гость

Re: Работа с библиотекой lcomp в linux

Я понимаю, что каналы пишутся последовательно, но я имел в виду запись с одного конкретного канала (0).
Я делаю запись следующим образом:
FILE *fd;

   fd=fopen("test.dat","wb");
   unsigned int count = 0;

   halfbuffer =IrqStep*pages/2;
   fl1=fl2= (pp[I_ADC_PCI_COUNT_L791] <= halfbuffer/2) ? 0:1;

   for(i=0;i < multi; i++)
   {
      while(fl2==fl1) { fl2 = (pp[I_ADC_PCI_COUNT_L791] <= halfbuffer/2) ? 0:1; usleep(5);}
      tmp1=(unsigned int *)p+(halfbuffer*fl1/2);
      for (int j = 0; j < halfbuffer/128; j++)
      {
    fwrite(tmp1 + count, 1, 4, fd);
    count += 64;
      }
      count = 0;
      fl1=(pp[I_ADC_PCI_COUNT_L791] <= halfbuffer/2)? 0:1;
   }

   fclose(fd);
   complete=1;

При этом, если я открою полученный файл в программе L-Graph и укажу 1 канал, то получу график моего сигнала по веру заполненный какими-то искажениями не известного происхождения. Если же я указываю 2 канала и затем отключаю второй, то получаю мой изначальный сигнал без каких-либо искажений, по крайней мере, визуально... В параметрах платы я выставляю NCh = 16 следующим образом:
   adcPar.t2.NCh = 16;
   adcPar.t2.Chn[0] = 0x0;
   adcPar.t2.Chn[1] = 0x1;
   adcPar.t2.Chn[2] = 0x2;
   adcPar.t2.Chn[3] = 0x3;
   adcPar.t2.Chn[4] = 0x4;
   adcPar.t2.Chn[5] = 0x5;
   adcPar.t2.Chn[6] = 0x6;
   adcPar.t2.Chn[7] = 0x7;
   adcPar.t2.Chn[8] = 0x8;
   adcPar.t2.Chn[9] = 0x9;
   adcPar.t2.Chn[10] = 0x10;
   adcPar.t2.Chn[11] = 0x11;
   adcPar.t2.Chn[12] = 0x12;
   adcPar.t2.Chn[13] = 0x13;
   adcPar.t2.Chn[14] = 0x14;
   adcPar.t2.Chn[15] = 0x15;

В wav заголовке я указываю bitPerSample = 32, sampleRate = 100000, channels = 1 (mono). При прослушивании слышу скрип и на заднем фоне ооооочень ускоренную музыку (запись длилась ~5 минут, а итоговая длина wav композиции ~36 секунд). Попробую сейчас Вам на почту выслать скриншоты L-Graph. Жаль, что нет примеров, это значительно облегчило бы жизнь и мне и тем, кто в будущем столкнется с подобными проблемами...

15.01.2013 11:13:27
#31

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

Re: Работа с библиотекой lcomp в linux

я надеюсь Вы понимате что задали дифф каналы. если нужен моно, то и задавайте 1 канал...

Konstantin
15.01.2013 11:19:11
#32

Гость

Re: Работа с библиотекой lcomp в linux

Хмм... Мне нужно писать данные со всех 16 каналов. В коде выше я пытаюсь писать только с первого, а остальные игнорирую... Или я в чем-то ошибся?

Konstantin
15.01.2013 11:21:01
#33

Гость

Re: Работа с библиотекой lcomp в linux

Выслал Вам скриншоты и образец записанного файла в исходном формате и в wav ...

15.01.2013 11:41:40
#34

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

Re: Работа с библиотекой lcomp в linux

для начала лучше писать все, а потом разбирать. и понятное дело дифф каналы требуют дифф подключения.

Konstantin
15.01.2013 14:59:22
#35

Гость

Re: Работа с библиотекой lcomp в linux

<"для начала лучше писать все, а потом разбирать. и понятное дело дифф каналы требуют дифф подключения.">

Но, тем не менее, мой код правильный? А насчет дифф каналов... Т.е. если я использую все 16 каналов (NCh = 16), то мне необходимо подключение к плате внешних устройств производить определенным образом? Даже если я реально задействую только один канал?

15.01.2013 15:06:54
#36

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

Re: Работа с библиотекой lcomp в linux

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

Konstantin
15.01.2013 15:50:27
#37

Гость

Re: Работа с библиотекой lcomp в linux

<"в коде я канал бы в буфер памяти вычленял, а поттом одна запись этого буфера.">

Именно такова и была задумка... Приведенный код тестовый, но, по-идее, работоспособный...

<"а он у Вас сконфигурен как дифф.">
Вы имеете в виду вот это:
adcPar.t2.Chn[0] = 0x0;
Сейчас почитаю...