Code covered by the BSD License  

Highlights from
ITU-R p.1546 calculator

image thumbnail
from ITU-R p.1546 calculator by Jef Statham
This an implementation of the ITU-R p.1546 model. Mixed land a sea paths not implemented.

ITUP1546(varargin)
function varargout = ITUP1546(varargin)
% ITUP1546 M-file for ITUP1546.fig
%      ITUP1546, by itself, creates a new ITUP1546 or raises the existing
%      singleton*.
%
%      H = ITUP1546 returns the handle to a new ITUP1546 or the handle to
%      the existing singleton*.
%
%      ITUP1546('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in ITUP1546.M with the given input arguments.
%
%      ITUP1546('Property','Value',...) creates a new ITUP1546 or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before ITUP1546_OpeningFunction gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to ITUP1546_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help ITUP1546

% Last Modified by GUIDE v2.5 27-Aug-2009 10:52:35

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @ITUP1546_OpeningFcn, ...
                   'gui_OutputFcn',  @ITUP1546_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before ITUP1546 is made visible.
function ITUP1546_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to ITUP1546 (see VARARGIN)

% Choose default command line output for ITUP1546
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes ITUP1546 wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = ITUP1546_OutputFcn(hObject, eventdata, handles) 
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;



function distance_Callback(hObject, eventdata, handles)
% hObject    handle to distance (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of distance as text
%        str2double(get(hObject,'String')) returns contents of distance as a double
d = str2double(get(hObject,'String'));
if isnan(d)
    d = [];
end
guidata(hObject, handles);

% --- Executes during object creation, after setting all properties.
function distance_CreateFcn(hObject, eventdata, handles)
% hObject    handle to distance (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% --- Executes on button press in dplot.
function dplot_Callback(hObject, eventdata, handles)
% hObject    handle to dplot (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of dplot

plotdgraph = get(hObject,'Value');
guidata(hObject, handles);

function frequency_Callback(hObject, eventdata, handles)
% hObject    handle to frequency (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of frequency as text
%        str2double(get(hObject,'String')) returns contents of frequency as a double
f = str2double(get(hObject,'String'));
if isnan(f)
    f = [];
end
guidata(hObject, handles);

% --- Executes during object creation, after setting all properties.
function frequency_CreateFcn(hObject, eventdata, handles)
% hObject    handle to frequency (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



function time_Callback(hObject, eventdata, handles)
% hObject    handle to time (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of time as text
%        str2double(get(hObject,'String')) returns contents of time as a double
t = str2double(get(hObject,'String'));
if isnan(t)
    t = [];
end
guidata(hObject, handles);

% --- Executes during object creation, after setting all properties.
function time_CreateFcn(hObject, eventdata, handles)
% hObject    handle to time (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



function heff_Callback(hObject, eventdata, handles)
% hObject    handle to heff (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of heff as text
%        str2double(get(hObject,'String')) returns contents of heff as a double
heff = str2double(get(hObject,'String'));
if isnan(heff)
    heff = [];
end
guidata(hObject, handles);

% --- Executes during object creation, after setting all properties.
function heff_CreateFcn(hObject, eventdata, handles)
% hObject    handle to heff (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% --- Executes on button press in h1plot.
function h1plot_Callback(hObject, eventdata, handles)
% hObject    handle to h1plot (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of h1plot
ploth1graph = get(hObject,'Value');

guidata(hObject, handles);

% --- Executes on button press in Calculate.
function Calculate_Callback(hObject, eventdata, handles)
% hObject    handle to Calculate (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

d = str2double(get(handles.distance,'String'));
f = str2double(get(handles.frequency,'String'));
t = str2double(get(handles.time,'String'));
heff = str2double(get(handles.heff,'String'));
ha = str2double(get(handles.Ha,'String'));
hb = str2double(get(handles.Hb,'String'));
if isnan(ha)
    ha = [];
end
if isnan(hb)
    hb = [];
end
plotdgraph = get(handles.dplot,'Value');
ploth1graph = get(handles.h1plot, 'Value');
if get(handles.landpath, 'Value')
    path = 'Land';
end
if get(handles.coldseapath, 'Value')
    path = 'Cold';
end
if get(handles.warmseapath, 'Value')
    path = 'Warm';
end
fs = 0;
if get(handles.step12, 'Value')
    tca = str2double(get(handles.TCA,'String'));
    fs = fs + Step_12(f,tca);
end
if get(handles.step13, 'Value')
    eff = str2double(get(handles.eff,'String'));
    eff1 = str2double(get(handles.eff1,'String'));
    set(handles.tropo,'String',num2str(Step_13(d,f,t,eff,eff1)));  
end

if get(handles.landEnviroment, 'Value')
    env = 'land';
end
if get(handles.denseEnviroment, 'Value')
    env = 'dense';
end
if get(handles.urbanEnviroment, 'Value')
    env = 'urban';
end
if get(handles.openEnviroment, 'Value')
    env = 'open';
end

if get(handles.step15, 'Value')
    fs = fs + Step_15(d,heff,ha,f,env);
end
if get(handles.step14, 'Value')
    h2 = str2double(get(handles.h2,'String'));
    fs = fs + Step_14(h2,f,path,env,d,heff);
end

if plotdgraph
    dx = [  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13,...
    14, 15, 16, 17, 18, 19, 20, 25, 30, 35, 40, 45, 50,...
    55, 60, 65, 70, 75, 80, 85, 90, 95,100,110,120,130,...
    140,150,160,170,180,190,200,225,250,275,300,325,350,...
    375,400,425,450,475,500,525,550,575,600,625,650,675,...
    700,725,750,775,800,825,850,875,900,925,950,975,1000];
y = 1:1:length(dx);
for x=1:length(dx)
    y(x) = P1546FieldStr(dx(x),f,t,heff,ha,hb,path,fs);
end
figure(2);
semilogx(dx,y,'b-')
elseif ploth1graph
        hx = [10, 20, 37.5, 75, 150, 300, 600, 1200];
y = 1:1:length(hx);
for x=1:length(hx)
    y(x) = P1546FieldStr(d,f,t,hx(x),ha,hb,path,fs);
end
figure(2);
semilogx(hx,y,'b--')
else

    set(handles.resultValue,'String',num2str(P1546FieldStr(d,f,t,heff,ha,hb,path,fs)));

end
guidata(hObject, handles);

function Ha_Callback(hObject, eventdata, handles)
% hObject    handle to Ha (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of Ha as text
%        str2double(get(hObject,'String')) returns contents of Ha as a double
ha = str2double(get(hObject,'String'));
if isnan(ha)
    ha = [];
end
guidata(hObject, handles);

% --- Executes during object creation, after setting all properties.
function Ha_CreateFcn(hObject, eventdata, handles)
% hObject    handle to Ha (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



function Hb_Callback(hObject, eventdata, handles)
% hObject    handle to Hb (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of Hb as text
%        str2double(get(hObject,'String')) returns contents of Hb as a double
hb = str2double(get(hObject,'String'));
if isnan(hb)
    hb = [];
end
guidata(hObject, handles);

% --- Executes during object creation, after setting all properties.
function Hb_CreateFcn(hObject, eventdata, handles)
% hObject    handle to Hb (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% --- Executes on button press in step12.
function step12_Callback(hObject, eventdata, handles)
% hObject    handle to step12 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of step12
if get(hObject,'Value')
    set(handles.TCA, 'String', '');
else
    set(handles.TCA, 'String', 'Terrain Clearence >');
end
guidata(hObject, handles);

% --- Executes on button press in step13.
function step13_Callback(hObject, eventdata, handles)
% hObject    handle to step13 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of step13
if get(hObject,'Value')
    set(handles.eff, 'String', '');
    set(handles.eff1, 'String', '');
else
    set(handles.eff, 'String', 'h1 Clearence >');
    set(handles.eff1, 'String', 'h2 Clearence >');
end
guidata(hObject, handles);

% --- Executes on button press in step15.
function step15_Callback(hObject, eventdata, handles)
% hObject    handle to step15 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of step15



function TCA_Callback(hObject, eventdata, handles)
% hObject    handle to TCA (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of TCA as text
%        str2double(get(hObject,'String')) returns contents of TCA as a double
tca = str2double(get(hObject,'String'));
if isnan(tca)
    tca = [];
end
guidata(hObject, handles);

% --- Executes during object creation, after setting all properties.
function TCA_CreateFcn(hObject, eventdata, handles)
% hObject    handle to TCA (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



function eff_Callback(hObject, eventdata, handles)
% hObject    handle to eff (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of eff as text
%        str2double(get(hObject,'String')) returns contents of eff as a double
eff = str2double(get(hObject,'String'));
if isnan(eff)
    eff = [];
end
guidata(hObject, handles);

% --- Executes during object creation, after setting all properties.
function eff_CreateFcn(hObject, eventdata, handles)
% hObject    handle to eff (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end



function eff1_Callback(hObject, eventdata, handles)
% hObject    handle to eff1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of eff1 as text
%        str2double(get(hObject,'String')) returns contents of eff1 as a double
eff1 = str2double(get(hObject,'String'));
if isnan(eff1)
    eff1 = [];
end
guidata(hObject, handles);

% --- Executes during object creation, after setting all properties.
function eff1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to eff1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% --- Executes on button press in step14.
function step14_Callback(hObject, eventdata, handles)
% hObject    handle to step14 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of step14

if get(hObject,'Value')
    set(handles.h2, 'String', '');
else
    set(handles.h2, 'String', 'H2 (m)');
end
guidata(hObject, handles);

function h2_Callback(hObject, eventdata, handles)
% hObject    handle to h2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of h2 as text
%        str2double(get(hObject,'String')) returns contents of h2 as a double
h2 = str2double(get(hObject,'String'));
if isnan(h2)
    h2 = [];
end
guidata(hObject, handles);

% --- Executes during object creation, after setting all properties.
function h2_CreateFcn(hObject, eventdata, handles)
% hObject    handle to h2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end

Contact us at files@mathworks.com