It is ok if the filtering is not perfect, I can do it in software well enough. (Like in the soundcard example.)
No, it is not ok. You cannot do it in software, because filtering should be done before ADC.
There are three main issues which require filtering before ADC:
1) All frequencies higher than Fs/2 (where Fs is ADC sampling clock rate) will be folded into first Nyquist zone:
2) Strength out-of-band signals can overload your ADC, if it cannot handle enough dynamic range. This is why more bits resolution is better, because SNR = 6.02 * N + 1.76 [dB], where N is ADC bits resolution.
3) High ADC clock jitter leads to degrade dynamic range. Also it leads to degrade filter parameters for digitally implemented filter, due to the high jitter in the input signal.
Even if you will use ultra low phase noise oscillator for ADC clock and high dynamic range ADC, you will still need to cut off all frequencies above Fs/2. In order to avoid aliases in the first Nyquist zone. This cannot be done in digital domain. So, there is need at least anti-alias LPF before ADC.
You can build your own SDR with high speed ADC and FPGA. For short wave, components will cost you for about 100..200 USD. For example, you can use these ADC:
- 14 bit, 105 MHz ADC:
https://www.aliexpress.com/item/1PC-14-105M-high-speed-ADC-module-data-acquisition-module/32730197994.html- 12 bit, 65 MHz ADC:
https://www.aliexpress.com/item/High-speed-AD-module-AD9226-module-parallel-12-bit-AD-65M-data-acquisition-FPGA-development-board/32832584280.htmlBoth modules are widely used for SDR receivers and suitable for VLF receiver. Both use operational amplifier on the input, this is very good to receive frequencies below 2 MHz. It also works for 2..30 MHz, but if you want to get even better noises and distortions, you can replace op.amp with RF transformer, such as ADT4-1WT.
I tried it and it works good to receive VLF stations. You can even listen for CW at 50 Hz carrier.
Of course, you will need some FPGA borad for DDC processing, because computer cannot handle streams at speed 100-300 megabytes per second. You can use DE0-NANO education board or some cheap Chinese FPGA board.
If you want to cover FM band it will be more complicated, because it will needs ADC with sample rate above 220 MHz. So,it will be more expensive and more complicated to process the data flow.
But you can receive FM band with 65 or 105 MHz ADC through aliases. All what you need is just to put FM band-pass filter (instead of LPF) before ADC to cut off all unwanted frequencies. You also probably will need some amplifier, but actually FM stations usually so strong, so it can be received with no amplifier. I can listen it even without filter on the ADC input.
If you want more cheap solution, then you can use sound card with some mixer and filters. For example this one:
https://www.aliexpress.com/item/1PC-New-Arrival-AD831-High-Frequency-RF-Mixer-Inverter-0-1-500MHz-Board-Module/32823467841.htmlJust put BPF before mixer and LPF after mixer. Also connect LOin to some RF generator and you will be able to listen for 0...500 MHz