附 录
JDCS.m(创建GUI时对应生成的m文件) function varargout = JDCS(varargin) gui_Singleton = 1;
gui_State = struct('gui_Name', n mfilename, ... 'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @JDCS_OpeningFcn, ... 'gui_OutputFcn', @JDCS_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
function JDCS_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles);
function varargout = JDCS_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;
function Untitled_1_Callback(hObject, eventdata, handles) set(handles.panel1,'Visible','on'); set(handles.panel2,'Visible','off'); set(handles.panel3,'Visible','off'); set(handles.panel4,'Visible','off'); set(handles.panel5,'Visible','off');
function Untitled_2_Callback(hObject, eventdata, handles) set(handles.panel2,'Visible','on'); set(handles.panel1,'Visible','off'); set(handles.panel3,'Visible','off'); set(handles.panel4,'Visible','off'); set(handles.panel5,'Visible','off');
% -------------------------------------------------------------------- function Untitled_3_Callback(hObject, eventdata, handles) set(handles.panel3,'Visible','on'); set(handles.panel1,'Visible','off'); set(handles.panel2,'Visible','off');
25
set(handles.panel4,'Visible','off'); set(handles.panel5,'Visible','off');
% -------------------------------------------------------------------- function Untitled_4_Callback(hObject, eventdata, handles) set(handles.panel4,'Visible','on'); set(handles.panel1,'Visible','off'); set(handles.panel2,'Visible','off'); set(handles.panel3,'Visible','off'); set(handles.panel5,'Visible','off');
% -------------------------------------------------------------------- function Untitled_5_Callback(hObject, eventdata, handles) set(handles.panel5,'Visible','on'); set(handles.panel1,'Visible','off'); set(handles.panel2,'Visible','off'); set(handles.panel3,'Visible','off'); set(handles.panel4,'Visible','off');
% --------------------------------------------------------------------
% --- Executes on button press in pushbutton_plot_xy.
function pushbutton_plot_xy_Callback(hObject, eventdata, handles) mxs=str2num(get(handles.edit_xy,'String')); mxh=get(handles.listbox_mx,'Value'); switch (mxh) case 1
[y,t]=NRZ(mxs); case 2
[y,t]=RZ(mxs); case 3
[y,t]=DNRZ(mxs); case 4
[y,t]=DRZ(mxs); case 5
[y,t]=MACH(mxs); case 6
[y,t]=DMACH(mxs); case 7
[y,t]=MILER(mxs); otherwise ; end
axes(handles.axes_xy) plot(t,y);
max_y=max(y); min_y=min(y);
26
axis([0 10 min_y-0.1 max_y+0.1]); assignin('base','mx',mxs); [f,glp]=GLP(mxh); axes(handles.axes12)
plot(f,10*log10(abs(glp).^2))
% --- Executes on button press in pushbutton_close_xy.
function pushbutton_close_xy_Callback(hObject, eventdata, handles) set(handles.panel2,'Visible','off');
function edit_xy_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in pushbutton_sj.
function pushbutton_sj_Callback(hObject, eventdata, handles) mx=round(rand(1,10)); mx_string=num2str(mx);
set(handles.edit_xy,'string',mx_string);
function listbox_mx_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in pushbutton_plot_lb.
function pushbutton_plot_lb_Callback(hObject, eventdata, handles) mx_tou=str2num(get(handles.edit_xy,'string')); mx_tou=sign(mx_tou-0.5);
num_lb=get(handles.listbox_lb,'value'); a=str2num(get(handles.edit_a,'string')); a
b=get(handles.radiobutton_noise,'value'); b_noise=str2num(get(handles.edit_noise,'string')); global st; Ts=1; N=15;
eye_num=6; N_data=1000; dt=Ts/N;
t=-3*Ts:dt:3*Ts;
d=sign(randn(1,N_data-20)); d=[mx_tou,mx_tou,d]; assignin('base','f_mx',d); global f_mx; f_mx=(d+1)/2;
dd=sigexpand(d,N);
ht_rcos=sinc(t/Ts).*(cos(a*pi*t/Ts))./(1-4*a^2*t.^2/Ts^2+eps); % ht_rcos=rcosine(1,15,a);
ht_rcos_sqrt=rcosine(1,15,'sqrt',a);
27
switch(num_lb) case 1
ht=rcosine(1,15,'normal',0); case 2
ht=ht_rcos; case 3
ht=ht_rcos_sqrt; otherwise end;
st=conv(dd,ht);
tt=-3*Ts:dt:(N_data+3)*N*dt-dt; if b==1
st=awgn(st,b_noise); else end;
assignin('base','f_st',st); assignin('base','f_tt',tt); axes(handles.axes_lb1) plot(tt,st);
axis([0,40,min(st)-0.1,max(st)+0.1]); axes(handles.axes_lb2) cla reset
ss=zeros(1,eye_num*N); ttt=0:dt:eye_num*N*dt-dt; for k=3:50
ss=st(k*N+1:(k+eye_num)*N); drawnow; plot(ttt,ss); hold on; end;
% --- Executes on button press in pushbutton_close_lb.
function pushbutton_close_lb_Callback(hObject, eventdata, handles) set(handles.panel3,'Visible','off');
% --- Executes on selection change in listbox_lb.
function listbox_lb_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function edit_a_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties. function edit_a_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes during object creation, after setting all properties.
28
function edit_noise_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in pushbutton_plot_slb.
function pushbutton_plot_slb_Callback(hObject, eventdata, handles) global st;
a=str2num(get(handles.edit_slb,'string')); num_slb=get(handles.listbox_slb,'value'); Ts=1; N=15;
eye_num=6; N_data=1000; dt=Ts/N;
t=-3*Ts:dt:3*Ts;
ht_rcos=sinc(t/Ts).*(cos(a*pi*t/Ts))./(1-4*a^2*t.^2/Ts^2+eps); % ht_rcos=rcosine(1,15,a);
ht_rcos_sqrt=rcosine(1,15,'sqrt',a); switch(num_slb) case 1
ht=rcosine(1,15,'normal',0); case 2
ht=ht_rcos; case 3
ht=ht_rcos_sqrt; otherwise end;
sts=conv(st,ht);
tt=-6*Ts:dt:(N_data+6)*N*dt-dt; assignin('base','s_st',sts); global s_st1; s_st1=sts;
assignin('base','s_tt',tt);
axes(handles.axes_slb1) plot(tt,sts); axis([0,40,min(sts)-0.1,max(sts)+0.1]); axes(handles.axes_slb2) cla reset ss=zeros(1,eye_num*N); ttt=0:dt:eye_num*N*dt-dt; for k=3:50
ss=sts(k*N+1:(k+eye_num)*N); drawnow; plot(ttt,ss); hold on; end;
29