Zadoff-Chu sequence concept
이전 댓글 표시
Zaddoff-Chu sequence has two main propoerties: 1- constant modulus 2- good correlation characteristics. Most of the papers claim that the autocorrelation of sequence has zero values for all shifted version of sequence except the lag=0. However, if you try to use the matlab code zadoffChuSeq(u,N) to varify this propoerties, you will find the small peaks at time axis. This means it is not perfrectely sequqnce as they calimed. Did I miss somthing?
댓글 수: 4
Manikanta Aditya
2024년 4월 18일
Regarding the small peaks you’re seeing when using the MATLAB function zadoffChuSeq(u,N), it’s important to note that these could be due to numerical precision issues inherent in digital computation. Theoretically, the autocorrelation should be zero at all lags except zero, but in practice, due to finite numerical precision, you might not get exactly zero. This doesn’t mean that the sequence isn’t a Zadoff-Chu sequence, it’s just a manifestation of the limitations of numerical computations.
ahmed youssef
2024년 4월 18일
Manikanta Aditya
2024년 4월 18일
As, you’re observing very large peaks around the zero-lag peak with zadoffChuSeq(3,67), it might be worth double-checking the implementation of the function for any potential errors or deviations from the theoretical formula. Additionally, ensure that the parameters used (such as u and N) satisfy the necessary conditions for a Zadoff-Chu sequence.
If after verification everything seems correct, then these large peaks might be an artifact of how MATLAB handles computations and displays plots rather than an issue with the sequence itself.
The image you attached indeed shows a prominent peak near x=60 and several smaller peaks throughout the plot. These peaks could be due to the reasons mentioned above.
ahmed youssef
2024년 4월 18일
편집: ahmed youssef
2024년 4월 18일
답변 (1개)
The Zadoff-Chu sequences have the useful property of having zero cyclic autocorrelation at all nonzero lags. One fast way to check this property is shown below
N = 67;
x = zadoffChuSeq(3,N);
X = fft(x);
cR = fftshift(ifft(X.*conj(X))); % circular correlation
figure
plot((-(N-1)/2:(N-1)/2),abs(cR))
xlabel("Lag")
ylabel("Autocorreleation")
댓글 수: 5
ahmed youssef
2024년 4월 18일
Note the difference between circularly shifting a signal and linear shift. ZC sequence maintains the autocorrelation property if they are circularly shifted.
So in your code if you try y = circshift(x,i)
in the for loop, and plot the circular correlation, you should see the peak with no side lobes. The sidelobes (sinc-like) appear when you truncate your signal.
N = 67;
x = zadoffChuSeq(3,N);
X = fft(x);
del = 10;
for i = del-1:-1:0
y = circshift(x,i); % circularly shifted signal
Y = fft(y);
cR = fftshift(ifft(X.*conj(Y))); % circular correlation
hold("on")
plot((-(N-1)/2:(N-1)/2),abs(cR))
end
xlabel("Lag")
ylabel("Autocorreleation")
In practical scenarios, like synchronization in comms, we usually use xcorr (linear autocorrelation) while keeping in mind that there are sidelobes but the delay estimator is an asymptotically consistent estimator.
ahmed youssef
2024년 4월 18일
AH
2024년 4월 18일
Note that the delx is no longer a ZC sequence.
ahmed youssef
2024년 4월 18일
카테고리
도움말 센터 및 File Exchange에서 Descriptive Statistics에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



