亚星游戏官网-yaxin222

门户 | 手机客户端 | 论坛 | 人才 | 百科 | 搜索 | 技术问答 | English
待解决问题
请各位大神帮我看下毕设怎么做,来点思路也行阿~~~~~~~~  (进入论坛模式)
离问题结束还有0天0小时  |  提问者:通信女屌丝   |  提问时间:2013-5-24 11:30
本科毕业女屌丝,运营商工作都签了却卡死在毕设上。毕设老师太残忍了,女屌丝下周三要交初稿但是连代码都没搞出来特别捉急!!!我的毕设课题是——室外覆盖的无线局域网吞吐量仿真和网络规划,主要是在matlab的现有的wlan仿真平台上修改原有的802.11N的信道模型来适应802.11ac的信道,来实现仿真。老师给了前期的802.11N的代码,周一才答应给AC模型的代码,要求必须看懂AC信道模型如何添加和修改,拜托大家帮忙看下!
问题答案 ( 3 条 )
主程序:


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
 |  回应该答案 (0)  |  回答者:通信女屌丝   |  2013-5-24 11:31


% --- Executes during object creation, after setting all properties.
function edit39_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit39 (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 pushbutton9.
function pushbutton9_Callback(hObject, eventdata, handles)
%此函数功能是:在点击链路预算界面退出按钮时实现的功能
% hObject handle to pushbutton9 (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),on)
set(handles.uipanel2,visible, off);
pause(0.01);
set(handles.text12,visible, on);
set(handles.axes1,visible, on);
set(handles.save_all_images_button,visible, on);
set(handles.pushbutton2,enable,on);
set(handles.pushbutton5,enable,on);

end



