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 で Signal Operations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



