>On May 25, 2:34 pm, "cpshah99" <cpsha...@rediffmail.com> wrote:
>> >On May 25, 4:32 am, "cpshah99" <cpsha...@rediffmail.com> wrote:
>> >> >On May 23, 10:54 am, "cpshah99" <cpsha...@rediffmail.com> wrote:
>> >> >> >On May 19, 9:28 am, "cpshah99" <cpsha...@rediffmail.com> wrote:
>> >> >> >> Hello People
>>
>> >> >> >> I have been scratching my head on this doppler problem:
>>
>> >> >> >> Because of the doppler effect, the received signal will
either
>> be
>> >> >> expanded
>> >> >> >> or compressed on time axis.
>>
>> >> >> >> Now, the expansion or compression is sampling rate
conversion.
>> So,
>> >> I
>> >> >> tried
>> >> >> >> to use 'resample' function of matlab. The actual length of
the
>> >> signal
>> >> >> is
>> >> >> >> 30720 and sampling freq is 48000Hz.
>>
>> >> >> >> Now, when I use y=resample(x,10010,10000) i can find the peak
>> i.e.
>> >> >> start
>> >> >> >> of my data by correlating the signal with training sequence.
>>
>> >> >> >> But when I use y=resample(x,10007,10000) i can't find the
peak.
>>
>> >> >> >> So is there any better way to
>> >> >> >> 1. model this exapnsion or compression
>> >> >> >> or 2. to find peak when the received is corrupted by severe
>> >> doppler.
>>
>> >> >> >> Help in this regard will be highly appreciated.
>>
>> >> >> >> Chintan
>>
>> >> >> >Just clarify - a doppler shift isn't modeled by a frequency
shift.
>> It
>> >> >> >is really a time dilation. For pure sinusoids it then appears as
a
>> >> >> >frequency shift. If you signal doesn't have a lot of bandwidth
wrt
>> >> the
>> >> >> >center frequency then you can approximate the doppler shift by
a
>> >> >> >frequency shift.
>>
>> >> >> >Cheers,
>> >> >> >David
>>
>> >> >> %%%%%
>>
>> >> >> Hi David
>>
>> >> >> My center freq is 12KHz and BW is 4 KHz.
>>
>> >> >> I understand as u said, the doppler effect is time dilation, but
>> should
>> >> I
>> >> >> just shift the center freq or sampling freq to approximate the
>> doppler
>> >> >> shift because if I shift carrier freq then it will just add
phase
>> shift
>> >> but
>> >> >> it will not expand or compress the signal.
>>
>> >> >> Also I am reading Multirate Digital Signal Processing by
Crochiere
>> and
>> >> >> Rabiner to implement Farrow Interpolator, suggested by Julius.
>>
>> >> >> Thanks you again.
>>
>> >> >> Chintan.
>>
>> >> >What type of system is this? Sonar? What is the speed of
propagation
>> >> >in your medium? What is the format of your signal? Is it a LFM or
HFM
>> >> >pulse?
>>
>> >> >For these types of signals in sonar they use banks of matched
>> filters,
>> >> >which are constructed by time dilating the analytic formula for
the
>> >> >pulse. For more detail you can see Neilson's "Sonar Signal
>> >> >Processing".
>>
>> >> >For Farrow information I found Harris's book quite good. I also
>> posted
>> >> >some matlab code on this group to do derive the Farrow spline
>> >> >coefficients - it doesn't do the online resampling.
>>
>> >> >Cheers,
>> >> >David
>>
>> >> %%%%%
>>
>> >> Hi David
>>
>> >> This system is for underwater communications, where speed of
>> acousticwave
>> >> is 1500 m/s. And also I am not using LFM or HFM. My signal format
is
>> 500
>> >> symbols long PN sequence to find the start of that (not to do
anything
>> with
>> >> DSSS) and after this PN 2000 data symbols.
>>
>> >> Can u please post that code here again, if you don't mind.
>>
>> >> Thanks,
>>
>> >> Chintan
>>
>> >It's on my other computer. I'll try to post it on Monday.
>>
>> >Given you're dealing with probably +- 30 knots doppler (or more) and
>> >the band & bandwidth you should take into account the dilation,
>> >but normally the PN , LFM , HFM signals have fairly broad ambiguity
>> >functions so they still correlate over broad dopplers - you shouldn't
>> >need that many doppler replicas to find a peak. Normally the replicas
>> >are set at the -3dB points in the ambiguity function.
>>
>> >Cheers,
>> >David
>>
>> %%%%%%
>>
>> Hi David,
>>
>> Thanks for your replies.
>>
>> Actually I have worked on the real received signals thru underwater
sea
>> trial experiment, the relative velocity estimation was in the range of
>> +-0.5 m/s, and in that case using PN I was able to find peak.
>>
>> But now as I have changed my receiver architecture, and we can not go
for
>> sea trial as of now, so my advisor asked me to simulate doppler, which
is
>> signal expansion or compression.
>>
>> I have been trying to this for last so many days.
>>
>> I have used 'resample' function of matlab, but it changes the amplitude
of
>> the signal significantly. And in real time there is no zero padding
for
>> interpolation or decimation!!!!!!!
>>
>> Thanking you again.
>>
>> Chintan
>
>
>Here's code I wrote to calculate the splines. You feed it the filter,
>you'll need to adjust the Decimation Factor (D) to match your own
>requirements and the filter.
>
>Good luck.
>
>Cheers,
>Dave
>
>% b = coefficients of a predesigned filter
>% In my test case b has 300 taps
>% Designed using 72 dB attenuation Kaiser window filter
>bt = b;
>%bt(1) = bt(2) -(bt(3)-bt(2));
>%bt(end) = bt(1);
>
>Ntaps=length(b);
>D=50;
>Npoly=Ntaps/D;
>b2= reshape(bt,D,Npoly);
>%For a good polynomial fit we need to handle the end points in a
>smooth
>%fashion
>I=length(bt);
>tmp = bt(I)- (bt(I-1)-bt(I));
>%b2=[b2;b2(1,2:end),0];
>b2=[b2;b2(1,2:end),tmp];
>x=(0:D)'/D; %Dividing by D helps eliminate poor conditioning
>p_ord = 6; %Order of polynomials for fitting
>p=zeros(Npoly,p_ord+1);
>for k =1:Npoly
> k
> p(k,:) =polyfit(x,b2(:,k),p_ord);
> %This plots the error in the polynomial evaluation
> %plot(b2(:,k)-polyval(p(k,:),x))
> %pause
>end
>
>%Lets evaluate the resulting filter at some other sample point.
>
>x2 = x(1:end-1)+0.5/D;
>h2=[];
>for k =1:Npoly
> h2=[h2,polyval(p(k,:),x2)];
>end
>plot(20*log10(abs(fft(h2(:),2048))))
>
%%%%%%
Hi David,
Thank you very much. It is really appreciated.
Regards,
Chintan