# Sample Rate Conversion between 32K and 44.1K

I would like to know what are possible/typical efficient implementations (preferably in fixed-point DSP) of synchronous sample rate conversion between 32KHz and 44.1KHz (audio applications). Also, I'd appreciate if you can possibly share DSP utilization (MIPS, code and data memory).

Thanks!

Notes: Just wanted to make my question a bit more clear:

• By "synchronous" I meant 32K and 44.1K sampling frequencies are on the same clock domain.
• I don't think straight forward poly-phase implementation is a good idea here. It is very efficient for conversion between e.g. 32K and 48K, but upsampling and downsampling factors are somewhat large for 44.1K and 32K
• I had an idea to do the sample rate conversion at two steps: first, convert 32K samples to 44K (upsample by 11 followed by downsample by 8, also suggested by Hilmar in the answers section here). Then do 44K to 44.1K conversion using some kind of fractional sample rate conversion (Farrow, all-pass filters, fractional phase interpolator, etc.). I used 7th order Farrow structure but I'm not quite satisfied with distortion and harmonic levels.
• My application is real-time
• With synchronous, do you mean "online"? In other words, a black box that accepts a signal in one sample rate and outputs the same signal at a lower sample rate, possibly on a sample by sample basis (?).
– A_A
Apr 10 '18 at 7:36
• So, on what kind of hardware at you planning to do that? "Efficient" usage of resources of course depends on the kind of resources you have. And: how does the signal enter and leave? What are latency constraints? I think your question could be much, much better if you explain what you are about to build overall! Apr 10 '18 at 11:06
• @A_A Synchronous means that the conversation ratio is constant. Asynchronous means it's time variant. The latter needs to be used to synchronize between two different clock domains. Apr 10 '18 at 13:46
• @Hilmar thank you for the note, I definitely learned something for it :). So, essentially, we are talking about a system that is still working at 44.1 kHz but it carries a signal that is downsampled at 32 kHz? So, basically filtered and the samples dilated? (Any links on the topic?)
– A_A
Apr 11 '18 at 8:49
• @A_A: try this analog.com/media/en/technical-documentation/technical-articles/… or just ask a separate question Apr 12 '18 at 13:20

4. MIPS and memory footprint depend very much different factors. Number of channels to convert, $C$, filter length , $N$, and number of phases $P$. Storage requirements are roughly $(P+C) \cdot N$. MIPS for synchronous are $C \cdot N$ multiply/adds plus some overhead for phase indexing. Asynchronous will be more, maybe $(C+2) \cdot N$, depending on how exactly phase interpolation is done.