微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 移动通信 > 通信基础 > 请各位大神帮我看下毕设怎么做,来点思路也行阿~~~~~~~~

请各位大神帮我看下毕设怎么做,来点思路也行阿~~~~~~~~

时间:05-24 整理:3721RD 点击:
本科毕业女屌丝,运营商工作都签了却卡死在毕设上。毕设老师太残忍了,女屌丝下周三要交初稿但是连代码都没搞出来特别捉急!!!我的毕设课题是——室外覆盖的无线局域网吞吐量仿真和网络规划,主要是在matlab的现有的wlan仿真平台上修改原有的802.11N的信道模型来适应802.11ac的信道,来实现仿真。老师给了前期的802.11N的代码,周一才答应给AC模型的代码,要求必须看懂AC信道模型如何添加和修改,拜托大家帮忙看下!

主程序:

function varargout = Foot(varargin)

% FOOT M-file for Foot.fig
% FOOT, by itself, creates a new FOOT or raises the existing
% singleton*.
%
% H = FOOT returns the handle to a new FOOT or the handle to
% the existing singleton*.
%
% FOOT(CALLBACK,hObject,eventData,handles,...) calls the local
% function named CALLBACK in FOOT.M with the given input arguments.
%
% FOOT(Property,Value,...) creates a new FOOT or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before Foot_OpeningFunction gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to Foot_OpeningFcn via varargin.
%
% *See GUI Options on GUIDEs 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 Foot

addpath sinr_through

global N;
global p;%表示在擦除模式下数据存入暂存到p,然后可以在p中擦除
global totalAp ;%表示共要撒AP的个数
global ao;%表示存放音乐的数组

N=100;
gui_Singleton = 1;
gui_State = struct(gui_Name, mfilename, ...
gui_Singleton, gui_Singleton, ...
gui_OpeningFcn, @Foot_OpeningFcn, ...
gui_OutputFcn, @Foot_OutputFcn, ...
gui_LayoutFcn, [] , ...
gui_Callback, []);
if nargin && ischar(varargin{1}) %nargin 在函数体内,用于获取实际的输入变量 varagin "变长度" 输入变量列表
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 Foot is made visible.
function Foot_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 Foot (see VARARGIN)

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

% Update handles structure
guidata(hObject, handles);%保存数据!

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

set(hObject,toolbar,figure);
global currentFileFolder;%设置 当前路径的全局变量

if exist(Icons/Fotoaparat_grau.bmp,file) ~= 0 %判断是否存在要加载的的图片
image_pic = imread(Icons/Fotoaparat_grau_all.bmp);
set(handles.save_all_images_button,cdata,image_pic); %将图片存放在save_all_images_button中

end
if exist(Icons/media_music.bmp,file) ~= 0 %判断是否存在要加载的的图片
image_pic = imread(Icons/media_music.bmp);
set(handles.pushbutton11,cdata,image_pic); %将图片存放在save_all_images_button中

end

if exist(Icons/exit_music.bmp,file) ~= 0 %判断是否存在要加载的的图片
image_pic = imread(Icons/exit_music.bmp);
set(handles.pushbutton12,cdata,image_pic); %将图片存放在save_all_images_button中

end
if exist(Icons/hello.bmp,file) ~= 0
ha=axes(units,normalized,position,[0 0 1 1]);
uistack(ha,down)
II=imread(Icons/hello.bmp);
image(II)
colormap gray
set(ha,handlevisibility,off,visible,off);
end
axes(handles.axes1);
axes(handles.axes2);
% Folder path of currently running function 新建存放图片的路径
currentFileFolder = mfilename(fullpath); %获取当前路径
currentFileFolder = currentFileFolder(1:(find(currentFileFolder == filesep,1,last) - 1));
% Create "Graficos" Folder
graficosFolder = sprintf(%s/Graficos,currentFileFolder); %新建一个文件夹
if exist(graficosFolder,dir) == 0 %判断文件夹是否存在
% Doesnt exist Folder, Ill create it
mkdir(graficosFolder);
end