% --- Executes on selection change in popupmenu7.
function popupmenu7_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu7 (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 popupmenu7 contents as cell array
% contents{get(hObject,Value)} returns selected item from popupmenu7


% --- Executes during object creation, after setting all properties.
function popupmenu7_CreateFcn(hObject, eventdata, handles)
% hObject handle to popupmenu7 (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



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


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


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


% --- Executes during object creation, after setting all properties.
function edit42_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit42 (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 selection change in popupmenu8.
function popupmenu8_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu8 (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 popupmenu8 contents as cell array
% contents{get(hObject,Value)} returns selected item from popupmenu8


% --- Executes during object creation, after setting all properties.
function popupmenu8_CreateFcn(hObject, eventdata, handles)
% hObject handle to popupmenu8 (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 pushbutton10.
function pushbutton10_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton10 (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);
data1=get(handles.uitable1,data);
global totalAp;
global AX;
global AY;
global str1;
global str2;
global length1;
global width;
global flag;
global N;
cnt=1;
%total_ap=get(handles.edit3,string);
%while cnt %set(p(cnt),XData,data1(cnt,1),YData,data1(cnt,2));
%cnt=cnt+1;
%end
staion_num=get(handles.edit1,string);%为用户个数;
N=str2num(staion_num);
apnum=get(handles.edit3,string);%为AP个数;
totalAp=str2num(apnum);
AX=str2num(str1)*rand(1,N);%随机产生一个【0-20】的一阶矩正
AY=str2num(str2)*rand(1,N);%随机产生一个【0-20】的一阶矩正

axes(handles.axes1);
[num,x,y]=condition(flag,str1,str2,length1,width,0);
if flag==3
plot(x,y);
hold on;
end
plot(AX,AY,o);
hold on;
for ap_num=1:totalAp %绘制AP的位置并加标注
data2(ap_num,:)=data1(ap_num,:);
plot(data1(ap_num,1),data1(ap_num,2),p:b);
ap_text=strcat( strcat(AP,num2str(ap_num)),点);%标注AP的个数
text(data1(ap_num,1)+1,data1(ap_num,2)+1,ap_text);
hold on;
end
[y_through]=calc_ap_through(AX,AY,N,data1);
%得到每个点的吞吐量之后,利用分段插值法得到等高线曲线和伪色图
contour_t(y_through);

axes(handles.axes2);
[num,x,y]=condition(flag,str1,str2,length1,width,0);
if flag==3
plot(x,y);
hold on;
end
plot(AX,AY,o);
hold on;
for ap_num=1:totalAp %绘制AP的位置并加标注
plot(data2(ap_num,1),data2(ap_num,2),p:b);
ap_text=strcat( strcat(AP,num2str(ap_num)),点);%标注AP的个数
text(data2(ap_num,1)+1,data2(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(data2(:,1),data2(:,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);

%{
global A;
[dfile dpath ]=uigetfile({*.xls;*.xlsx;*.txt,data(*.xls;*.xlsx;*.txt)},Pick a data);
dfile=strcat(dpath,dfile);
if length(dfile)==0
return ;
end

try

A=xlsread(dfile);

disp(A);
for i=1:3
for j=1:2
disp(A(i,j));
end
end


catch

x=textread([dpath dfile]);

end
%}

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

%set(handles.pushbutton12,enable,on);%将链路预算的按钮置为不可用

[y,Fs,bits] = wavread(music.wav); %获取音乐数据
global ao
ao= analogoutput(winsound); %建立硬件对象
addchannel(ao,[1 2]); %创建声音输出通道
set(ao,SampleRate,Fs) %设置采样率
data1 =y(:,1); %双声道
data2 =y(:,2);
putdata(ao,[data1 data2]); %往声卡堆音乐数据
start(ao); %输出音乐数据

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


% --- Executes on button press in pushbutton12.
function pushbutton12_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton12 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global ao;
stop(ao); %输出音乐数据

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


% --- Executes during object creation, after setting all properties.
function uitable1_CreateFcn(hObject, eventdata, handles)
% hObject handle to uitable1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
data=zeros(20,2);
set(hObject,data,data);

% --- Executes on key press with focus on popupmenu1 and none of its controls.
function popupmenu1_KeyPressFcn(hObject, eventdata, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata structure with the following fields (see UICONTROL)
% Key: name of the key that was pressed, in lower case
% Character: character interpretation of the key(s) that was pressed
% Modifier: name(s) of the modifier key(s) (i.e., control, shift) pressed
% handles structure with handles and user data (see GUIDATA)
global flag;
flag=get(handles.popupmenu1,value);
a;


% --- Executes on button press in pushbutton16.
function pushbutton16_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton16 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
data1=get(handles.uitable1,data);
global AX;
global AY;
global str1;
global str2;
global N;
global paraAll;
%{
global apPoint;
global apPoint_1;
global apPoint_2;
global ax;
global ay;
%}
cnt=1;
staion_num=get(handles.edit1,string);%为用户个数;
N=str2num(staion_num);
apnum=get(handles.edit3,string);%为AP个数;
totalAp=str2num(apnum);
%{
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,:)];
%}
AX=str2num(str1)*rand(1,N);%随机产生一个【0-20】的一阶矩正
AY=str2num(str2)*rand(1,N);%随机产生一个【0-20】的一阶矩正
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
plot(AX,AY,o);
hold on;
for ap_num=1:totalAp %绘制AP的位置并加标注
data2(ap_num,:)=data1(ap_num,:);
plot(data1(ap_num,1),data1(ap_num,2),p:b);
ap_text=strcat( strcat(AP,num2str(ap_num)),点);%标注AP的个数
text(data1(ap_num,1)+1,data1(ap_num,2)+1,ap_text);
hold on;
end
[RSSI]=calc_ap_through(AX,AY,N,data2);
%[y_through,Pr_sum_col_01,calcAdjacentChannelRejection]=calc_ap_through(AX,AY,N,data2);
%contour_t(Pr_sum_col_01);
contour_t(RSSI);
xlabel(场景的长度(单位m));
ylabel(场景的宽度(单位m));
title(信号强度图(单位:dB));


% --- Executes on button press in pushbutton17.
function pushbutton17_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton17 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
data1=get(handles.uitable1,data);
global AX;
global AY;
global str1;
global str2;
global N;
global paraAll;
cnt=1;
staion_num=get(handles.edit1,string);%为用户个数;
N=str2num(staion_num);
apnum=get(handles.edit3,string);%为AP个数;
totalAp=str2num(apnum);
AX=str2num(str1)*rand(1,N);%随机产生一个【0-20】的一阶矩正
AY=str2num(str2)*rand(1,N);%随机产生一个【0-20】的一阶矩正
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
%{
[num,x,y]=condition(flag,str1,str2,length1,width,0);
if flag==3
plot(x,y);
hold on;
end
%}
plot(AX,AY,o);
hold on;
for ap_num=1:2 %绘制AP的位置并加标注 此时只做了两个AP的
data2(ap_num,:)=data1(ap_num,:);
plot(data1(ap_num,1),data1(ap_num,2),p:b);
ap_text=strcat( strcat(AP,num2str(ap_num)),点);%标注AP的个数
text(data1(ap_num,1)+1,data1(ap_num,2)+1,ap_text);
hold on;
end
[y_through,Pr_sum_col_01,calcAdjacentChannelRejection]=calc_ap_through(AX,AY,N,data2);
contour_t(calcAdjacentChannelRejection);



% --- Executes on button press in pushbutton18.
function pushbutton18_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton18 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
data1=get(handles.uitable1,data);
global AX;
global AY;
global str1;
global str2;
global N;
global paraAll;
cnt=1;
staion_num=get(handles.edit1,string);%为用户个数;
N=str2num(staion_num);
apnum=get(handles.edit3,string);%为AP个数;
totalAp=str2num(apnum);
AX=str2num(str1)*rand(1,N);%随机产生一个【0-20】的一阶矩正
AY=str2num(str2)*rand(1,N);%随机产生一个【0-20】的一阶矩正
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的位置并加标注
data2(ap_num,:)=data1(ap_num,:);
plot(data1(ap_num,1),data1(ap_num,2),p:b);
ap_text=strcat( strcat(AP,num2str(ap_num)),点);%标注AP的个数
text(data1(ap_num,1)+1,data1(ap_num,2)+1,ap_text);
hold on;
end
[CarrierInferenceRatio]=calc_ap_through(AX,AY,N,data2);
contour_t(CarrierInferenceRatio);
xlabel(场景的长度(单位m));
ylabel(场景的宽度(单位m));
title(载干比图);
调用的ALG函数

function [sinr]=ALG(P_loss1,s1,ditaf,Pt,ap_num)

global l;
N0=10^(-15);%噪声功率谱密度
num=length(s1);
%将传来的1*num的二维数组(虽然只有一行)转变为一位数组
P_loss=reshape(P_loss1,1,num);
s=reshape(s1,1,num);
T=1;
T_interval=1/5;
Nc=T/T_interval;
for ap=1:ap_num
H(ap,:,:)=channel(Nc);
end
obj=s(1);
temp1=0;
for m=1:4
h(m,:)=reshape(H(obj,m,:),1,Nc);
temp1=temp1+(norm(h(m)))^2;%norm(x)指向量或矩阵x的范数eg:x=1,3,4,5,6;norm(x)=sqrt(1+9+16+25+36);
end
Ps=10^((Pt-P_loss(obj))/10)/2*temp1^2;
Pn=N0*ditaf*temp1;

temp2=0;
temp3=0;
PL=0;
if ap_num==1
Pn=Pn*10^5;
else
for l=2:length(s)
x=conj(H(obj,1,:)).*H(s(l),1,:)+conj(H(obj,3,:)).*H(s(l),3,:)+conj(H(s(l),2,:)).*H(obj,2,:)+conj(H(s(l),4,:)).*H(obj,4,:);%conj指取共轭复数
x=reshape(x,1,Nc);
temp2=temp2+x;
y=conj(H(s(l),1,:)).*H(obj,2,:)+conj(H(s(l),3,:)).*H(obj,4,:)-conj(H(obj,1,:)).*H(s(l),2,:)-conj(H(obj,3,:)).*H(s(l),4,:);
y=reshape(y,1,Nc);
temp3=temp3+y;
PL=PL+(10^((Pt-P_loss(s(l)))/10)/2)*((norm(temp2))^2+(norm(temp3))^2);

end
end
sinr=Ps/(PL+Pn);
sinr=10*log10(sinr);



老师给的代码都在这几个里面 了 希翼知道的大神可以联系一下我,拯救一下担惊受怕的未毕业女屌丝
 |  回应该答案 (0)  |  回答者:通信女屌丝   |  2013-5-24 11:32
毕设快答辩了
 |  回应该答案 (0)  |  回答者:a362510211   |  2013-5-28 12:27
 
我要回答:  回答字数在10000字以内

 

XML 地图 | Sitemap 地图