How to do time delay in PN sequence

4 次查看(过去 30 天)
My project is based on audio watermarking with time spread echo method. For this I have generated PN sequence and for encoding the following formula is applied h(n)= d(n)+ alpha*p(n-delta)
where d(n)= dirac delta function, alpha= amplitude of PN sequence, p(n)= PN sequence, delta= time delay.
here I know that p(n) is an array of PN sequence. I have done the coding for dirac delta function and also generated PN sequence but i am unable to write code for p(n-delta) as mentioned in above formula. I tried the following code: delta=0.001; for x=1:1023 temporary = PN1(1,x); new_index =(x-delta); PN1(1,new_index) = temporary; end disp(PN1); f=alpha*(PN1-delta);
but by this i always get the error mentioning that 'Attempted to access PN1(1,0.999); index must be a positive integer or logical'.
So i request to plz help me out to do time shifting in PN sequence. Plz provide code of the above mentioned formula.

采纳的回答

Muthu Annamalai
Muthu Annamalai 2013-6-27
If you understand that p(n-k) in DSP terms is nothing but the same signal p but time-shifted by the amount k then it resolves everything here.
Also I think you want the kronecker delta in a discrete system. You will have to prefix your array PN by zeros, and use the index, so that MATLAB will not complain about out of bounds. Also avoiding dirac delta, i.e. use an IF condition to set the index offset to 0 or 1, should eliminate your error 'Index must be logical'.
HTH
  1 个评论
vaishali  passi
vaishali passi 2013-6-27
thanks for the answer but can u plz help me out with some code if possible

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Signal Generation and Preprocessing 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by