Adding to AG6YO's excellent answer:
Software defined radio depends on a signal that is well digitizable by the ADC, and that usually includes amplification in the analog domain. The typical signal chain hence would kind of look like:
Antenna ➔ RX Port ➔ LNA ➔ Mixer ➔ Low/Band pass Filter ➔ ADC ➔ DSP ➔
⮤ Synthesizer -----------------------⭠
- Antenna: Receives EM wave
- RX Port: well, connect the antenna
- LNA (Low Noise Amplifier): The first amplifier in a receive chain dominates the noise figure, hence use a low noise one here, and sprinkle in adjustable amplifiers anywhere you see fit further down before the ADC
- Mixer: Mixes down (and up, and twice up, and...) the receive signal with the local oscillator (LO) as generated by the synthesizer. If it mixes directly to baseband, you get an I/Q "complex" baseband signal (two lines). If it is designed to mix to an IF (intermediate frequency), you just get a single signal.
- Synthesizer: In essence, a programmable oscillator. Typically uses something like fractional-N techniques to generate a lot of selectable frequencies from a single reference oscillator. Frequency error of these frequencies is defined by the reference's performance. Typically addressed by software running on the computer.
- Low pass filter: As per Nyquist you mustn't have any signal more signal than the ADC can represent unambigously; which means that you need to restrict the bandwidth of the analog signal to half the sampling rate per real channel; usually, if done in baseband, you just use a low pass filter for that with half the sampling rate as stop band edge, though it's also common to see Intermediate Frequency (IF) systems that use a Nyquist-rate band around a non-zero frequency.
- ADC (Analog to Digital Converter): Samples the signal at discrete times (dictated by the sampling rate $f_\text{sample}$), holds its value at that instant for as it takes to get a digital reading, sends that reading over to some DSP chain, usually even still on the device
- DSP (Digital Signal Processing): First of all, there's no ADC with e.g. USB, so you need some silicon to buffer samples on one end and on the other hand put them in to computer bus packets. Then, it's often desirable to do some digital signal processing already on the device. For example:
- your synthesizer can generate many frequencies, but not all; hence you still have a frequency offset that you can now get rid of by shifting the signal in frequency domaint (i.e. multiply with $e^{j2\pi f_\text{offset}}$)
- your ADC runs continuously at 2x 100MS/s for I and Q – so the spectrum your observing is $(-\frac{100\text{ MHz}}2, \frac{100\text{ MHz}}2)$ around the center frequency. Problem is: your transport (e.g. Gigabit Ethernet) cannot possibly transmit that many samples ($100\cdot 10^6 \frac{\text S}{\text s}\cdot \frac{16\text{bit [I]}16+\text{bit [I]}}{\text S}=3.2\frac{\text{ Gb}}{\text s} > 1\frac{\text{ Gb}}{\text s} $)
You hence have to filter and decimate in the DSP chain already
- You know your mixer's imperfections (different gains on I and Q), and you want to compensate for those without tasking your computer
Then comes the interconnect to whatever runs your DSP software – for example, a PC, or a single board computer like the popular Raspberry Pi.
They then get a clean sample stream representing a bandwidth "as it was on the air", and then can demodulate it to their will. Modern PC hardware is quite capable, so for example, you can take a laptop, and with something that sends 25 MS/s over network or USB3, look at all the FM broadcast radio range (87–108 MHz) at once, easily, and just pick arbitrarily many stations at once to demodulate to audio and play/save for later etc. At the same time, you could decipher the bus sign information that are present in that spectrum as well.
If the mixer and synthesizer allows, you could tune the same device to 2.4 GHz and reconstruct operation of RC cars, or what your neighbour was typing (which is not really that much of a surprising fact, but makes the round in the media lately.
Or you could receive NOAA weather images, or listen to aircraft transponders, or ship transponders, or just tune in to your friendly ham discussions :)
The nice thing about having the ADC sample a relatively high bandwidth is indeed that good filters are expensive – only in the real world.
If your ADC is not running into any clipping problems, and there's no strong nearby signals that desensitize your analog amplifiers, and let's say you've got a noise floor at -100 dBm/Hz and a CW at -93 dBm, then you'd need a 10 Hz wide filter just to get an SNR of 3dB. Which is pretty complicated and highly specific in analog electronics – but in SDR, you'd just let (if it can do that) the DSP chain give you something very easily processable with a modern CPU, e.g. 0.5MS/s, and then either apply a cascade of decimating filters to further suppress the noise, or just go another route and just estimate the power of that single tone with an algorithm whose job is nothing but to find tones within noise (that could be a so-called parametric spectrum estimator, like ESPRIT).