Hi r b-j, I am trying to compute SNR with the method you've suggested. This time I am trying upconversion of a signal from 8KHz to 44.1KHz. I have implemented a four stage SRC code in matlab (with ratios 3/2, 3/2, 7/5 and 7/4 with filter taps 414, 54, 84 and 70 respectively using remez algorithm). I multiply the output by a factor of 441 (3*3*7*7) in time domain to compensate for interpolation stage losses. The frequency response seems to be good. But still I am getting SNR not more than 30-40 DB. I am sure that I am not making a mistake in taking the delay into account. Ray had suggested to check 'Single precision float round-off error'. But I am using simple matlab floating point variables, which are by default double-precision. (Ray, please correct me if I am failing to understand your point.) Please help me out, I am very eager to see 100+DB SNR! Thank you Govind>in article urKdnY7SWfelqaneRVn-gw@giganews.com, Govind at >govind_s@conceptemsys.com wrote on 09/23/2005 12:58: > >> I have written a simple matlab code for converting sampling rate from8KHz>> to 16KHz. Now I have to measure it's SNR. For this I converted boththe>> signals to frequency domain (taking their FFTs) and then computed >> signal-to-noise ratio (sum of squared input spectral samples devidedby>> sum of squared difference between the output spectral samples and the >> input spectral samples). With this method I am getting SNR not morethan>> 50-60dB (even for very high filter lengths). Can you please tell mewhat's>> wrong with my method > >not a particular good method to compute SNR. try upsampling a collectionof>known sine waves from 8 to 16kHz. then generate the exact same sinewaves>(from the same math) but at the 16 kHz rate. make sure you have yourtiming>lined up because your SRC will have some delay. then subtract to get a >difference (or error or "noise) signal and use that in your SNRcomputation.> >> (I have seen posting mentioning that SNR should go as high as 140dB)? > >how long is your impulse response of your LPF? to get 140, you willneed>about a 64 tap FIR. > > >-- > >r b-j rbj@audioimagination.com > >"Imagination is more important than knowledge." > > >This message was sent using the Comp.DSP web interface on www.DSPRelated.com

# SNR computation in SRC (cntd..)

Govind <govind_s@conceptemsys.com> wrote:> I am trying to compute SNR with the method you've > suggested. This time I am trying upconversion of a signal from > 8KHz to 44.1KHz. I have implemented a four stage SRC code in > matlab (with ratios 3/2, 3/2, 7/5 and 7/4 with filter taps 414, > 54, 84 and 70 respectively using remez algorithm). I multiply the > output by a factor of 441 (3*3*7*7) in time domain to compensate > for interpolation stage losses. The frequency response seems > to be good. But still I am getting SNR not more than 30-40 DB.You could consider using Lagrangian interpolation instead of this cascade of filters. Steve

>Govind <govind_s@conceptemsys.com> wrote: > >> I am trying to compute SNR with the method you've >> suggested. This time I am trying upconversion of a signal from >> 8KHz to 44.1KHz. I have implemented a four stage SRC code in >> matlab (with ratios 3/2, 3/2, 7/5 and 7/4 with filter taps 414, >> 54, 84 and 70 respectively using remez algorithm). I multiply the >> output by a factor of 441 (3*3*7*7) in time domain to compensate >> for interpolation stage losses. The frequency response seems >> to be good. But still I am getting SNR not more than 30-40 DB. > >You could consider using Lagrangian interpolation instead of >this cascade of filters. > >Steve >Hi Steve, Thanks for the reply. I have started looking for interpolation methods. Would you like to suggest/give me related docs or book? Govind This message was sent using the Comp.DSP web interface on www.DSPRelated.com

The documentation on the analog devices sample rate conversion chips has some good theory info. Start here and also check out the datasheets for the parts mentioned: http://www.analog.com/en/content/0,2886,765%255F807%255F9690,00.html By the way, if it were me, I would do this in one stage rather than 4. It is much simpler to implement that way (though probably requires more memory, but that's not generally an issue in Matlab). -- Jon Harris SPAM blocker in place: Remove 99 (but leave 7) to reply "Govind" <govind_s@conceptemsys.com> wrote in message news:WoqdnUGsSq4auN_eRVn-gQ@giganews.com...> >Govind <govind_s@conceptemsys.com> wrote: >> >>> I am trying to compute SNR with the method you've >>> suggested. This time I am trying upconversion of a signal from >>> 8KHz to 44.1KHz. I have implemented a four stage SRC code in >>> matlab (with ratios 3/2, 3/2, 7/5 and 7/4 with filter taps 414, >>> 54, 84 and 70 respectively using remez algorithm). I multiply the >>> output by a factor of 441 (3*3*7*7) in time domain to compensate >>> for interpolation stage losses. The frequency response seems >>> to be good. But still I am getting SNR not more than 30-40 DB. >> >>You could consider using Lagrangian interpolation instead of >>this cascade of filters. >> >>Steve >> > > Hi Steve, > > Thanks for the reply. I have started looking for interpolation methods. > Would you like to suggest/give me related docs or book? > > Govind > > This message was sent using the Comp.DSP web interface on > www.DSPRelated.com