📄 de_fft_basesignal_gen.m
字号:
function designal = de_fft_basesignal_gen(NDLRB,maxl,signal);
Ts = 1 / ( 15000 * 2048 ) ; % basic time unit ;
NRBSC = 12; % subcarriers in a resource block ;
if maxl == 7 % normal cyclic prefix ;
dealtf = 15000; % subcarrier spacing
N = 2048 ; % a constant different with subcarrier spacing ;
signal0 = zeros ( N , maxl );
% discard cp
for l = 1 : maxl
if l == 1
TCP = 160 ;
signal0 ( 1 : N , l ) = signal ( ( TCP + 1 ) : ( TCP + N ) , l ) ;
elseif l > 1
TCP = 144 ;
signal0 ( 1 : N , l ) = signal ( ( TCP + 1 ) : ( TCP + N ) , l ) ;
end
end
% the coeffient for fft
for n = 1 : N ;
e ( n ) = exp( j * 2 * pi / N * ( floor( NDLRB * NRBSC / 2 ) ) * ( n - 1 ) );
end
e = [e;e;e;e;e;e;e];
e1 = e.' ;
designal0 = e1 .* signal0;
% fft
designal = fft ( designal0 , N ) / N ;
% discard the nonsense numbers ;
designal ( ( NDLRB * NRBSC + 2 ) : N , : ) = [] ;
designal ( ( NDLRB * NRBSC / 2 + 1 ) , : ) = [] ;
end
if maxl == 6 % extended cyclic prefix and subcarrier spacing of 15KHz
dealtf = 15000;
N = 2048 ;
TCP = 512 ;
signal0 = zeros ( N , maxl );
% discard cp
for l = 1 : 6
signal0 ( 1 : N , l ) = signal ( ( TCP + 1 ) : ( TCP + N ) , l ) ;
end
% the coeffient of fft
for n = 1 : N ;
e ( n ) = exp( j * 2 * pi / N * ( floor( NDLRB * NRBSC / 2 ) ) * ( n - 1 ) );
end
e = [e;e;e;e;e;e];
e1 = e.';
designal0 = e1 .* signal0;
% fft
designal = fft ( designal0 , N ) / N ;
% discard the nonsense numbers ;
designal ( ( NDLRB * NRBSC + 2 ) : N , : ) = [] ;
designal ( ( NDLRB * NRBSC / 2 + 1 ) , : ) = [] ;
end
if maxl == 3 % extended cyclic prefix and subcarrier spacing of 7.5KHz
dealtf = 7500 ;
N = 4096 ;
TCP = 1024 ;
signal0 = zeros ( N , maxl );
% discard cp
for l = 1 : 3
signal0 ( 1 : N , l ) = signal ( ( TCP + 1 ) : ( TCP + N ) , l ) ;
end
% the coeffient of fft
for n = 1 : N ;
e ( n ) = exp( j * 2 * pi / N * ( floor( NDLRB * NRBSC / 2 ) ) * ( n - 1 ) );
end
e = [e;e;e];
e1 = e.';
designal0 = e1 .* signal0;
% fft ;
designal = fft ( designal0 , N ) / N ;
% discard the nonsense numbers ;
designal ( ( NDLRB * NRBSC + 2 ) : N , : ) = [] ;
designal ( ( NDLRB * NRBSC / 2 + 1 ) , : ) = [] ;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -