LabVIEW Team Indonesia

cancel
Showing results for 
Search instead for 
Did you mean: 

[ask] need help

hallo,

saya mencoba program NiUSRP Ex PSK Rx dengan menambahkan TDMS function, tetapi setelah dirun muncul error: Overflow: an internal receive buffer has filled before the data could be returned. Consider reducing the IQ rate, increasing the Fetch rate, or increasing the number of samples per Fetch. saya telah mengganti LAN cable, mengubah IQ rate dan sample/symbolnya tetapi tetap saja ada error tsb. Setingan yang saya gunakan:

IQ rate: 1MSample/s

f carrier: 11 MHz

sample/symbol: 8

modulasi: QPSK

symbol rate: 125k

acq duration: 10m

apakah ada yang mengerti solusi dari error tersebut?

trims,

Fredy

0 Kudos
Message 1 of 7
(6,528 Views)

Halo Fredy,

 

Error macam buffer overflow seperti ini biasanya karena data yang ada di buffer di hardware tidak terbaca dengan cukup cepat oleh VI di PC sehingga dia overflow dan datanya hilang.

 

Dalam kasus di atas, jika mengubah spesifikasi RF-nya tidak membuahkan hasil, kemungkinan besar VI di PC terlalu lambat atau bahkan tidak membaca datanya. Jika example-nya bekerja tanpa modifikasi TDMS yang Mas buat, berarti pemrograman TDMS-nya bermasalah sehingga menganggu proses pengambilan data dari buffer.

 

Agar kami bisa bantu lebih jauh, Mas perlu kirim VI atau screenshot-nya yang detil. Info juga USRP model apa yang dipakai. Sebagai referensi, ada beberapa tips untuk mengatasi buffer overflow atau underflow yang tertulis di NI-USRP Help (start >> National Instruments >> NI-USRP), artikel "Data Streaming Performance Tips". Mungkin bisa dicoba terlebih dahulu.

 

Semoga ini membantu.

 

Salam,

Yodha

NI Singapore

0 Kudos
Message 2 of 7
(4,664 Views)

Halo Mas Yodha


Terima kasih mas atas informasinya.

Saya sudah mencoba merunning program "niUSRP EX PSK Rx " yg tidak ditambah block TDMS di VI (file example yg belum diedit), dan sampling rate sudah saya turunkan hingga 200k S/sec, namun tetap overflow.

Kami menggunakan USRP N210 dengan daughterboard LFRX.

Di bawah ini saya lampirkan VI yg sudah ditambah blok TDMS.

Mohon informasinya mas.


Terima kasih.


Fredy

Message was edited by : Fredy

0 Kudos
Message 3 of 7
(4,664 Views)

Halo Mas Fredy,

 

Perlu dicatat bahwa driver NI-USRP untuk LabVIEW tidak sepenuhnya terjamin bisa dipakai untuk USRP dari Ettus (misal N210), sehingga mungkin ini penyebab overflow di aplikasi punya Mas. Ditambah lagi overflow terjadi bahkan saat memakai example dari NI-USRP yang harusnya pasti jalan untuk USRP dari NI.

 

Di USRP Help dari NI tertulis bahwa NI-USRP telah dites dan bisa dipakai untuk USRP N210 dengan LFRX daughterboard, namun ada syaratnya yang tertulis di dokumen NI USRP-29xx Getting Started Guide (halaman 12), yaitu firmware dan image FPGA di dalam USRP-nya harus versi yang support driver NI-USRP dari NI. Jadi sebaiknya Mas cek dengan Ettus apakah firmware dan FPGA image di N210-nya kompatibel dengan driver NI-USRP.

 

Saya hanya bisa bantu sampai ini saja karena NI tidak officially support USRP buatan Ettus. Baiknya kontak Ettus untuk cek lebih jauh.

 

Salam,

Yodha

NI Singapore

0 Kudos
Message 4 of 7
(4,664 Views)

Halo Mas Fredy,

 

Kebetulan saya dapat dua NI USRP-2920 dari teman kantor; ini mengingatkan saya tentang problem Mas di atas, jadi saya coba run example niUSRP EX PSK Rx dan yang Tx dari LabVIEW dengan itu. Setting-nya mirip yang Mas pakai tapi carrier frequency-nya 250 MHz (limitasi spek). Setelah run selama beberapa saat, error yang sama juga muncul di sistem ini, jadi sumber masalahnya bukan dari driver.

 

Setelah saya teliti, kemungkinan besar penyebabnya adalah operasi PSK demodulation yang dilakukan di loop yang sama dengan acquisition (niUSRP Fetch Rx Data). Biasanya demodulasi perlu waktu lebih lama dibanding acquisition karena operasinya rumit, sehingga kalau ditaruh di satu loop si demodulasi menunda acquisition. Jika ditundanya cukup signifikan, tidak lama kemudian buffer-nya USRP akan overflow.

 

Karena itu, saya pisahkan acquisition dan demodulation di dua loop terpisah lalu transfer datanya pakai queue, seperti terlihat di gambar di bawah.

2013-12-23 Snippet Two Loops.jpg

 

Setelah itu, error Buffer Overflow dari USRP tidak muncul lagi.

 

Namun sekarang masalahnya pindah ke PC, karena loop-nya demodulation tetap lebih lambat dari acquisition sehingga buffer di queue bisa overflow (kalau dipasang limit; kalau misalnya tidak pakai, semua memory PC akan habis dipakai LabVIEW lalu muncul error). Namun karena di PC, kita lebih punya kontrol untuk mengatasinya, misal dengan stream data langsung ke file dahulu tanpa analisa untuk nanti di-demodulasi setelah selesai recording. Atau monitor buffer di queue dan decimate datanya jika oke. Bisa juga memisahkan loop untuk display graph karena ini juga makan banyak memori kalau datanya banyak. Solusi yang optimal tergantung dari aplikasi dan sistemnya, jadi Mas perlu coba-coba. Kalau di PC saya memorinya habis oleh labVIEW setelah 10 menit.

 

Untuk info yang detil mengenai optimisasi memory di LabVIEW, silahkan cek artikel Managing Performance and Memory di LabVIEW Help (Ctrl + ?), terutama bagian VI Memory Usage. Jika mau pakai TDMS, sebaiknya pakai yang low-level, jangan dari yang express karena tidak optimal pemakaian memory-nya.

 

Semoga info ini bermanfaat ya.

 

Salam,

Yodha

NI Singapore

 
0 Kudos
Message 5 of 7
(4,664 Views)

Terima kasih banyak Mas atas informasinya. Ini sangat membantu.

Saya ingin tanya lagi Mas, untuk menghitung secara matematis jumlah data yang disimpan dalam file TDMS bagaimana ya?

Bisakah diberikan contoh perhitungannya?

Kemudian apakah variabel amplitudo pada signal graph (misalkan sinyal sinus) satuannya berupa volt?

0 Kudos
Message 6 of 7
(4,664 Views)

Sudah saya reply ya di thread lain yang Mas buat.

Salam,

A. Yodha

NI Singapore

Message 7 of 7
(4,664 Views)