pathloss.m

来自「block_mimo_ ofdm_channelestimation编码 很好的」· M 代码 · 共 319 行 · 第 1/2 页

M
319
字号
                        case (5e9)                     % Nokia pathloss model for urban_macro (NLOS)
                            if (min(MsBsDistance)<35)
                                warning('MATLAB:TooSmallMsBsDistance','MsBsDistance less than 35 meters encountered. Path loss computation may be unreliable.')
                            end
                            loss = 34.5 + 8 + 35.0 * log10(MsBsDistance);                 %3dB subtracted compared to original formula because of antenna gain
                    end
                case {'los'}
                    switch (CenterFrequency)
                        case (2e9)                      % SCM urban_macro model [1, Section 5.2 and Table 5.1]
                            if (min(MsBsDistance)<35)
                                warning('MATLAB:TooSmallMsBsDistance','MsBsDistance less than 35 meters encountered. Path loss computation may be unreliable.')
                            end
                            loss = 30.18 + 26.0 * log10(MsBsDistance);

                        case (5e9)                     % Nokia pathloss model for urban_macro (NLOS)
                            if (min(MsBsDistance)<35)
                                warning('MATLAB:TooSmallMsBsDistance','MsBsDistance less than 35 meters encountered. Path loss computation may be unreliable.')
                            end
                            loss = 30.18 + 8 + 26.0 * log10(MsBsDistance);                %3dB subtracted compared to original formula because of antenna gain
                    end

                    warning('no SCM LOS path-loss is defined for urban macro - urban micro LOS path-loss is used')
            end


        else

            switch lower(Options)
                case {'none','polarized','urban_canyon'}

                    switch (CenterFrequency)
                        case (2e9)                      % SCM urban_macro model [1, Section 5.2 and Table 5.1]
                            if (min(MsBsDistance)<35)
                                warning('MATLAB:TooSmallMsBsDistance','MsBsDistance less than 35 meters encountered. Path loss computation may be unreliable.')
                            end
                            loss = 11.14 + 38.0 * log10(MsBsDistance);

                        case (5e9)                     % Nokia pathloss model for urban_macro (NLOS)
                            if (min(MsBsDistance)<35)
                                warning('MATLAB:TooSmallMsBsDistance','MsBsDistance less than 35 meters encountered. Path loss computation may be unreliable.')
                            end
                            loss = 11.14 + 8 + 38.0 * log10(MsBsDistance);              %3dB subtracted compared to original formula because of antenna gain
                    end
                case {'los'}
                    switch (CenterFrequency)
                        case (2e9)                      % SCM urban_macro model [1, Section 5.2 and Table 5.1]
                            if (min(MsBsDistance)<35)
                                warning('MATLAB:TooSmallMsBsDistance','MsBsDistance less than 35 meters encountered. Path loss computation may be unreliable.')
                            end
                            loss = 30.18 + 26.0 * log10(MsBsDistance);

                        case (5e9)                     % Nokia pathloss model for urban_macro (NLOS)
                            if (min(MsBsDistance)<35)
                                warning('MATLAB:TooSmallMsBsDistance','MsBsDistance less than 35 meters encountered. Path loss computation may be unreliable.')
                            end
                            loss = 30.18 + 8 + 26.0 * log10(MsBsDistance);                %3dB subtracted compared to original formula because of antenna gain
                    end

            end

        end




    case {'urban_micro'}


        if ~strcmpi(scmpar.AlternativePathloss,'yes')

            % options for urban micro
            switch lower(Options)

                case {'none','polarized','urban_canyon'}

                    switch (CenterFrequency)
                        case (2e9)              % SCM urban_micro model [1, Section 5.2 and Table 5.1]
                            if (min(MsBsDistance)<20)
                                warning('MATLAB:TooSmallMsBsDistance','MsBsDistance less than 20 meters encountered. Path loss computation may be unreliable.')
                            end
                            loss = 34.53 + 38.0 * log10(MsBsDistance);

                        case (5e9)              % Nokia pathloss model for urban_micro (distance-fit based model)
                            if (min(MsBsDistance)<20)
                                warning('MATLAB:TooSmallMsBsDistance','MsBsDistance less than 20 meters encountered. Path loss computation may be unreliable.')
                            end
                            loss = 34.53 + 8 + 38.0 * log10(MsBsDistance);
                    end



                case ('los')

                    switch (CenterFrequency)
                        case (2e9)              % SCM urban_micro model [1, Section 5.2 and Table 5.1]
                            if (min(MsBsDistance)<20)
                                warning('MATLAB:TooSmallMsBsDistance','MsBsDistance less than 20 meters encountered. Path loss computation may be unreliable.')
                            end
                            loss = 30.18 + 26.0 * log10(MsBsDistance);

                        case (5e9)              % Nokia pathloss model for urban_micro (distance-fit based model)
                            if (min(MsBsDistance)<20)
                                warning('MATLAB:TooSmallMsBsDistance','MsBsDistance less than 20 meters encountered. Path loss computation may be unreliable.')
                            end
                            loss = 30.18 + 8 + 26.0 * log10(MsBsDistance);
                    end


            end % end options for urban micro


        else

            switch lower(Options)

                case {'none','polarized','urban_canyon'}

                    switch (CenterFrequency)
                        case (2e9)              % SCM urban_micro model [1, Section 5.2 and Table 5.1]
                            if (min(MsBsDistance)<20)
                                warning('MATLAB:TooSmallMsBsDistance','MsBsDistance less than 20 meters encountered. Path loss computation may be unreliable.')
                            end
                            loss = 31.81 + 40.5 * log10(MsBsDistance);

                        case (5e9)              % Nokia pathloss model for urban_micro (distance-fit based model)
                            if (min(MsBsDistance)<20)
                                warning('MATLAB:TooSmallMsBsDistance','MsBsDistance less than 20 meters encountered. Path loss computation may be unreliable.')
                            end
                            loss = 31.81 + 8 + 40.5 * log10(MsBsDistance);
                    end



                case ('los')

                    switch (CenterFrequency)
                        case (2e9)              % SCM urban_micro model [1, Section 5.2 and Table 5.1]
                            if (min(MsBsDistance)<20)
                                warning('MATLAB:TooSmallMsBsDistance','MsBsDistance less than 20 meters encountered. Path loss computation may be unreliable.')
                            end
                            loss = 30.18 + 26.0 * log10(MsBsDistance);

                        case (5e9)              % Nokia pathloss model for urban_micro (distance-fit based model)
                            if (min(MsBsDistance)<20)
                                warning('MATLAB:TooSmallMsBsDistance','MsBsDistance less than 20 meters encountered. Path loss computation may be unreliable.')
                            end
                            loss = 30.18 + 8 + 26.0 * log10(MsBsDistance);
                    end


            end % end options for urban micro

        end

end     % end switch Scenario


% output
loss=loss(:);

⌨️ 快捷键说明

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