Page 1 of 1

Interface for ultrasound signal?

Posted: 03 Dec 2024, 22:13
by Bruce4
Hi, I'm new to the forum. We have used RevPi Connect and AIO modules for many data processing before. Our new project needs to deal with ultrasound signals, such as waveform, amplitude. I wonder is there an interface or module that can receive and process such signals from an ultrasound receiver or oscilloscope, and pass them to the controller? Thanks!

Re: Interface for ultrasound signal?

Posted: 04 Dec 2024, 14:09
by dirk
Hi short answer No, I don't think so. But let's consider what is possible. The existing analog modules are these Here is the documentation regarding analogue outputs:
You can take a look at this helpful tutorial from our Knowledge Base regarding the opposite way:
Measuring analog data with the RevPi AIO module

Re: Interface for ultrasound signal?

Posted: 04 Dec 2024, 21:12
by Bruce4
dirk wrote: 04 Dec 2024, 14:09 Hi short answer No, I don't think so. But let's consider what is possible. The existing analog modules are these Here is the documentation regarding analogue outputs:
You can take a look at this helpful tutorial from our Knowledge Base regarding the opposite way:
Measuring analog data with the RevPi AIO module
Thank you, Dirk. Is that because the modules cannot handle the higher frequency of an ultrasound signal? What if we use an ADC (analog-to-digital converter)?

Re: Interface for ultrasound signal?

Posted: 09 Dec 2024, 09:27
by dirk
Hi Bruce4, well, I didn't really understand your question about an analog to digital converter. It is all about the Nyquist–Shannon sampling theorem. It says restore frequency needs double the generator frequency.

The data flows as follows: The AIO Module can process data that comes from the PiBridge. For example, to control the voltage level of analog output 1 you just write the value to the process image, i.e. via "piTest -w AnalogOutput_1,1000". It is then transferred via the PiBridge to the AIO Module.

Take a look at the variable "RevPiIOCycle". This value is the measure of how much time the data exchange requires. Execute that command to read it out on your system:

Code: Select all

piTest -1 -r RevPiIOCycle
This value depends on your hardware, so I can't determine it for you.

But let's assume the value is 2. In reality, this corresponds to up to 2.99 MS. so lets round it up to 3 MS. In case you miss a cycle, you need twice that time on worst case. So you can process data in 6 MS. Converted the frequency is f=1/t which is 1/(0.006 s) so about 166,67 Hz.

Back to the Nyquist theorem, you can restore just the half of it which would be about 83 Hz.