How can i insert Cyclic prefix in an array?

11 views (last 30 days)
N=1024; Cp=64; NTx=8;
% Constellation of Binary-Coded 16-QAM
C=[-3+3j, -3+1j, -3-3j, -3-1j, -1+3j, -1+1j, -1-3j, -1-1j,...
3+3j, 3+1j, 3-3j, 3-1j, 1+3j, 1+1j, 1-3j, 1-1j];
% Generate random symbols
bk= randi ([0,15],NTx,N);
Dk=C(bk+1);
d=ifft(Dk).*sqrt(N);
tx=[d(end-Cp+1:end) d];
I have d is (8X1024) and I want to add Cyclic Prefix for each row, how can I do that?? [d(end-Cp+1:end) d]; this works for vectors only.

Accepted Answer

Cedric
Cedric on 22 Jun 2014
Edited: Cedric on 22 Jun 2014
>> tx = [d(:,end-Cp+1:end) d] ;
>> size(tx)
ans =
8 1088
and
>> tx = [zeros(size(d,1), Cp) d] ;
if you wanted zero padding.

More Answers (1)

Qaisar Hussain Alvi
Qaisar Hussain Alvi on 8 Apr 2018
Edited: Walter Roberson on 8 Apr 2018
IFFT_Data = ifft(d,N);
txCy = [IFFT_Data(N-Ncp+1):N,:); IFFT_Data];
  1 Comment
Walter Roberson
Walter Roberson on 8 Apr 2018
What is the purpose of doing an ifft() of something that was just calculated as an ifft ?
d=ifft(Dk).*sqrt(N);

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!