See the attached picture of a typical hysteresis loop, it is clearly highly non-linear even if you keep the signal small enough to stay out of the saturation region (beyond points b,e). So my question is why does this not result in a non-linear transfer function through the transformer from primary to secondary? Ampere's Law dictates that the H field generated is proportional to the current in the primary, so if I have a sinusoidal current as the input the graph below suggests that this will result in a B field which is a (non-linearly) distorted sinusoid and then the induced voltage in the secondary will be proportional to dB/dt, so it cannot be a sinusoid either, so an input sinusoid doesn't result in an output sinusoid and => the system is not linear. Yet transformers are routinely used in applications like audio where linearity is critical. So it seems that in general transformer transfer functions are linear but I just cant understand how they manage this given the Hysteresis effect, can anyone explain this ?