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

📄 cmlplot.m

📁 1、HSDPA; 2、LTE; 3、turbo code; 4、Mobile WiMAX; 5、LDPC
💻 M
📖 第 1 页 / 共 2 页
字号:
    
    hold off;   
end

% Plot the FER of coded and outage simulations
if ( sum( sum( sim_types(4:5,:) ) ) )
    
    % First plot FER vs. Eb/No
    fig_number = fig_number + 1;
    figure( fig_number );
    
    % Outage Probability
    for (i=find( sim_types(5,:) == 1 ) )
        % If stored as Es/No, convert to Eb/No       
        if ( sim_param(i).SNR_type(2) == 'b' )
            % This is Eb/No
            EbNodB = sim_param(i).SNR;
        else
            % This is stored as Es/No
            EsNodB = sim_param(i).SNR;
            % Convert to Eb/No
            EsNo = 10.^(EsNodB/10);
            EbNo = EsNo./sim_param(i).rate;
            EbNodB = 10*log10(EbNo);
        end            
        
        % Plot FER versus Eb/No in dB
        figure( fig_number );
        semilogy( EbNodB, sim_state(i).FER, sim_param(i).linetype );             
        hold on;
    end   
    
    % FER of coded modulation
    for (i=find( sim_types(4,:) == 1 ) )
        % If stored as Es/No, convert to Eb/No       
        if ( sim_param(i).SNR_type(2) == 'b' )
            % This is Eb/No
            EbNodB = sim_param(i).SNR;
        else
            % This is stored as Es/No
            EsNodB = sim_param(i).SNR;
            % Convert to Eb/No
            EsNo = 10.^(EsNodB/10);
            EbNo = EsNo./sim_param(i).rate;
            EbNodB = 10*log10(EbNo);
        end
        
        % only plot the last iteration
        if ( length( sim_param(i).max_iterations ) )
            max_iter = sim_param(i).max_iterations;
        else
            max_iter = 1;
        end        
        
        % Plot FER versus Eb/No in dB
        figure( fig_number );
        semilogy( EbNodB, sim_state(i).FER( max_iter, : ), sim_param(i).linetype );             
        hold on;
    end           

    figure( fig_number );
    legend( sim_param( find( sim_types(5,:) == 1 ) ).legend, sim_param( find( sim_types(4,:) == 1 ) ).legend, 0 ); 
    xlabel( 'Eb/No in dB' );
    ylabel( 'FER' ); 
    
    % Now plot the other iterations
    for (i=find( sim_types(4,:) == 1 ) )
        if ( length( sim_param(i).plot_iterations ) )
            % make sure that we get both Es/No and Eb/No        
            if ( sim_param(i).SNR_type(2) == 'b' )
                % This is Eb/No
                EbNodB = sim_param(i).SNR;
            else
                % This is stored as Es/No
                EsNodB = sim_param(i).SNR;
                % Convert to Eb/No
                EsNo = 10.^(EsNodB/10);
                EbNo = EsNo./sim_param(i).rate;
                EbNodB = 10*log10(EbNo);
            end
            
            % plot the other iterations            
            figure( fig_number );
            semilogy( EbNodB, sim_state(i).FER(sim_param(i).plot_iterations,:), sim_param(i).linetype );            
        end     
    end   
  
    figure( fig_number );
    hold off;    
    
    % plot FER vs. Es/No        
    fig_number = fig_number + 1;
    figure( fig_number );
    
    % Outage Probability
    for (i=find( sim_types(5,:) == 1 ) )
        % If stored as Eb/No, convert to Es/No      
        if ( sim_param(i).SNR_type(2) == 'b' )
            % This is Eb/No
            EbNodB = sim_param(i).SNR;
            % Convert to Es/No
            EbNo = 10.^(EbNodB/10);
            EsNo = sim_param(i).rate*EbNo;
            EsNodB = 10*log10(EsNo);
        else
            % This is Es/No
            EsNodB = sim_param(i).SNR;
        end
        % Plot FER versus Es/No in dB
        figure( fig_number );
        semilogy( EsNodB, sim_state(i).FER, sim_param(i).linetype );             
        hold on;
    end   
    
    % FER of coded modulation
    for (i=find( sim_types(4,:) == 1 ) )
        % If stored as Eb/No, convert to Es/No      
        if ( sim_param(i).SNR_type(2) == 'b' )
            % This is Eb/No
            EbNodB = sim_param(i).SNR;
            % Convert to Es/No
            EbNo = 10.^(EbNodB/10);
            EsNo = sim_param(i).rate*EbNo;
            EsNodB = 10*log10(EsNo);
        else
            % This is Es/No
            EsNodB = sim_param(i).SNR;
        end
        
        % only plot the last iteration
        if ( length( sim_param(i).max_iterations ) )
            max_iter = sim_param(i).max_iterations;
        else
            max_iter = 1;
        end        
        
        % Plot FER versus Es/No in dB
        figure( fig_number );
        semilogy( EsNodB, sim_state(i).FER( max_iter, : ), sim_param(i).linetype );             
        hold on;
    end           

    figure( fig_number );
    legend( sim_param( find( sim_types(5,:) == 1 ) ).legend, sim_param( find( sim_types(4,:) == 1 ) ).legend, 0 ); 
    xlabel( 'Es/No in dB' );
    ylabel( 'FER' ); 
    
    % Now plot the other iterations
    for (i=find( sim_types(4,:) == 1 ) )
        if ( length( sim_param(i).plot_iterations ) )
            % If stored as Eb/No, convert to Es/No      
            if ( sim_param(i).SNR_type(2) == 'b' )
                % This is Eb/No
                EbNodB = sim_param(i).SNR;
                % Convert to Es/No
                EbNo = 10.^(EbNodB/10);
                EsNo = sim_param(i).rate*EbNo;
                EsNodB = 10*log10(EsNo);
            else
                % This is Es/No
                EsNodB = sim_param(i).SNR;
            end
            % plot the other iterations            
            figure( fig_number );
            semilogy( EsNodB, sim_state(i).FER(sim_param(i).plot_iterations,:), sim_param(i).linetype );            
        end     
    end   
  
    figure( fig_number );
    hold off;    
    
