Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!linac!att!ucbvax!bennett.berkeley.edu!parks From: parks@bennett.berkeley.edu (Tom Parks) Newsgroups: comp.dsp Subject: Re: 48k to 44.1k sample rate conversion Message-ID: <42200@ucbvax.BERKELEY.EDU> Date: 18 May 91 22:28:25 GMT References: <5826@media-lab.media.mit.edu.MEDIA.MIT.EDU> <457@valid.valid.com> Sender: nobody@ucbvax.BERKELEY.EDU Reply-To: parks@bennett.berkeley.edu (Tom Parks) Organization: University of California, Berkeley Lines: 30 In article <457@valid.valid.com>, lou@caber.valid.com (Louis K. Scheffer) writes: |> The most straightforward way is as follows: You interpolate 146 zeros |> between every sample to get a data rate of 7.056 MHz. You then |> design a digital filter to low-pass this to 20 KHz. This filter would have a cutoff frequency of approximately 0.003 times the sampling rate, which is not a very easy filter to design. *MANY* filter coefficients would be required for such a filter. Instead, look at the prime factorization of the sampling rates: 44100 = 2^2 * 3^2 * 5^2 * 7^2 48000 = 2^7 * 3 * 5^3 To convert from 48000 to 44100, you can cascade several sample rate converting filters with much smaller ratios. For example, increase the sampling rate by a factor of 3, then decrease by a factor of 2, increase by a factor of 7, decrease by a factor of 2, decrease by a factor of 5, increase by a factor of 7, then decrease by a factor of 2 three times. Some of these filters can have *VERY* broad transition bands since previous filters will have removed components which could cause aliasing. This means that you will only have to design a set of very simple filters, instead of having to design one filter with a huge number of coefficients. You'll find that the computational requirement to implement the cascaded filters is lower. You can also play around with the order in which you raise and lower the sampling rate. Tom Parks parks@janus.Berkeley.EDU University of California, Berkeley