📄 shiyan1.m
字号:
function varargout = shiyan1(varargin)if nargin == 0 % LAUNCH GUI fig = openfig(mfilename,'reuse'); handles = guihandles(fig); guidata(fig, handles); global Xb;%定义全变量,因为下面有两处要用到。 Xb=exp1_impseq(0,0,1); %单位脉冲% Ha=exp1_stepseq(1,1,10); %矩阵序列,N=10% Hb=exp1_impseq(0,0,3)+2.5*exp1_impseq(1,0,3)+2.5*exp1_impseq(2,0,3)+exp1_impseq(3,0,3); %序列bn(n)的产生 if nargout > 0 varargout{1} = fig; endelseif 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); endend% --------------------------------------------------------------------function varargout = pushbutton1_Callback(h, eventdata, handles, varargin)A=get(handles.T_edit1,'string'); A=str2num(A);a=get(handles.T_edit2,'string'); a=str2num(a); %读各编辑框的输入w=get(handles.T_edit3,'string'); w=str2num(w);fs=get(handles.T_edit4,'string'); fs=str2num(fs);Xa=exp1_FF(A,a,w,fs); %产生Xa(n)信号[c,l]=e_DFT(Xa,50); %对Xa进行DFT变换 axes(handles.T_axes1);n=0:49;stem(n,Xa,'.'); %以n为横坐标,x为纵坐标画离散图xlabel('n');ylabel('xa(n)');title('原始信号');str=['fs=',num2str(fs)];text(20,(0.8*max(Xa)),str);%加注释%画频谱图maXc=abs(c);axes(handles.T_axes2);plot(l/pi,maXc);% axis([0,500,0,1]);xlabel('w/pi');ylabel('|Y(jw)|');title('频谱');% --------------------------------------------------------------------function varargout = popupmenu3_Callback(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = pushbutton2_Callback(h, eventdata, handles, varargin)l=get(handles.T_popupmenu3,'value');if l==1global Xb;axes(handles.T_axes1);n=0:1;stem(n,Xb,'.');xlabel('n');ylabel('Xb');title('Xb信号离散图');[c,l]=e_DFT(Xb,2);axes(handles.T_axes2);plot(l/pi,abs(c));xlabel('w/pi');ylabel('|Y(jw)|');title('Xb的频谱');Hb=exp1_impseq(0,0,3)+2.5*exp1_impseq(1,0,3)+2.5*exp1_impseq(2,0,3)+exp1_impseq(3,0,3);%序列bn(n)的产生[c,l]=e_DFT(Hb,4);axes(handles.T_axes3);% subplot(2,3,2);n=0:3;stem(n,Hb,'.');xlabel('n');ylabel('Hb');title('Hb信号离散图');axes(handles.T_axes4);% subplot(2,3,5);plot(l/pi,abs(c));xlabel('w/pi');ylabel('|Y(jw)|');title('Hb的频谱');axes(handles.T_axes5);m=conv(Xb,Hb);n=0:4;stem(n,m,'.');xlabel('n');ylabel('Xb*Hb');title('两信号卷积后信号离散图');axes(handles.T_axes6);[c,l]=e_DFT(m,5);plot(l/pi,abs(c));xlabel('w/pi');ylabel('|Y(jw)|');title('Xb*Hb后的频谱');endif l==2 Ha=exp1_stepseq(1,1,10);axes(handles.T_axes1);n=1:10;stem(n,Ha,'.');xlabel('n');ylabel('Ha');title('Ha信号离散图');[c,l]=e_DFT(Ha,10);axes(handles.T_axes2);plot(l/pi,abs(c));xlabel('w/pi');ylabel('|Y(jw)|');title('Ha的频谱');axes(handles.T_axes3);n=1:10;stem(n,Ha,'.');xlabel('n');ylabel('Ha');title('Ha信号离散图');axes(handles.T_axes4);[c,l]=e_DFT(Ha,10);plot(l/pi,abs(c));xlabel('w/pi');ylabel('|Y(jw)|');title('Ha的频谱');axes(handles.T_axes5);m=conv(Ha,Ha);n=0:18;stem(n,m,'.');xlabel('n');ylabel('Ha*Ha');title('Ha自卷后信号离散图');axes(handles.T_axes6);[c,l]=e_DFT(m,19);plot(l/pi,abs(c));xlabel('w/pi');ylabel('|Y(jw)|');title('Ha*Ha后的频谱'); endif l==3Ha=exp1_stepseq(1,1,10);axes(handles.T_axes1);n=1:10;stem(n,Ha,'.');xlabel('n');ylabel('Ha');title('Ha信号离散图');[c,l]=e_DFT(Ha,10);axes(handles.T_axes2);plot(l/pi,abs(c));xlabel('w/pi');ylabel('|Y(jw)|');title('Ha的频谱');% Hb=exp1_impseq(0,0,3)+2.5*exp1_impseq(1,0,3)+2.5*exp1_impseq(2,0,3)+exp1_impseq(3,0,3);%序列bn(n)的产生% [c,l]=e_DFT(Hb,4);Xc=exp1_stepseq(1,1,5);axes(handles.T_axes3);n=1:5;stem(n,Xc,'.');xlabel('n');ylabel('Xc');title('Xc信号离散图');axes(handles.T_axes4);[c,l]=e_DFT(Xc,5);plot(l/pi,abs(c));xlabel('w/pi');ylabel('|Y(jw)|');title('Xc的频谱');axes(handles.T_axes5);m=conv(Xc,Ha);n=0:13;stem(n,m,'.');xlabel('n');ylabel('Xc*Ha');title('卷积后信号离散图');axes(handles.T_axes6);[c,l]=e_DFT(m,14);plot(l/pi,abs(c));xlabel('w/pi');ylabel('|Y(jw)|');title('Xc*Ha后的频谱');end% --------------------------------------------------------------------function varargout = pushbutton4_Callback(h, eventdata, handles, varargin)A=1;a=0.5;w=2.0734;fs=1;%产生Xa1信号Xa1=exp1_FF(A,a,w,fs);[Xs,w]=e_DFT(Xa1,50);%对Xa1信号进行DFT变换axes(handles.T_axes1);n=0:49;stem(n,Xa1,'.');%画出Xa1信号的离散图xlabel('n');ylabel('Xa1');title('Xa1信号离散图');axes(handles.T_axes2);%画出Xa1信号的频谱图plot(w/pi,abs(Xs));xlabel('w/pi');ylabel('|Y(jw)|');title('Xa1信号频谱图'); Hb=exp1_impseq(0,0,3)+2.5*exp1_impseq(1,0,3)+2.5*exp1_impseq(2,0,3)+exp1_impseq(3,0,3);%产生Hb信号[Xs1,w]=e_DFT(Hb,4);axes(handles.T_axes3);n=0:3;stem(n,Hb,'.');xlabel('n');ylabel('Hb');title('Hb信号离散图');axes(handles.T_axes4);plot(w/pi,abs(Xs1));xlabel('w/pi');ylabel('|Y(jw)|');title('Hb信号频谱');Hc=conv(Xa1,Hb);%对两信号进行卷积[Xs2,w]=e_DFT(Hc,53);%对卷积结果进行DFT变换axes(handles.T_axes5);plot(w/pi,abs(Xs2));xlabel('w/pi');ylabel('|Y(jw)|');title('Xa1*Hb后的频谱');Xs3=Xs.*Xs1;%对两信号的DFT进行点乘axes(handles.T_axes6);plot(w/pi,abs(Xs3));xlabel('w/pi');ylabel('|Y(jw)|');title('FT(Xa1).FT(Hb)');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -