i suppose it could be done via a micro with no significant code if you could control the signal level, feed your signal into a schmitt trigger, have that feed into a micro's interrupt pin, and then interrupt on state changes, time the state changes, from that you get a basic interference pattern, and with that you can work out the fundamental and the additional tone, (not really multiple tones, that gets complex fast)
if there was a way to do it simply in analog i would be very interested in hearing it, as its hard to make a pulse counter that's sensitive to 100mV 0-10Khz signals while ignoring 80Khz 500mV background noise, (yes that is the worst case but i may as-well build for it)