7 ms·
> A computer that can run a MHz frequency transducer is easy and cheap these days, e.g. a raspberry pi’s GPIO pins can run that frequency. This is ridiculous.
by temac 10y ago
> A computer that can run a MHz frequency transducer is easy and cheap these days, e.g. a raspberry pi’s GPIO pins can run that frequency.
This is ridiculous. Transmitting needs a good amount of energy for a high number of channels (several dozen, and quite often > 100), and at a high frequency. And if you are driving a 10MHz transducer, you will for ex drive it with a 80MHz numeric signal (at least when using a low number of levels, which you often wants to in order to keep an high efficiency for the relatively high power TX)... Citing a raspberry GPIO pin to do that shows that guy does not know what he is talking about.
Reception is also not trivial at all, if you want a decent quality. You also sample at a rate > to the centre frequency.
Of course you might be able to construct an amateur toy low-end ultrasound machine, but it would be of no clinical value (and of limited value for a lot of other purposes too). Also without extensive measurements, you should not use your resulting machine on any living thing...
- titanomachy 10y ago> Citing a raspberry GPIO pin to do that shows that guy does not know what he is talking about I think it's pretty clear that he doesn't, but it's not like he's claiming to be an expert.
- SAI_Peregrinus 10y agoAn RPi costs about $30. A cheap FPGA Dev board with enough I/O capability to drive a transducer array costs about $300, and requires someone familiar enough with Verilog/VHDL/etc to actually program the thing. I'd guess he's off overall by at least an order of magnitude in any of his cost estimates, even if all the labor is free. I'm sure such a device can be made much more cheaply than existing solutions, but the author doesn't seem to have a realistic idea of the difficulty.
- temac 10y agoAlso the FPGA is not sufficient. You need something with both power capabilities and a decent freq capability, to drive pulses with some decent energy. On dozen of channels.
- highd 10y agoWouldn't you normally mix down on the receive side for better SNR? Doppler should be pretty negligible, so if your LO tracks the output the receive side could probably be an audio ADC. Power on the output side is the big one for sure, however. Also I'm not sure the transducers cited are anywhere near big enough.
- hwillis 10y agoMixing is only useful when the change in the signal is slow. In ultrasound you're operating around single wavelengths so you can't mix down.
- highd 10y agoFMCW systems would be slowly changing around the central wavelength. It wouldn't work for pulsed systems, though - I'm not sure what's more common.
- hwillis 10y agoPower isn't a problem, because at that frequency any kind of amplifier can be used. Overall IO speed usually is for the simple fact that very few chips are specifically designed for that kind of thing, but it isn't impossible. AM335, FPGA and many DSP chips will handle that level of processing for <$20. The Raspberry Pi can't be used, but you could use a Beaglebone black if you tried hard enough (although it is also a poor choice). Regardless direct sampling ADC at 80 MHz or less is far from an impossible task. In the end I would say the writer is right and you are wrong. He is painting with an extremely broad brush but his guesses are dead on the money. You should look at the links he provides at the bottom, there are exceptionally good DIY and open source ultrasonic machines. Making the transducer is very, very difficult but he doesn't pretend it isn't.
- jjoonathan 10y ago> direct sampling ADC at 80 MHz or less is far from an impossible task The Sonix linked below has 32 40MHz 10bit ADC channels, which is a factor of 64 off from the 80 MHz figure if one were to assume 8 bit, and places us firmly into the realm of several-hundred-dollar ADCs. Not impossible, but I'm pretty sure that's where much of the cost is hidden.
- raverbashing 10y agoYou probably don't need 10bit, but yeah, 32 channels is needed. I wonder how did older machines did that, if it was done using analog processing I wonder if there's an equivalence to 'synthetic aperture radar' on Ultrasound. then maybe you don't need 32 channels
- temac 10y agoVery old machine did some analog processing. Then it switched to digital on dedicated hardware. New machines can do all the processing in software, running on conventional hardware. There is all kind of fun stuff that you can do with ultrasound, and some are similar to 'synthetic aperture radar'. However, 32 channel is still quite low. Lots of probes for humans are commonly using ~100 channels.
- Taniwha 10y agoI think you do something like using a BeagleBone with its PRUs to handle moving all the data somewhere fast enough in combination with a cheap FPGA to drive the transducer(s) and do a little initial signal processibg to reduce the data rate a little. This is a little more complex but the cost is going to be of the same order of magnitiude as a Pi
- hwillis 10y agoThe AM335x isn't designed for data acquisition like this. I should know: I'm doing a project right now with 16 Msamples running through a beaglebone. The PRUs don't really like to write directly to memory very much, and hacky methods are required to prevent segfaults. There are other chips with officially supported DSPs that work much, much better for this sort of thing.
- IshKebab 10y ago> a 10MHz transducer, you will for ex drive it with a 80MHz numeric signal Nope, they basically use a series of pulses at 10 MHz and rely on the frequency response of the transducer to turn it into a nice wave packet. Source (look at pulseShape): http://www.ultrasonix.com/wikisonix/index.php/Texo_Parameters#Transmit_Parameters http://www.ultrasonix.com/wikisonix/index.php/Texo_Parameter...
- temac 10y agoIf you want nice stuff on a probe with an analog center freq of 10MHz, you can do PWM (in various forms) with an higher freq. Now 10MHz is not be the lowest probe freq avail, it depends on the usage. Higher freq gives better resolution, but has a worse penetration.
- spott 10y agoI think you are missing the point. A 10MHz transducer will be resonant at 10MHz. If you drive it with a square wave at 10MHz, it will naturally respond best at frequencies that are 10MHz, and will very poorly respond to frequencies that are not 10MHz. Thus, a 10MHz square wave driving a 10MHz transducer will produce a pretty good 10MHz sine wave sound signal. This does depend on how sharp the resonance is of the transducer, but it shouldn't be that hard. Ignoring that, creating a 10MHz RF sine wave isn't that hard using classical analog techniques: wifi chips in modern computers create a 5MHz carrier wave that can be amplified and doubled with some cheap off the shelf parts.
- temac 10y agoYou typically do short pulses in most modes. You can use some form of PWM to apodize on the edges, when needed.
- jjoonathan 10y ago> Citing a raspberry GPIO pin to do that shows that guy does not know what he is talking about. Agreed, but I wouldn't rule out the possibility that a crazy individual with sufficient hardware and software signal processing experience could make it work, where "work" allows for a significant tradeoff or two compared to a modern commercial machine. DAC is probably the easy part -- use a LFSR and maybe some jellybean filters to get spectral content where you need it. 10MHz is slow enough that you could probably phase it in software if you handwrote everything in bare-metal assembly, paid attention to interrupts and DRAM, etc, etc. At first I thought you'd need a coprocessor (and in that case it might as well be a proper Spartan 6) but perhaps it can be done with a dedicated core. ADC is the probably the harder part. You can't kick the can down the road anymore. Both cost and value are tightly coupled to 2^(bit depth)*(sample rate). If you try to make a shitty ADC out of GPIO pins, you just wind up with a shitty ADC, you can't really hide the flaws and play up the strengths like you did with the DAC. Or maybe I had it backwards and you could use a good DAC and some sort of sigma-delta like trick to make the shitty GPIO - ADC work. Fun stuff to think about, but I suspect the real innovation will happen when someone in hardware realizes that DAC/ADC/FPGA technology has slowly and surely advanced far enough that they can do to the ultrasound market what the DS1054Z did to the oscilloscope market.
- semi-extrinsic 10y agoFor our first child, I was considering building a DIY ultrasound machine, since I had several friends doing their final MSc project on ultrasound hardware and software. I came as far as setting up a shopping list, where I assumed a high-end laptop and Matlab with all toolboxes for free, together with some code from my friends. Still I ended up north of $3k for hardware, and several hundred projected work-hours. A lot of the cost comes from needing 50-100 transducers to get a useable image. OTOH, the single transducer doppler ultrasound devices that's used in early pregnancy to hear the baby heartbeat can be had for $30 on ebay.
- jjoonathan 10y ago> A lot of the cost comes from needing 50-100 transducers to get a useable image. For-parts ultrasound arrays (which are usually broken because of obsolescence, frayed wires, cracked cases, bent connectors, etc, rather than destroyed ceramics) cost tens of dollars on ebay. But I agree with your overall point: hardware hacking ain't cheap. A $3k bench is north of desperation territory but still a fraction of what entry-level EEs get at the company I work for, and we're not in any line of business that would be considered "performance" by test equipment standards.
- zild3d 10y ago> You also sample at a rate > to the centre frequency To be clear, a sampling rate that is only greater than the center frequency isn't very useful. You need the well known nyquist rate, twice the maximum frequency to avoid aliasing https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampli...
- nickff 10y agoYour actual sampling rate will be higher than the Nyquist if you are trying to process data from an array, as the sampling rate required to detect phase shifts depends on the sampling period (which is determined by how quickly you want to 'move' the array).
- cnvogel 10y agoThis is not strictly true. You can reproduce a band-limited signal as long as the bandwidth of this signal is smaller than half the sampling frequency. For example, a signal that only has energy in the range of 9MHz to 11MHz has a center frequency of 10MHz, but a Bandwidth of 2 MHz. You could sample, and reconstruct, the signal perfectly with a sample-rate higher than 4 MHz. Any content between DC and 9MHz that would be present would distort the sampled waveform, though, and create artifacts. https://en.wikipedia.org/wiki/Undersampling https://en.wikipedia.org/wiki/Undersampling Of course, nowadays most often one just uses a very fast ADC, and one can then choose a suitable sub-band by decimation (in a FPGA or ASIC), a kind of digital frequency filtering. Undersampling was often used in older RF gear (and, maybe it still is for reaching the hightest frequencies? I don't know what's the current state of the art).