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

📄 grafik.m

📁 非常好的M_QAM调制解调程序
💻 M
字号:
function varargout = Grafik(varargin)
global SNR_max jml_itr BR kanal rolloff M

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @Grafik_OpeningFcn, ...
                   'gui_OutputFcn',  @Grafik_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

% --- Executes just before Grafik is made visible.
function Grafik_OpeningFcn(hObject, eventdata, handles, varargin)
global SNR_max jml_itr BR kanal rolloff M

% % Inisialisasi
SNR_max = 20;
jml_itr = 50;
% BR      = 64000;
% kanal   = 1;
% rolloff = 0.5;
% M       = 16;

if M == 16
    MMM = '16-QAM';
elseif M == 64
    MMM = '64-QAM';
elseif M == 256
    MMM = '256-QAM';
end

if kanal == 1
    kanale = 'AWGN';
else
    kanale = 'Rayleigh';
end

set(handles.edit1,'string',BR);
set(handles.edit1,'enable','off');
set(handles.edit2,'string',MMM);
set(handles.edit2,'enable','off');
set(handles.edit3,'string',kanale);
set(handles.edit3,'enable','off');
set(handles.edit4,'string',rolloff);
set(handles.edit4,'enable','off');
% SNR_max = str2num(get (handles.edit5,'string'));
% SNR_max=get(handles.edit5,'value');
% SNR_max=str2num(SNR_max);
set(handles.edit5,'string',SNR_max);
set(handles.edit5,'enable','off');
set(handles.edit6,'string','. . .');
% set(handles.edit6,'enable','off');


handles.output = hObject;
guidata(hObject, handles);


% --- Outputs from this function are returned to the command line.
function varargout = Grafik_OutputFcn(hObject, eventdata, handles) 
varargout{1} = handles.output;
tengah(gcf)


function edit1_Callback(hObject, eventdata, handles)
function edit1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
function edit2_Callback(hObject, eventdata, handles)
function edit2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
function edit3_Callback(hObject, eventdata, handles)
function edit3_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
function edit4_Callback(hObject, eventdata, handles)
function edit4_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
function edit5_Callback(hObject, eventdata, handles)
function edit5_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


function edit6_Callback(hObject, eventdata, handles)
function edit6_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
global SNR_max jml_itr BR kanal rolloff M

% ==== SCRIPT BUAT GRAFIK =================================================
set(handles.edit6,'string','. . . SELESAI . . .');
set(handles.edit6,'enable','off');

pe_on_snr = zeros(1,SNR_max+1);
for snr = 1:SNR_max+1
    
    bit_error = zeros(1,jml_itr);
    for jum=1:jml_itr
        
        [jml_bit_err x]=qam(M,rolloff,snr,kanal,BR);
        
        bit_error(1,jum) = jml_bit_err;jum;
        
    end
    total_bit_error = sum(bit_error);
    probabilitas_error = total_bit_error/(length(x)*jml_itr);
    pe_on_snr(1,snr) = probabilitas_error;
    SNR_ke=snr;
end

snr = 0:SNR_max;
nnn = (10*log10(M))/(10*log10(2));
ebno = snr - 10*log10(nnn/(1+rolloff));

axes(handles.axes1);
semilogy(ebno,pe_on_snr,'-*');
grid on;
title('Pe vs EbNo');
xlabel('EbNo');
ylabel('P_e');

%
% =========================================================================

% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
close


⌨️ 快捷键说明

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