end
        
% plot throughput vs. Es/No, if there are any throughput curves requested
if ( sum( sim_types(6,:) ) )
    fig_number = fig_number + 1;
    figure( fig_number );    

    % plot throughput vs. Es/No
    for (i=find( sim_types(6,:) == 1 ) )
        plot( sim_param(i).SNR, sim_state(i).throughput, sim_param(i).linetype );      
        hold on;
    end     
    
    legend( sim_param( find( sim_types(6,:) == 1 ) ).legend, 2 ); 
    xlabel( 'Es/No in dB' );
    ylabel( 'Normalized throughput' );
    hold off;  
end


% plot min Eb/No vs. h for nonorthogonal FSK under BW constraints.
if ( sum( sim_types(7,:) ) )
    fig_number = fig_number + 1;
    figure( fig_number );    

    % plot min Eb/No vs. h
    for (i=find( sim_types(7,:) == 1 ) )
        [Y,I] = sort( sim_param(i).h );
        plot( sim_param(i).h(I), sim_state(i).min_EbNodB(I), sim_param(i).linetype );   
        hold on;
    end     
    
    legend( sim_param( find( sim_types(7,:) == 1 ) ).legend, 2 ); 
    xlabel( 'h' );
    ylabel( 'min Eb/No (in dB)' );
    hold off;  

    fig_number = fig_number + 1;
    figure( fig_number );    

    % plot min Eb/No vs. rate
    for (i=find( sim_types(7,:) == 1 ) )
        [Y,I] = sort( sim_state(i).best_rate );
        plot( sim_state(i).best_rate(I), sim_state(i).min_EbNodB(I), sim_param(i).linetype );   
        hold on;
    end     
    
    legend( sim_param( find( sim_types(7,:) == 1 ) ).legend, 2 ); 
    xlabel( 'code rate r' );
    ylabel( 'min Eb/No (in dB)' );
    hold off;  

end

% plot min Eb/No vs. B for nonorthogonal FSK under BW constraint B.
if ( sum( sim_types(8,:) ) )
    fig_number = fig_number + 1;
    figure( fig_number );    

    % plot min Eb/No vs. B
    for (i=find( sim_types(8,:) == 1 ) )
        [Y,I] = sort( sim_param(i).bwconstraint );
        plot( sim_param(i).bwconstraint(I), sim_state(i).min_EbNodB(I), sim_param(i).linetype );   
        hold on;
    end     
    
    legend( sim_param( find( sim_types(8,:) == 1 ) ).legend, 2 ); 
    xlabel( 'Bandwidth B' );
    ylabel( 'min Eb/No (in dB)' );
    hold off; 
    
    fig_number = fig_number + 1;
    figure( fig_number );    

    % plot eta vs. min Eb/No
    for (i=find( sim_types(8,:) == 1 ) )
        [Y,I] = sort( sim_param(i).bwconstraint );
        % plot( sim_state(i).min_EbNodB(I), 1./sim_param(i).bwconstraint(I), sim_param(i).linetype );   
        plot( 1./sim_param(i).bwconstraint(I), sim_state(i).min_EbNodB(I), sim_param(i).linetype ); 
        hold on;
    end     
    
    legend( sim_param( find( sim_types(8,:) == 1 ) ).legend, 2 ); 
    % ylabel( '\eta' );
    % xlabel( 'minimum Eb/No in dB' );
    xlabel( '\eta in bps/Hz' );
    ylabel( 'Minimum Eb/No in dB' );
    hold off; 
    
    fig_number = fig_number + 1;
    figure( fig_number );    

    % plot optimal h vs. B
    for (i=find( sim_types(8,:) == 1 ) )
        [Y,I] = sort( sim_param(i).bwconstraint );
        plot( sim_param(i).bwconstraint(I), sim_param(i).h(I), sim_param(i).linetype );   
        hold on;
    end   
    
    legend( sim_param( find( sim_types(8,:) == 1 ) ).legend, 2 ); 
    xlabel( 'Bandwidth B' );
    ylabel( 'optimal h' );
    hold off;  

    fig_number = fig_number + 1;
    figure( fig_number );    

    % plot optimal rate vs. B
    for (i=find( sim_types(8,:) == 1 ) )
        [Y,I] = sort( sim_param(i).bwconstraint );
        plot( sim_param(i).bwconstraint(I), sim_state(i).best_rate(I), sim_param(i).linetype );   
        hold on;
    end   
    
    legend( sim_param( find( sim_types(8,:) == 1 ) ).legend, 2 ); 
    xlabel( 'Bandwidth B' );
    ylabel( 'optimal rate' );
    hold off;  
    
end

⌨️ 快捷键说明

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