sig_operate.m

来自「很多matlab的源代码」· M 代码 · 共 65 行

M
65
字号
figure('position',[10 10 800 500],'name','序列运算');
axes('position',[0.1 0.4 0.8 0.55]);
n=-2:10;
x=[1:7,6:-1:1];
[x11,n11]=sigshift(x,n,5);
[x12,n12]=sigshift(x,n,-4);
[x1,n1]=sigadd(x11,n11,x12,n12);
subplot(4,2,1);
h=stem(n11,x11);
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
xlabel('n11');ylabel('x11');
title('信号相加');
axis([-6 16 0 10]);
subplot(4,2,3);
h=stem(n12,x12);
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
xlabel('n12');ylabel('x12');
axis([-6 16 0 10]);
subplot(4,2,5);
h=stem(n1,x1);
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
axis([-6 16 0 10]);
xlabel('n'):ylabel('x1(n)')
Hc_close=uicontrol(gcf,'style','push',...%
'position',[650 40 100 25],...        % 
'string','Close',...                 %
'Callback','Close');                 %以上四行代码是产生close按键   
ss={'信号相加'
    '信号相乘'
    '移位'
    '反转'
    '样本累加'
    '样本相乘'
    '信号能量'
    '幅度相位、实部和虚部的表示'
    '奇偶合成'
    '卷积'
    '相关'};
k1=uicontrol('style','popupmenu','string',ss,...
'position',[550 140 200 20]);
o1={'信号相加'
    'function[y,n] = sigadd (x1,n1,x2,n2)'
    '%implements y(n) = x1(n)+x2(n)'
    '%------------------------------------------------------------'
    '%[y,n] = sigadd(x1,n1,x2,n2)'
    '%y = sum sequence over n , which include n1 and n2'
    '% x1 = first sequence over n1'
    '%x2 = second sequence over n2'
    '%n2 can be different from n1'
    '%'
    'n=min(min(n1),min(n2)):max(max(n1),max(n2))'
    'y1=zeros(1,length(n));y2=y1'
    'y1(find((n>=min(n1))&(n<=max(n1))==1))=x1'
    'y2(find((n>=min(n2))&(n<=max(n2))==1))=x2'
    'y=y1+y2'
    '例:'
    'n=-2:10 ; x=[1:7,6:-1:1]  '};
k2=uicontrol('style','listbox','FontWeight','demi','position',[10 20 500 100],...
'string',o1,...
'max',2);
k3=uicontrol('style','text','position',[10 120 40 14],'FontWeight','demi','string','说明')
set(k1,'Callback','sig_operate_sub');

⌨️ 快捷键说明

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