Giter Club home page Giter Club logo

Comments (7)

adisuciu avatar adisuciu commented on July 17, 2024

Scopy implements peak-peak measurement for single channels. However measurements across multiple channels cannot be done at the moment, nor mathematical operations with measured values.

from scopy.

danielbon avatar danielbon commented on July 17, 2024

Hi again. Concerning the peak-to-peak measurement, could I get a histogram of a set of peak-to-peak values in an automated way? Do I need a script for it?

from scopy.

adisuciu avatar adisuciu commented on July 17, 2024

There is no way currently implemented to get histogram in an automated way in Scopy. You could use libm2k to acquire the data and process it directly in Python (or another language) - https://wiki.analog.com/university/tools/m2k/libm2k/libm2k

from scopy.

danielbon avatar danielbon commented on July 17, 2024

I have already a python code that is doing that, but it is processing about 17 events/second and it should process more than 800 events/second. Each waveform pulse (bi-exponential shape) has about 500 ns and we have a little less than 1M pulses/second. Probalby, there is some latency/overhead issues due to the USB protocol. Is there any way to improve that? I tried to play with Set kernel buffer count command but it did not change anything at all. Should I work directly with the firmware or use some burst technique?

from scopy.

adisuciu avatar adisuciu commented on July 17, 2024

Setting the number of kernel buffers basically guarantees how many buffers are continous across subsequent acquisitions. In libm2k, you should always use the same number of samples for getSamples() when doing this. On board there is 512 MB of RAM, but some of it is used by the system. In our tests you could reliably use 200MB which translates to 100MS - aprox 1 second of data at maximum sample rate.

The USB 2.0 interface will limit streaming to 2-3 MSPS in our tests. You can run iio_readdev --benchmark to get a more accurate value. Unfortuately there is no way to detect that an overflow occured.

If you can burst, and don't need continous monitoring, you could acquire K buffers where K is the number of kernel buffers. You can then stitch the buffers in the software and analyse.

In certain cases, the triggering mechanism can also be leveraged to get more data - although I don't think it could be used here.

If the USB throughput is still an issue, running the application directly on target could work .. You would need to port your application to C/C++ and crosscompile it to the device and run it there.

https://wiki.analog.com/university/tools/pluto/devs/embedded_code?s[]=standalone&s[]=pluto
This article is for the Pluto, but the same applies to ADALM2000.

-Adrian

from scopy.

danielbon avatar danielbon commented on July 17, 2024

The triggering would be desirable to select the waveforms (pulses with 100 samples) before data transmission to the computer, but I am not sure if it is possible to use it.
If I go for the streaming and do the triggering offline, should I use the getSamples or getSamplesRawInterleaved commands? What about the oversampling?

from scopy.

adisuciu avatar adisuciu commented on July 17, 2024

Oversampling is a divider for the sampling frequency - I think it only works for maximum sampling frequency.

getsamplesrawinterleaved - are the samples as they are sent via libiio
getsamples - are processed to convert to voltages and demuxed to channel std::vectors.
Either is fine.

from scopy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.