% --- Outputs from this function are returned to the command line.
function varargout = Foot_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 edit1_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (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 edit1 as text
% str2double(get(hObject,String)) returns contents of edit1 as a double

% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (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 edit3_Callback(hObject, eventdata, handles)
% hObject handle to edit3 (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 edit3 as text
% str2double(get(hObject,String)) returns contents of edit3 as a double

% --- Executes during object creation, after setting all properties.
function edit3_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit3 (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 pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
cla(handles.axes1,reset);%重置坐标1和坐标2
cla(handles.axes2,reset);
set(handles.pushbutton8,enable,off);%将链路预算的按钮置为不可用

%获取界面参数上的输入参数
%***********************************************************************
global AX;
global AY;
global N;
global str1;
global str2;
global str3;
global length1;
global width;
global flag;
global totalAp;%声明要用全局变量totlap即总的AP数
persistent colnum ;%存放AP的数组的列
global flag_ap ;%标志符,如果为0表明AP位置正确,1表示位置错误
global p;
global paraAll;
global point1;
global apPoint;
global apPoint_1;
global apPoint_2;
global ax;
global ay;
station_num=get(handles.edit1,string);%获取界面上的场景的长度
N=str2num(station_num);
str3=get(handles.edit3,string);

%对输入参数进行判断,是否有空值
%**********************************************************************
if isempty(str1)||isempty(str3)||isempty(flag)
errordlg(输入没有完成,请核对参数后输入!,输入错误);
return;
end

axes(handles.axes1);
[m,n]=size(paraAll);
for row=1:m
plot([paraAll(row,1),paraAll(row,3)],[paraAll(row,2),paraAll(row,4)],b);
hold on;
end
colnum=1;%初始化为一
totalAp =str2num(str3);%获取AP的总个数
flag_ap=0;%判断AP点位置是否合法,初始为0表示合法
%用鼠标点击绘制AP的位置
for totalAp1=1:totalAp
waitforbuttonpress;
point1 = get(gca,CurrentPoint);
point1 = point1(1,1:2); % extract x and y
p(colnum)= plot(point1(1),point1(2),p:b,...
EraseMode,background,MarkerSize,5);%设置AP位置为可擦除模式
if point1(1)<0 || point1(1)>str2num(str1)||point1(2)<0||point1(2)>str2num(str2)%判断AP的位置是否合法,如果不合法则退出布点程序
errordlg(输入AP的位置错误,请重新输入!,AP位置错误);
flag_ap=1;%此时撒点AP位置的位置不合法
break;
end
ap_text=strcat( strcat(AP,num2str(colnum)),点);%标注AP的个数
text(point1(1)+1,point1(2)+1,ap_text);
plot(point1(1)+1,point1(2)+1,o:r);
apPoint(colnum,:)=point1;%将AP位置存入一个数组
colnum=colnum+1;%每循环一次,列加一次
end

if flag_ap==0

set(handles.uitable1,data,apPoint);%将AP位置导入Table表中
pause(1);
ax=str2num(str1)*rand(1,N-totalAp );%随机产生一个【0-20】的一阶矩正
ay=str2num(str2)*rand(1,N-totalAp );%随机产生一个【0-20】的一阶矩正
apPoint_1=apPoint+1;
apPoint_2=apPoint_1;
AX=[ax,apPoint_2(1,:)];
AY=[ay,apPoint_2(2,:)];
plot(AX,AY,o);
hold on;

[y_through]=calc_ap_through(AX,AY,N,apPoint);
%得到每个点的吞吐量之后,利用分段插值法得到等高线曲线和伪色图
contour_t(y_through);
xlabel(场景的长度(单位:m));
ylabel(场景的宽度(单位:m));
title(吞吐量图(单位:Mbps));

axes(handles.axes2);
[m,n]=size(paraAll);
for row=1:m
plot([paraAll(row,1),paraAll(row,3)],[paraAll(row,2),paraAll(row,4)],b);
hold on;
end
plot(AX,AY,o);
hold on;
for ap_num=1:totalAp %绘制AP的位置并加标注
plot(apPoint(ap_num,1),apPoint(ap_num,2),p:b);
ap_text=strcat( strcat(AP,num2str(ap_num)),点);%标注AP的个数
text(apPoint(ap_num,1)+1,apPoint(ap_num,2)+1,ap_text);
hold on;
end

waitbar_title = 正在绘制映射后的SINR图...;
% Create Waitbar
wait_bar = waitbar(0,waitbar_title,Name, WLAN GUI Processing...,...
windowstyle, modal);
waitbar(3/1,wait_bar);
N_C=64;%子载波
for n=1:N_C
[SINR(n,:)]=SINR_s(apPoint(:,1),apPoint(:,2),AX,AY);
pause(0.1);
end
waitbar(3/2,wait_bar);
for m=1:length(AX)
for n=1:64
sinr(n)=SINR(n,m);%第m个用户的64个sinr
end
[SINR_e(m)]=ALG1(sinr);
end
[Through_output_max]=per(SINR_e);
% Waitbar Update
waitbar(1/1,wait_bar);
delete(wait_bar);
contour_t(Through_output_max);
xlabel(场景的长度(单位:m));
ylabel(场景的宽度(单位:m));
title(经过SINR映射后的吞吐量图(单位:Mbps));
end

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


%此处注释掉的代码为可随意设置要保存图片位置的代码
%{

axes(handles.axes1); %取得axes1的句柄
if isempty(handles.axes1)
return;
end
newFig = figure;%由于直接保存axes1上的图像有困难,所以保存在新建的figure中的谱图
set(newFig,Visible,off)%设置新建的figure为不可见
newAxes = copyobj(handles.axes1,newFig); %将axes1中的图复制到新建的figure中
set(newAxes,Units,default,Position,default); % 设置图显示的位置
[filename,pathname] = uiputfile({ /Graficos/*.jpg,figure type(*.jpg)}, 保存原始波形);
if isequal(filename,0)||isequal(pathname,0)%如果用户选择“取消”,则退出
return;
else
fpath=fullfile(pathname,filename);
end
%imwrite(newFig,fpath);%如果用户选择“取消”,则退出
f = getframe(newFig);

f = frame2im(f);
imwrite(f, fpath);
%}

global currentFileFolder;%声明要保存图片的路径
% Get date and time
date = clock; %返回格式为 [year month day hour minute second]
position_axes = [0.1300 0.1100 0.7750 0.8150];
% Waitbar title and steps
waitbar_title = Save Image...;

axes(handles.axes1); %取得axes1的句柄

% Create Waitbar
wait_bar = waitbar(0,waitbar_title,Name, WLAN GUI Processing...,...
windowstyle, modal);

for step=1:5
% Waitbar Update
waitbar(2/step,wait_bar);
end

if isempty(handles.axes1) %假如坐标1为空则退出
return;
end
%**************************************************************************
%**************************************************************************
axes(handles.axes1);%设置当前操作的对象为坐标一
orignalAxes = gca;
figure_name = sprintf(%02d%02d%02d-%02d.%02d.%02d - ,(date(1)-2000), date(2), date(3), date(4), date(5), round(date(6))); %设置显示图片名的格式
newFig = figure(Name, figure_name, NumberTitle, off);%新建一个figure


%Create a copy of the axes
newA = copyobj(orignalAxes, newFig); %将原始的图片存放到newFig中
%Position adjust with default values previous to save
set(newA, position, position_axes); %确定显示新figure的坐标位置
%Save figure to file
file_name = sprintf(%s/Graficos/%02d%02d%02d-%02d.%02d.%02d-AP_STATION.jpg, currentFileFolder, (date(1)-2000), date(2), date(3), date(4), date(5), round(date(6)));%设置要保存文件名的格式
saveas(newFig, file_name);%保存图片
file_name = ;%保存完成后将文件置空
%Close the new figure
close(newFig); %关闭figure
%**********************************************************************
%**********************************************************************
axes(handles.axes2);
orignalAxes = gca;
figure_name = sprintf(%02d%02d%02d-%02d.%02d.%02d - throughoutput,(date(1)-2000), date(2), date(3), date(4), date(5), round(date(6))); %设置显示图片名的格式
newFig = figure(Name, figure_name, NumberTitle, off);%新建一个figure


%Create a copy of the axes
newA = copyobj(orignalAxes, newFig); %将原始的图片存放到newFig中
%Position adjust with default values previous to save
set(newA, position, position_axes); %确定显示新figure的坐标位置
%Save figure to file
file_name = sprintf(%s/Graficos/%02d%02d%02d-%02d.%02d.%02d-throughoutput.jpg, currentFileFolder, (date(1)-2000), date(2), date(3), date(4), date(5), round(date(6)));%设置要保存文件名的格式
saveas(newFig, file_name);%保存图片
file_name = ;%保存完成后将文件置空
%Close the new figure
close(newFig); %关闭figure

% 进度条更新
waitbar(1/1,wait_bar);
%删除进度条
delete(wait_bar);




% --- Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,String) returns popupmenu1 contents as cell array
% contents{get(hObject,Value)} returns selected item from popupmenu1

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

% Hint: popupmenu 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 pushbutton5.
%重置:将系统各个的参数还原为初始值
function pushbutton5_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
cla(handles.axes1,reset);%重置坐标1和坐标2
cla(handles.axes2,reset);
set(handles.edit1,string,sprintf(%d,100));
set(handles.edit3,string,sprintf(%d,4));

set(handles.popupmenu1,value,1);
set(handles.pushbutton8,enable,on);%将链路预算的按钮置为可用
%data=zeros(20,2);
%set(handles.uitable1,data,data);
guidata(hObject, handles);

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

if strcmp(get(handles.uipanel2,visible),off)

set(handles.text12,visible, off);
set(handles.axes1,visible, off);
set(handles.save_all_images_button,visible, off);
pause(0.01);
set(handles.uipanel2,visible, on);
set(handles.pushbutton2,enable,off);
set(handles.pushbutton5,enable,off);

end


function edit29_Callback(hObject, eventdata, handles)
% hObject handle to edit29 (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 edit29 as text
% str2double(get(hObject,String)) returns contents of edit29 as a double

% --- Executes during object creation, after setting all properties.
function edit29_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit29 (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 edit30_Callback(hObject, eventdata, handles)
% hObject handle to edit30 (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 edit30 as text
% str2double(get(hObject,String)) returns contents of edit30 as a double

% --- Executes during object creation, after setting all properties.
function edit30_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit30 (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 edit31_Callback(hObject, eventdata, handles)
% hObject handle to edit31 (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 edit31 as text
% str2double(get(hObject,String)) returns contents of edit31 as a double

% --- Executes during object creation, after setting all properties.
function edit31_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit31 (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 edit33_Callback(hObject, eventdata, handles)
% hObject handle to edit33 (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 edit33 as text
% str2double(get(hObject,String)) returns contents of edit33 as a double

% --- Executes during object creation, after setting all properties.
function edit33_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit33 (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 edit34_Callback(hObject, eventdata, handles)
% hObject handle to edit34 (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 edit34 as text
% str2double(get(hObject,String)) returns contents of edit34 as a double

% --- Executes during object creation, after setting all properties.
function edit34_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit34 (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 edit35_Callback(hObject, eventdata, handles)
% hObject handle to edit35 (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 edit35 as text
% str2double(get(hObject,String)) returns contents of edit35 as a double

% --- Executes during object creation, after setting all properties.
function edit35_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit35 (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 edit36_Callback(hObject, eventdata, handles)
% hObject handle to edit36 (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 edit36 as text
% str2double(get(hObject,String)) returns contents of edit36 as a double

% --- Executes during object creation, after setting all properties.
function edit36_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit36 (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 edit37_Callback(hObject, eventdata, handles)
% hObject handle to edit37 (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 edit37 as text
% str2double(get(hObject,String)) returns contents of edit37 as a double

% --- Executes during object creation, after setting all properties.
function edit37_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit37 (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 pushbutton6.
function pushbutton6_Callback(hObject, eventdata, handles)
%此按钮为链路预算的计算按钮
% hObject handle to pushbutton6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

PTx_Bs=get(handles.edit29,string);%为基站的发射功率,单位dBm;
Ga_Bs=get(handles.edit30,string);%为基站的天线增益,单位dB i,一般取值范围在13 ~21dBi之间,在此取值为18dBi;
Rss=get(handles.edit31,string);%Rss为接收机的灵敏度, 单位为dBm,在此取值- 114dB;
Sur_Inference=get(handles.edit33,string);%Sur_Inference为干扰冗余,通常取值10dB;
Lp_shadow=get(handles.edit34,string);%Lp_shadow 为阴影衰落的余量, 单位为dB,取值为4dB (近距离时) , 7dB (远距离时) ;
Lp_penetration=get(handles.edit35,string);%Lp_penetration为穿透损耗, 根据具体场景分析, 单位为dB,在此取0dB;
Body_loss=get(handles.edit36,string);%Body_loss为人体损耗, 在此取值为3dB;
Ga_UT=get(handles.edit37,string);%Ga_UT为MS的天线增益,一般确定为0dB i;
Ap_freqence=get(handles.edit40,string);%AP的频率,此处我们初始化为2400MHZ;
ht=get(handles.edit41,string);% 是发射天线有效高度
hr=get(handles.edit42,string);% 是接收天线有效高度
Scene=get(handles.popupmenu7,value);%选择不同的场景,value:1,为A 自由空间衰落 2为:B Costa模型 ,3,为C 11n信道模型
city=get(handles.popupmenu8,value);%选择不同的城市,value:1,为中小城市;2为大城市
d=0;%初始化是将AP的覆盖范围置为0;

Pathloss=str2num(PTx_Bs)+str2num( Ga_Bs)- str2num(Rss)- str2num(Sur_Inference)- str2num(Lp_shadow) -str2num(Lp_penetration) -str2num(Body_loss) +str2num(Ga_UT);%Pa th loss为发射机到接收机的路径损耗,根据具体场景和覆盖范围确定
switch Scene
case 1 %1为 A 自由空间衰落
d=10^((Pathloss-32.44-20*log10(str2num(Ap_freqence)))/20);


case 2 %2为:B Costa模型 即为办公室情况
% cm=3;% Cm 为大城市中心校正因子。在中等城市和郊区,Cm=0db ,在市中心,Cm=3db
% Cm修正因子取值如下:
%密集城区( D e n s e U r b a n ) : - 3 一般城区(Urban):-6
% 郊区(Suburb):-12 农村(Rural):-20
if city==1
cm=0;
a_hr=(1.1*log10(str2num(Ap_freqence))-0.7)*str2num(hr)-(1.56*log10(str2num(Ap_freqence))-0.8);
else
cm=3;

if(str2num(Ap_freqence)<300) %对于大城市有
a_hr=8.29*(log10(1.54*str2num(hr)))^2-1.1;
else
a_hr=3.2*(log10(11.75*str2num(hr)))^2-4.97;
end

end

d=10^((Pathloss-46.3-33.9*log10(str2num(Ap_freqence))+13.82*log10(str2num(ht))+a_hr-cm)/(44.9-6.55*log10(str2num(ht))));

case 3

d=(5*10^((Pathloss-3.5*5-5)/35))/1000;
end

set(handles.edit39,string,sprintf(%4.5f,d));

% --- Executes on button press in pushbutton7.
function pushbutton7_Callback(hObject, eventdata, handles)
%此按钮为链路预算中参数重置按钮
% hObject handle to pushbutton7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
set(handles.popupmenu7,value,1);
set(handles.popupmenu8,value,1);
set(handles.edit29,string,sprintf(%4.1f,27));
set(handles.edit30,string,sprintf(%4.1f,15));
set(handles.edit31,string,sprintf(%4.1f,-89));
set(handles.edit33,string,sprintf(%4.1f,10));
set(handles.edit34,string,sprintf(%4.1f,4));
set(handles.edit35,string,sprintf(%4.1f,0));
set(handles.edit36,string,sprintf(%4.1f,3));
set(handles.edit37,string,sprintf(%4.1f,0));
set(handles.edit39,string,sprintf(%4.1f,0));
set(handles.edit40,string,sprintf(%4.1f,2400));
set(handles.edit41,string,sprintf(%4.1f,10));
set(handles.edit42,string,sprintf(%4.1f,5));
guidata(hObject, handles);

function edit38_Callback(hObject, eventdata, handles)
% hObject handle to edit38 (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 edit38 as text
% str2double(get(hObject,String)) returns contents of edit38 as a double

% --- Executes during object creation, after setting all properties.
function edit38_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit38 (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 edit39_Callback(hObject, eventdata, handles)
% hObject handle to edit39 (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 edit39 as text
% str2double(get(hObject,String)) returns contents of edit39 as a double

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top