I guess I'm just curious about the technicalities behind it. I have a file with 44100 samples per second, and I'm asking Wavelab to turn it into a file with 48000 samples per second.
This can be explained at several different levels of technical details. I will do my best to not do the most naive description, but it will definitely not be the full truth. One way to describe it is by talking about the computer algorithm used. The problem with that is that there are actually several different ways to implement the algorithm, and the full truth will not fit into this answer.
First: let us look at the 44100 samples per second. We know that this is only a description of a sound, not the actual sound. The actual sound will only start to exist once it has passed the DA converter. It is like the bits in a .jpg file that is not the picture, the picture comes when you show it on screen or on paper. This comes from an science area called sampling theory that, as witnessed a lot on the net, is a bit too easy to misinterpret. I will try to stay out of those traps here.
Two: we might be looking at it as a DA followed by an AD. This is actually how it is done a lot in the mastering world. Put the signal out to a really good DA-converter. Then create a new file using an AD converter at the new sampling rate.
In order to keep the sound quality both the DA and the AD has to be good. Can we emulate this in software? Sure we can.
Three: a very naive implemenation might be like this. We first translate the input signal into a really good one. How can we know when it is good enough? Let us say that it should have a really high sampling frequency. What about 2116800000 ? The good thing about that frequency is that it same as 44100 x 48000. This would mean that every sample in the 44100 signal will have to create 48000 samples in the new higher frequency. A really naive implementation would simply copy over the bits to a large array. This would be our DA part of the conversion.
Once we have this very high sampling frequency we simply "resample" it using our AD. Take 44100 samples, add them up and calculate the mean value. This is one new of the output samples at the new frequency.
Four: there is however a small problem we have to deal with. The output signal will have spurios noise in it. The reason is that our "perfect" signal at 2116800000 will have some noise at higher frequencys, that is above the 20000 Hz or so we could find in our original file. We need to remove these higher frequencys by using a low-pass filter. Doing a low pass filter in software is easy, making one that sounds good is more complicated but can still be done. So inbetween the AD and the DA we now add a low-pass filter. Actually all real-world DA-s and AD-s has low-pass filters so we are not really destroying the analogy.
Five: of course this is not really how the algorithm is programmed. If nothing else it would be very slow and use a lot of memory. But nowadays computers have both speed and memory which makes it less of a problem. But I leave that to the reader as an exercise ;-) There are shortcuts you can use, maybe selecting only the frequency 21168000 as the good signal. This is 441 x 480 x 100.
// Gunnar