I want to take a laptop-based ultrasonic radar system and convert it to a hand-held device. I have Tx and Rx filtering circuits already, now I need to decide on what to do the signal processing on. Since I already have a Pi 3B+ it would be helpful to use this to produce a 40 kHz PWM signal, which can be filtered through the Tx circuit to produce a 40 kHz sinusoid, and then sample a received signal through a suitable ADC (perhaps MCP3008?) and process the data on the Pi 3B+. I've read concerns online over the varying rate that is achieved with the pi due to it being a general-purpose device and not receiving data from the MCP3008 in a dedicated fashion. The MCP3008 has a 200 kHz sampling rate but I doubt I will achieve above 60 kHz with the Pi. I ideally need 65 khz sampling rate, so, am I totally wrong here? Will this work with a Pi 3B+ and an MCP3008? Or do I need a different ADC? Or should I consider a DSP? (I have seen also that I could use my arduino with the MCP3008 for sampling then transfer this data to the Pi for processing - perhaps this is the best option given what I already have?)
Unless you use a real time kernel, you're very unlikely to get anything close to that sample rate, and even then, i think its unlikely.
It would be a lot easier to use a DSP or general microcontroller (I really do like the RP2040 / Raspberry pi pico) to do the sampling (with the ADC you mentioned as the RP2040 only has 3 ADCs) do any basic filtering / conditioning and shove it through the serial port (USB) to the Pi for more meaningful calculations. You may be able to do the calculations on the pico / RP2040, i don't know.