⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ifft_basesignal_gen.m

📁 尽量不要让站长把时间都花费在为您修正说明上。压缩包解压时不能有密码。
💻 M
字号:
function signal = ifft_base_signalgen(NDLRB,maxl,a); % 发送端基带生成信号
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 ;
    % insert 0 in the middle of all subcarribers for ifft ;
    for l=1:maxl
        a (( NDLRB * NRBSC / 2 + 2 ) : ( NDLRB * NRBSC + 1 ) , l ) = a (( NDLRB * NRBSC / 2 + 1 ) : NDLRB * NRBSC , l ) ;
        a ( ( NDLRB * NRBSC / 2 + 1 ) , l ) = 0 ;
    end
    % coefficient of ifft ;
    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.';
    % ifft ;
    signal0 = e1 .* ifft ( a , N )*N ;
    % add cp ;对正常循环前缀,l=0时,CP长度为160,l=1,2,...6时,CP长度为144.
    for l = 1 : maxl
        if l == 1
            TCP = 160 ;
            CP = signal0 ( ( N-TCP+1 ) : N ,l) ;
            signal ( 1 : TCP , l ) = CP;
            signal ( ( TCP + 1 ) : ( TCP + N ) , l ) = signal0 ( : , l );
        elseif l > 1
            TCP = 144 ;
            CP = signal0 ( ( N-TCP+1 ) : N , l ) ;
            signal ( 1 : TCP , l ) = CP;
            signal ( ( TCP + 1 ) : ( TCP + N ) , l ) = signal0 ( : , l );
        end
    end
end

if maxl == 6 % extended cyclic prefix and subcarrier spacing of 15KHz
    dealtf = 15000;
    N = 2048 ;
    TCP = 512 ; % 对于载波间隔为15kHz的扩展循环前缀,CP长度为512
    signal = zeros ( ( N + TCP ) , maxl );
    % insert 0 in the middle of all subcarribers for ifft ;
    for l = 1 : maxl ;
        a (( NDLRB * NRBSC / 2 + 2 ) : ( NDLRB * NRBSC + 1 ) , l ) = a (( NDLRB * NRBSC / 2 + 1 ) : NDLRB * NRBSC , l ) ;
        a ( ( NDLRB * NRBSC / 2 + 1 ) , l ) = 0 ;
    end
    % coefficient of ifft ;
    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.';
    % ifft ;
    signal0 = e1 .* ifft ( a , N )*N ; 
    % add cp ;
    for l = 1 : maxl 
        CP = signal0 ( ( N-TCP + 1 ) : N , l ) ;
        signal ( 1 : TCP , l ) = CP;
        signal ( ( TCP + 1 ) : ( N + TCP ) , l ) = signal0 ( : , l );
    end
end

if maxl == 3   % extended cyclic prefix and subcarrier spacing of 7.5KHz
    dealtf = 7500 ; 
    N = 4096 ;
    TCP = 1024 ; % 对于载波间隔为7.5kHz的扩展循环前缀,CP长度为1024
    signal = zeros ( ( N + TCP ) , maxl );
    % insert 0 in the middle of all subcarribers for ifft ;
    for l = 1 : maxl ;
        a (( NDLRB * NRBSC / 2 + 2 ) : ( NDLRB * NRBSC + 1 ) , l ) = a (( NDLRB * NRBSC / 2 + 1 ) : NDLRB * NRBSC , l ) ;
        a ( ( NDLRB * NRBSC / 2 + 1 ) , l ) = 0 ;
    end
     % coefficient of ifft ;
    for n = 1 : N ;
        e ( n ) = exp( j * 2 * pi / N * ( - floor( NDLRB * NRBSC / 2 ) ) * ( n - 1 ) );
    end
    e = [e;e;e];
    e1 = e.';
    % ifft ;
    signal0 = e1 .* ifft ( a , N )*N ; 
     % add cp ;
    for l = 1 : maxl ;
        CP = signal0 ( ( N-TCP + 1 ) : N , l ) ;
        signal ( 1 : TCP , l ) = CP;
        signal ( ( TCP + 1 ) : ( N + TCP ) , l ) = signal0 ( : , l );
    end
end
        
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -