The crossover distortion can easily be controlled with light DC loading at the output of the 358. The 4.7k resistor is placed for this purpose. The value can be adjusted for lowest distortion.
https://www.youtube.com/watch?v=9a-F59UnEY8 Watch from the 17:00 mark on or at 27:00 for the actual fix
Another example:
https://www.youtube.com/watch?v=VgodYtiD_F0
Most good specimens of the LM358 from reputable manufacturers can still perform well at 5 kHz in this circuit.
Using a single supply for this circuit, it performs better with just the local feedback. If you can add some negative supply, the distortion can be reduced an order of magnitude with global feedback.
I have bread-boarded this circuit configuration before using a 358 and will post some results later to illustrate.
----------------------------
With the supply slightly higher at 25 V, it gives a good 20 Vpp swing on the load.
With the DC load resistor (4.7k) reduced to 2.2k, the THD dropped down to 0.7%. Not bad at all, since the Agilent FG source produce about 0.05% of this.
At 6.5 kHz, the THD was up to 1% and climbing fast with an increase in frequency. At 7.5 kHz, it is severely slew-limited.
The GWInstek FG mentioned in the first post can't do better on distortion anyway.
Spec:
(–55 dBc DC ~ 200kHz, Ampl > 0.1Vpp)