% =============================================%
% Programed by Rustam Efendi, STTTelkom Bandung.
% [email protected]
% Open for correction or any comments.
% =============================================%
function varargout = M_QAM(varargin)
global SNR_max jml_itr BR kanal rolloff M snr orde Alpha t Bit Split_Od ...
Split_Ev Lsymbol_Od Lsymbol_Ev ttt LshapedI LshapedQ Yinphase Yquadrat ...
Yqam Yqamrx DemodI DemodQ LdetI LdetQ recLsymbolI recLsymbolQ ...
rxdibitI rxtribitI rxfourbitI rxdibitQ rxtribitQ rxfourbitQ ...
quadratosc inphaseosc recbit RayL rrcfilter fad1 nsamp Yqamj Yqamrxj ...
LcompI LcompQ Lsymbolods Lsymbolevs bit_frame bit_frame_split bagi_waktu ...
Bit_Masukan fs Lsymbolod Lsymbolev QQQ III rolloff
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @M_QAM_OpeningFcn, ...
'gui_OutputFcn', @M_QAM_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 M_QAM is made visible.
function M_QAM_OpeningFcn(hObject, eventdata, handles, varargin)
web www.wobishe.com
msgbox('技术支撑Q609553134')
bg=imread('M_QAM.bmp');
axes(handles.axes1);
imshow(bg);
handles.output = hObject;
guidata(hObject, handles);
% --- Outputs from this function are returned to the command line.
function varargout = M_QAM_OutputFcn(hObject, eventdata, handles)
% Get default command line output from handles structure
varargout{1} = handles.output;
atas(gcf)
clear all;
% --- popupmenu ---
function popupmenu1_Callback(hObject, eventdata, handles)
function popupmenu1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
msgbox('技术支持Q609553134')
end
function popupmenu2_Callback(hObject, eventdata, handles)
function popupmenu2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function popupmenu3_Callback(hObject, eventdata, handles)
function popupmenu3_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function popupmenu4_Callback(hObject, eventdata, handles)
function popupmenu4_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function popupmenu5_Callback(hObject, eventdata, handles)
function popupmenu5_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function popupmenu6_Callback(hObject, eventdata, handles)
function popupmenu6_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- edit ---
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
% --- pushbutton ---
function pushbutton1_Callback(hObject, eventdata, handles) % info
global t Bit bit_frame
if isempty(t)==1
msgbox('Push "Submit" !');
else
[pos1 pos2]=posisi_grafik;
figure('Position',pos1)
stairs(t,Bit), grid on; axis([0 bit_frame -0.1 1.1]);
title('Input Bit'); xlabel('Time'); ylabel('Amplitude (V)')
figure('Position',pos2)
fs = length(Bit) - 1;
f_dom = fft(Bit);
f_dom = 20*log10(abs((f_dom(1:length(f_dom)/2+1))./(max(abs(f_dom))) + 1e-30));
ty = [0:length(f_dom)-1]*fs/length(f_dom)/2;
plot(ty,f_dom); grid on;
title('Input Bit');xlabel('Frequency'); ylabel('Normalized Power (dBw)')
end
function pushbutton2_Callback(hObject, eventdata, handles) % info I
global t Split_Od bit_frame
if isempty(t)==1
msgbox('Push "Submit" !');
else
[pos1 pos2]=posisi_grafik;
figure('Position',pos1)
stairs(t,Split_Od), grid on,axis([0 bit_frame -0.1 1.1]);
title('Inphase Bit (Splitter Out)'); xlabel('Time'); ylabel('Amplitude (V)')
figure('Position',pos2)
fs = length(Split_Od) - 1;
f_dom = fft(Split_Od);
f_dom = 20*log10(abs((f_dom(1:length(f_dom)/2+1))./(max(abs(f_dom))) + 1e-30));
ty = [0:length(f_dom)-1]*fs/length(f_dom)/2;
plot(ty,f_dom); grid on;
title('Inphase Bit (Splitter Out)');xlabel('Frequency'); ylabel('Normalized Power (dBw)')
end;
function pushbutton3_Callback(hObject, eventdata, handles) % info Q
global t Split_Ev bit_frame
if isempty(t)==1
msgbox('Push "Submit" !');
else
[pos1 pos2]=posisi_grafik;
figure('Position',pos1)
stairs(t,Split_Ev), grid on,axis([0 bit_frame -0.1 1.1]);
title('Quadrature Bit (Splitter Out)'); xlabel('Time)'); ylabel('Amplitude (V)')
figure('Position',pos2)
fs = length(Split_Ev) - 1;
f_dom = fft(Split_Ev);
f_dom = 20*log10(abs((f_dom(1:length(f_dom)/2+1))./(max(abs(f_dom))) + 1e-30));
ty = [0:length(f_dom)-1]*fs/length(f_dom)/2;
plot(ty,f_dom); grid on;
title('Quadrature Bit (Splitter Out)');xlabel('Frequency'); ylabel('Normalized Power (dBw)')
end;
function pushbutton4_Callback(hObject, eventdata, handles) % l conv I
global t Lsymbol_Od orde bit_frame
if isempty(t)==1
msgbox('Push "Submit" !');
else
[pos1 pos2]=posisi_grafik;
if orde == 1
X = 4;
elseif orde == 2
X = 8;
elseif orde == 3
X = 16;
end
figure('Position',pos1)
stairs(t,Lsymbol_Od), grid on,axis([0 bit_frame -X X]);
title('Multilevel Inphase Signal'); xlabel('Time'); ylabel('Amplitude (V)')
figure('Position',pos2)
fs = length(Lsymbol_Od) - 1;
f_dom = fft(Lsymbol_Od);
f_dom = 20*log10(abs((f_dom(1:length(f_dom)/2+1))./(max(abs(f_dom))) + 1e-30));
ty = [0:length(f_dom)-1]*fs/length(f_dom)/2;
plot(ty,f_dom); grid on;
title('Multilevel Inphase Signal'); xlabel('Frequency'); ylabel('Normalized Power (dBw)')
end;
function pushbutton5_Callback(hObject, eventdata, handles) % l conv Q
global t Lsymbol_Ev orde bit_frame
if isempty(t)==1
msgbox('Push "Submit" !');
else
[pos1 pos2]=posisi_grafik;
if orde == 1
X = 4;
elseif orde == 2
X = 8;
elseif orde == 3
X = 16;
end
figure('Position',pos1)
stairs(t,Lsymbol_Ev), grid on,axis([0 bit_frame -X X]);
title('Multilevel Quadrature Signal'); xlabel('Time'); ylabel('Amplitude (V)')
figure('Position',pos2)
fs = length(Lsymbol_Ev) - 1;
f_dom = fft(Lsymbol_Ev);
f_dom = 20*log10(abs((f_dom(1:length(f_dom)/2+1))./

猰貐的新时代
- 粉丝: 1w+
最新资源
- 该项目为一个集数据抓取与展示一体的ACM队员数据系统,基于Django、python实现。.zip
- 辅助背单词软件,基于艾宾浩斯记忆曲线(其实背啥都行)的Python重构版,增加在线查词与翻译等功能.zip
- 基于C开发的命令行输入输出流重定向与实时分析工具_支持快捷按键和文本框输入实时过滤计算分析多格式结果呈现文本提示弹窗曲线表格支持批量测试和日志抓取_用于开发调试协议分.zip
- 各种有用的web api 基于Golang, Python(tornado django scrapy gevent).zip
- 华南理工大学找到卷王,基于 Python 的综测系统数据爬虫.zip
- 湖南大学(HNU)数据库系统课程大作业 ATM系统 前端基于Python的PyQt5,后端基于MySQL.zip
- (新闻爬虫),基于python+Flask+Echarts,实现首页与更多新闻页面爬取
- 基于 Flask + Requests 的全平台音乐接口 Python 版.zip
- 基于 FFmpeg ,使用 Python 开发的批量媒体文件格式转换器。.zip
- 基于 CAI 的 OneBot Python 实现.zip
- 基于 nonebot2 开发的消息交互式 Python 解释器,依赖 docker SDK.zip
- 基于 Python 3 + Django 2 开发的用于适配手机的简单 Jenkins 构建平台.zip
- Python 语言的爬楼梯问题实现-计算爬到第 n 级台阶的方法数
- 基于 Napcat, NcatBot, JMComic-Crawler-Python 的 QQ 机器人。.zip
- 基于 Python Tornado 的博客程序 (练习).zip
- 基于 Python 3.5 + Django 2.0 开发的简单个人博客.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


