📄 yingshe.m
字号:
% 《数字信号处理教程——MATLAB释义与实现》第八章s平面和z平面映射演示程序% 电子工业出版社出版 陈怀琛编著 2004年9月%function varargout = yingshe(varargin)% YINGSHE Application M-file for yingshe.fig% FIG = YINGSHE launch yingshe GUI.% YINGSHE('callback_name', ...) invoke the named callback.% Last Modified by GUIDE v2.0 11-Dec-2003 16:43:34if nargin == 0 % LAUNCH GUI fig = openfig(mfilename,'reuse'); % Use system color scheme for figure: set(fig,'Color',get(0,'defaultUicontrolBackgroundColor')); % Generate a structure of handles to pass to callbacks, and store it. handles = guihandles(fig); guidata(fig, handles); if nargout > 0 varargout{1} = fig; end elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION OR CALLBACK try if (nargout) [varargout{1:nargout}] = feval(varargin{:}); % FEVAL switchyard else feval(varargin{:}); % FEVAL switchyard end catch disp(lasterr); end end%| ABOUT CALLBACKS:%| GUIDE automatically appends subfunction prototypes to this file, and %| sets objects' callback properties to call them through the FEVAL %| switchyard above. This comment describes that mechanism.%|%| Each callback subfunction declaration has the following form:%| <SUBFUNCTION_NAME>(H, EVENTDATA, HANDLES, VARARGIN)%|%| The subfunction name is composed using the object's Tag and the %| callback type separated by '_', e.g. 'slider2_Callback',%| 'figure1_CloseRequestFcn', 'axis1_ButtondownFcn'.%|%| H is the callback object's handle (obtained using GCBO).%|%| EVENTDATA is empty, but reserved for future use.%|%| HANDLES is a structure containing handles of components in GUI using%| tags as fieldnames, e.g. handles.figure1, handles.slider2. This%| structure is created at GUI startup using GUIHANDLES and stored in%| the figure's application data using GUIDATA. A copy of the structure%| is passed to each callback. You can store additional information in%| this structure at GUI startup, and you can change the structure%| during callbacks. Call guidata(h, handles) after changing your%| copy to replace the stored original so that subsequent callbacks see%| the updates. Type "help guihandles" and "help guidata" for more%| information.%|%| VARARGIN contains any extra arguments you have passed to the%| callback. Specify the extra arguments by editing the callback%| property in the inspector. By default, GUIDE sets the property to:%| <MFILENAME>('<SUBFUNCTION_NAME>', gcbo, [], guidata(gcbo))%| Add any extra arguments after the last argument, before the final%| closing parenthesis.global i;% --------------------------------------------------------------------function varargout = slider2_Callback(h, eventdata, handles, varargin)a=get(handles.slider3,'value');b=pi*get(handles.slider2,'value');t=0:0.01:2*pi;x=cos(t);y=sin(t);axes(handles.axes1);plot(x,y),axis('equal'),hold on;axis([-2, 2,-2, 2]);T=2;if (a==0) r=1;else r=exp(a*T); endif(b==0) angle=0;else angle=b*T;ende=r*cos(angle);f=r*sin(angle);axes(handles.axes1);line([0,0],[-6,6]),line([-6,6],[0,0])axis('equal'),hold onplot(e,f,'.','color','r');axis([-2,2,-2,2])axes(handles.axes6);line([0,0],[-6,6]),line([-6,6],[0,0]);axis('equal');hold ons=a+j*b;plot(a,b,'.','color','r');axis([-6,6,-6,6]);i=3;save('i.txt', 'i', '-ascii');% --------------------------------------------------------------------function varargout = slider3_Callback(h, eventdata, handles, varargin)a=get(handles.slider3,'value');b=pi*get(handles.slider2,'value');%b为虚部,a为实部%以下是s平面和z平面的关系t=0:0.01:2*pi;x=cos(t);y=sin(t);axes(handles.axes1);line([0,0],[-6,6]),line([-6,6],[0,0]),hold onplot(x,y),axis('equal'),hold on;axis([-2, 2,-2, 2]);T=2;if (a==0) r=1;else r=exp(a*T); endif(b==0) angle=0;else angle=b*T;ende=r*cos(angle);f=r*sin(angle);plot(e,f,'.','color','g');hold on;axes(handles.axes6);line([0,0],[-6,6]),line([-6,6],[0,0]);axis('equal'),hold ons=a+j*b;plot(a,b,'.','color','g');axis([-6,6,-6,6]);i=1;save('i.txt', 'i', '-ascii');% --------------------------------------------------------------------function varargout = text1_ButtonDownFcn(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = axes1_CreateFcn(h, eventdata, handles, varargin)%z=r*exp(j*w);%plot(z);% --------------------------------------------------------------------function varargout = axes2_CreateFcn(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = slider4_Callback(h, eventdata, handles, varargin)T=2;r1=get(handles.slider4,'value');w=pi*get(handles.slider6,'value');t=0:0.01:2*pi;x=cos(t);y=sin(t);axes(handles.axes1);line([0,0],[-6,6]),line([-6,6],[0,0]);hold onplot(x,y),axis('equal'),hold on;axis([-2, 2,-2, 2]);e=r1*cos(w);f=r1*sin(w);plot(e,f,'.','color','b');if (r1==1) a1=0;elseif(r1==0) a1=0;else a1=logm(abs(r1))/T;endb1=w/T;axes(handles.axes6);line([0,0],[-6,6]),line([-6,6],[0,0]);axis('equal'),hold onaxis([-2,2,-2,2])s=a1+j*b1;plot(a1,b1,'.','color','b');axis([-6,6,-6,6]) i=0;save('i.txt', 'i', '-ascii');%j = load('iiii.txt')% --------------------------------------------------------------------% --------------------------------------------------------------------function varargout = slider6_Callback(h, eventdata, handles, varargin)T=2;r1=get(handles.slider4,'value');w=pi*get(handles.slider6,'value');t=0:0.01:2*pi;x=cos(t);y=sin(t);axes(handles.axes1);plot(x,y),axis('equal'),hold on;line([0,0],[-6,6]),line([-6,6],[0,0]);hold onaxis([-2, 2,-2, 2]);e=r1*cos(w);f=r1*sin(w);plot(e,f,'.','color','k');if (r1==1) a1=0; elseif(r1==0) a1=0;else a1=logm(abs(r1))/T;endb1=w/T;axes(handles.axes6);line([0,0],[-6,6]),line([-6,6],[0,0]);axis('equal'),hold onaxis([-2, 2,-2, 2]);s=a1+j*b1;plot(a1,b1,'.','color','k');axis([-6,6,-6,6]);i=2;save('i.txt', 'i', '-ascii');% --------------------------------------------------------------------%function varargout = slider9_Callback(h, eventdata, handles, varargin)% --------------------------------------------------------------------%function varargout = slider10_Callback(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = pushbutton1_Callback(h, eventdata, handles, varargin)axes(handles.axes1);cla ;t=0:0.01:2*pi;x=cos(t);y=sin(t);plot(x,y),axis('equal'),hold on;line([0,0],[-6,6]),line([-6,6],[0,0]);hold onaxis([-2, 2,-2, 2]);axes(handles.axes6);cla ;line([0,0],[-6,6]),line([-6,6],[0,0]);axis('equal'),hold onaxis([-2, 2,-2, 2]);% --------------------------------------------------------------------function varargout = pushbutton2_Callback(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = pushbutton4_Callback(h, eventdata, handles, varargin)j = load('i.txt');if(j==0) T=2; r1=get(handles.slider4,'value'); if (r1==1) a1=0; elseif(r1==0) a1=0; else a1=logm(abs(r1))/T; end for w=-pi:0.2:pi e=r1*cos(w); f=r1*sin(w); axes(handles.axes1) plot(e,f,'.','color','b'); b1=w/T; axes(handles.axes6); axis([-2, 2,-2, 2]); s=a1+j*b1; plot(a1,b1,'.','color','b'); axis([-2,2,-2,2]); drawnow; pause(0.3); endendif (j==1) a=get(handles.slider3,'value'); T=2; if (a==0) r=1; else r=exp(a*T); end for b=-pi/T:0.2:pi/T if(b==0) angle=0; else angle=b*T; end axes(handles.axes1); e=r*cos(angle); f=r*sin(angle); plot(e,f,'.','color','g');hold on; axes(handles.axes6); s=a+j*b; plot(a,b,'.','color','g'); axis([-2,2,-2,2]); drawnow; pause(0.3); endendif (j==2) T=2; w2=pi*get(handles.slider6,'value'); for r2=-1:0.15:1 e=r2*cos(w2); f=r2*sin(w2); axes(handles.axes1) plot(e,f,'.','color','k'); if (r2==1) a2=0; elseif(r2==0) a2=0; else a2=logm(abs(r2))/T; end b2=w2/T; axes(handles.axes6); s=a2+j*b2; plot(a2,b2,'.','color','k'); axis([-2,2,-2,2]); drawnow; pause(0.3); endendif(j==3) T=2; b4=pi*get(handles.slider2,'value'); angle4=b4*T; for r4=-1:0.15:1 e4=r4*cos(angle4); f4=r4*sin(angle4); axes(handles.axes1); plot(e4,f4,'.','color','r'); axis([-2,2,-2,2]) if (r4==1) a4=0; elseif(r4==0) a4=0; else a4=logm(abs(r4))/T; end axes(handles.axes6); s=a4+j*b4; plot(a4,b4,'.','color','r'); axis([-2,2,-2,2]); drawnow; pause(0.3); endend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -