Forums

Fractional Resampling WCDMA gives noise

Started by DSPWirelessGuy July 29, 2011
Dear all,

I will be grateful if I can get some light on this.

I have Tx Data upsampled from 3.84MHz to 12 MHz (@3.125X. On the Tx
side I use a nice
RRC filter to perform interpolation and upsample using Matlab inbuild
polyphase filter to generate Test vectors.

Problem is , on the receiver side, I do not use polyphase filter. I
use RRc filter at the begining then downsample using 3,3,3,4,3,3,3,3
pattern. That is out of 25 samples I select 8. That gives me
fractional downsampling of 3.125X.

I compared the downsampled data with Tx data at 1x. The curve visually
looks pretty good. Mean squared error is about 7dB. When I use this
downsampled data to descramble, there is lot of noise. For BPSK case
its fine due to good decision boundry. But for higher modulation rates
it gives all CRC failure.

I also tried to interpolate linearly to minimize MSE. But no use.

Can you please suggest if I have done anything wrong conceptually. Do
I need to use better interpolator or I will have to implement
polyphase filter for resampling too.

BTW, I used matlab polyphase downsampler at Rx also and the
constellation is not noisy.

Please help

Regards
On Jul 29, 8:20&#2013266080;am, DSPWirelessGuy <hskap...@gmail.com> wrote:
> Dear all, > > I will be grateful if I can get some light on this. > > I have Tx Data upsampled from 3.84MHz to 12 MHz (@3.125X. On the Tx > side I use a nice > RRC filter to perform interpolation and upsample using Matlab inbuild > polyphase filter to generate Test vectors. > > Problem is , on the receiver side, I do not use polyphase filter. I > use RRc filter at the begining then downsample using 3,3,3,4,3,3,3,3 > pattern. That is out of 25 samples I select 8. That gives me > fractional downsampling of 3.125X. > > I compared the downsampled data with Tx data at 1x. The curve visually > looks pretty good. Mean squared error is about 7dB. When I use this > downsampled data to descramble, there is lot of noise. For BPSK case > its fine due to good decision boundry. But for higher modulation rates > it gives all CRC failure. > > I also tried to interpolate linearly to minimize MSE. But no use. > > Can you please suggest if I have done anything wrong conceptually. Do > I need to use better interpolator or I will have to implement > polyphase filter for resampling too. > > BTW, I used matlab polyphase downsampler at Rx also and the > constellation is not noisy. > > Please help > > Regards
You didn't mention what type of pulse shaping you're using. I have the feeling the upsample process is distorting your pulse shape, or otherwise that the pulse shaping isn't properly applied. --Randy
i dunno what all this is (like WCDMA, looks like a radio call sign to
me) except for resampling.

On Jul 29, 8:20&#2013266080;am, DSPWirelessGuy <hskap...@gmail.com> wrote:
> > I have Tx Data upsampled from 3.84MHz to 12 MHz (@3.125X. On the Tx > side I use a nice > RRC filter
what's an RRC filter? dunno what "RRC" stands for.
> to perform interpolation and upsample using Matlab inbuild > polyphase filter to generate Test vectors.
okay, do you want your RRC to work like MATLAB's resample() function? is that what you'll measure error against?
> Problem is , on the receiver side, I do not use polyphase filter. I > use RRc filter at the beginning then downsample using 3,3,3,4,3,3,3,3 > pattern.
oh... i might guess that the 3x interpolators are identical? still dunno what RRc is.
> That is out of 25 samples I select 8. That gives me > fractional downsampling of 3.125X.
okay, 4 * 3^7 is 8748. how does that relate to 25, which is 5^2? or are 3,3,3,4,3,3,3,3 the interpolation coefficients?
> > I compared the downsampled data with Tx data at 1x. The curve visually > looks pretty good. Mean squared error is about 7dB. When I use this > downsampled data to descramble, there is lot of noise.
now i really dunno what you mean.
> For BPSK case > its fine due to good decision boundry. But for higher modulation rates > it gives all CRC failure.
now what does resampling have to do with error detection? now i'm really lost.
> I also tried to interpolate linearly to minimize MSE. But no use. > > Can you please suggest if I have done anything wrong conceptually. Do > I need to use better interpolator or I will have to implement > polyphase filter for resampling too.
okay, i know what those things are, but i still cannot understand parts of what you say.
> > BTW, I used matlab polyphase downsampler at Rx also and the > constellation is not noisy. > > Please help
sorry dude. i don't understand essentially what is going on in your application. maybe if someone decodes some of these acronyms i can understand more. r b-j
On 7/29/2011 4:48 PM, robert bristow-johnson wrote:
> > i dunno what all this is (like WCDMA, looks like a radio call sign to > me) except for resampling. > > On Jul 29, 8:20 am, DSPWirelessGuy<hskap...@gmail.com> wrote: >> >> I have Tx Data upsampled from 3.84MHz to 12 MHz (@3.125X. On the Tx >> side I use a nice >> RRC filter > > what's an RRC filter? dunno what "RRC" stands for. >
Root raised cosine maybe? -- Rob Gaddi, Highland Technology Email address is currently out of order
On Fri, 29 Jul 2011 16:59:59 -0700, Rob Gaddi
<rgaddi@technologyhighland.com> wrote:

>On 7/29/2011 4:48 PM, robert bristow-johnson wrote: >> >> i dunno what all this is (like WCDMA, looks like a radio call sign to >> me) except for resampling. >> >> On Jul 29, 8:20 am, DSPWirelessGuy<hskap...@gmail.com> wrote: >>> >>> I have Tx Data upsampled from 3.84MHz to 12 MHz (@3.125X. On the Tx >>> side I use a nice >>> RRC filter >> >> what's an RRC filter? dunno what "RRC" stands for. >> > >Root raised cosine maybe? > >-- >Rob Gaddi, Highland Technology >Email address is currently out of order
It is Root Raised Cosine, presumably to match the transmitted pulse shape. The OP is apparently having trouble with his matched filtering and it is evidently creating enough ISI (intersymbol interference) that it is affecting his output error rate. Eric Jacobsen http://www.ericjacobsen.org http://www.dsprelated.com/blogs-1//Eric_Jacobsen.php
>Dear all, > >I will be grateful if I can get some light on this. > >I have Tx Data upsampled from 3.84MHz to 12 MHz (@3.125X. On the Tx >side I use a nice >RRC filter to perform interpolation and upsample using Matlab inbuild >polyphase filter to generate Test vectors. > >Problem is , on the receiver side, I do not use polyphase filter. I >use RRc filter at the begining then downsample using 3,3,3,4,3,3,3,3 >pattern. That is out of 25 samples I select 8. That gives me >fractional downsampling of 3.125X. > >I compared the downsampled data with Tx data at 1x. The curve visually >looks pretty good. Mean squared error is about 7dB. When I use this >downsampled data to descramble, there is lot of noise. For BPSK case >its fine due to good decision boundry. But for higher modulation rates >it gives all CRC failure. > >I also tried to interpolate linearly to minimize MSE. But no use. > >Can you please suggest if I have done anything wrong conceptually. Do >I need to use better interpolator or I will have to implement >polyphase filter for resampling too. > >BTW, I used matlab polyphase downsampler at Rx also and the >constellation is not noisy. > >Please help
Why did follow the pattern 3 3 3 4 3 3 3 3 I thought you will need proper fractional downsampler kadhiem
> >Regards >
Thanks all for replying.

I am replying with new user name because previous one was from gmail group
comp.dsp. It seems I cannot use the same ID here.

Okay, let me explain in a different way so that my question is better
understood.

I need to do fractional downsampling. Issue is I dont have many MIPS with
me so I chose 3 3 3 4 3 3 3 3 pattern. By doing this I see noise in my
constellation.

I dont think it is match RRC filter that is giving noise because I did
fractional downsampling using RRC filter in Matlab. UpFirDn() function in
Matlab. I get perfect constellation. So, I believe probelm is with my
fractional estimation of samples.

The constellations look similar to about 10dB SNR. I am unable to use
Higher modulation scheme due to this. 

My issue is, whether I can remove this noise distortion (jitter) or I need
to implement proper polyphase filter to fractionally resample ( downsample
) my data. Is it feasable on DSP in case I use PolyPhase Filter
Downsampler?
Matlab UpFirDn() internally uses polyphase filter to resample and the
constellations are very good.

Please help

Thanks
Huzaifa

Please help.





>>Dear all, >> >>I will be grateful if I can get some light on this. >> >>I have Tx Data upsampled from 3.84MHz to 12 MHz (@3.125X. On the Tx >>side I use a nice >>RRC filter to perform interpolation and upsample using Matlab inbuild >>polyphase filter to generate Test vectors. >> >>Problem is , on the receiver side, I do not use polyphase filter. I >>use RRc filter at the begining then downsample using 3,3,3,4,3,3,3,3 >>pattern. That is out of 25 samples I select 8. That gives me >>fractional downsampling of 3.125X. >> >>I compared the downsampled data with Tx data at 1x. The curve visually >>looks pretty good. Mean squared error is about 7dB. When I use this >>downsampled data to descramble, there is lot of noise. For BPSK case >>its fine due to good decision boundry. But for higher modulation rates >>it gives all CRC failure. >> >>I also tried to interpolate linearly to minimize MSE. But no use. >> >>Can you please suggest if I have done anything wrong conceptually. Do >>I need to use better interpolator or I will have to implement >>polyphase filter for resampling too. >> >>BTW, I used matlab polyphase downsampler at Rx also and the >>constellation is not noisy. >> >>Please help > >Why did follow the pattern 3 3 3 4 3 3 3 3 I thought you will need proper >fractional downsampler > >kadhiem >> >>Regards >> >
>I need to do fractional downsampling. Issue is I dont have many MIPS with >me so I chose 3 3 3 4 3 3 3 3 pattern. By doing this I see noise in my >constellation.
Let me get this clear. You are working over 25 samples, taking the 3rd, 6th, 9th, 13th, 16th, 19th, 22nd and 25th? That's a pretty horrible form of downsampling.
>I dont think it is match RRC filter that is giving noise because I did >fractional downsampling using RRC filter in Matlab. UpFirDn() function in >Matlab. I get perfect constellation. So, I believe probelm is with my >fractional estimation of samples.
Well, of course. If you use proper downsampling things work.
>The constellations look similar to about 10dB SNR. I am unable to use >Higher modulation scheme due to this.
This is highly misleading. The N in your SNR isn't random. Its a highly structured pattern of error, cycling every 25 samples. You may have an average of 10dB error, but the peak is far worse.
>My issue is, whether I can remove this noise distortion (jitter) or I
need Now you are expressing things better. Jitter is far more descriptive of what you have than saying noise.
>to implement proper polyphase filter to fractionally resample (
downsample
>) my data. Is it feasable on DSP in case I use PolyPhase Filter >Downsampler? >Matlab UpFirDn() internally uses polyphase filter to resample and the >constellations are very good.
Matlab offers you a fairly high quality downsampler, but you can probably get away with something a lot simpler, unless you are aiming for very high order QAM. You just can't get away with something as crude as you are using right now. Steve

Hi Steve,

Yeah, I actually meant Jitter. Is there any way of reducing this jitter.
I also tried to use interpolation by estimating Early ontime late
mechanism. But no use. I have only tried linear interpolation so far.

Although  resampling pattern seems horrible, it is not as bad. I get Mean
Squared Error of about 7dB.This is still not good enough for higher
modulation.

Seems I will have to use polyphase mechanism to resample.

Thanks
Huzaifa

>>I need to do fractional downsampling. Issue is I dont have many MIPS
with
>>me so I chose 3 3 3 4 3 3 3 3 pattern. By doing this I see noise in my >>constellation. > >Let me get this clear. You are working over 25 samples, taking the 3rd, >6th, 9th, 13th, 16th, 19th, 22nd and 25th? That's a pretty horrible form
of
>downsampling. > >>I dont think it is match RRC filter that is giving noise because I did >>fractional downsampling using RRC filter in Matlab. UpFirDn() function
in
>>Matlab. I get perfect constellation. So, I believe probelm is with my >>fractional estimation of samples. > >Well, of course. If you use proper downsampling things work. > >>The constellations look similar to about 10dB SNR. I am unable to use >>Higher modulation scheme due to this. > >This is highly misleading. The N in your SNR isn't random. Its a highly >structured pattern of error, cycling every 25 samples. You may have an >average of 10dB error, but the peak is far worse. > >>My issue is, whether I can remove this noise distortion (jitter) or I >need > >Now you are expressing things better. Jitter is far more descriptive of >what you have than saying noise. > >>to implement proper polyphase filter to fractionally resample ( >downsample >>) my data. Is it feasable on DSP in case I use PolyPhase Filter >>Downsampler? >>Matlab UpFirDn() internally uses polyphase filter to resample and the >>constellations are very good. > >Matlab offers you a fairly high quality downsampler, but you can probably >get away with something a lot simpler, unless you are aiming for very
high
>order QAM. You just can't get away with something as crude as you are
using
>right now. > >Steve > >
>Hi Steve, > >Yeah, I actually meant Jitter. Is there any way of reducing this jitter. >I also tried to use interpolation by estimating Early ontime late >mechanism. But no use. I have only tried linear interpolation so far. > >Although resampling pattern seems horrible, it is not as bad. I get Mean >Squared Error of about 7dB.This is still not good enough for higher >modulation. > >Seems I will have to use polyphase mechanism to resample. > >Thanks >Huzaifa
As I said before, your 7dB figure is an average over the 25 sample sequence. With your pattern, you build up 7/8ths of a sample of timing error, and release it in one go. If you look at the 8 RMS errors calculated from the 8 phases of your sequence you will see very different errors across those phases. Steve