📄 sig_operate_sub.m
字号:
switch get (k1 ,'Value')
case 1
subplot(1,1,1);
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',5);
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)')
q1={'信号相加'
'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] '} ;
set(k2,'string', q1);
case 2
subplot(1,1,1);
n=-2:10;
x=[1:7,6:-1:1];
[x1,n1]=sigshift(x,n,1);
[x2,n2]=sigmult(x,n,x1,n1);
subplot(4,2,1);
h=stem(n,x);
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
xlabel('n');ylabel('x');
title('信号相乘');
axis([0 12 0 10]);
subplot(4,2,3);
h=stem(n1,x1);
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
xlabel('n1');ylabel('x1')
axis([0 12 0 10]);
subplot(4,2,5);
h=stem(n2,x2);
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
xlabel('n');ylabel('x2(n)')
q2={'信号相乘'
'function[y,n] = sigmult(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] ' };
set(k2,'string',q2 );
case 3
subplot(1,1,1);
n=-5:5;
x=[1 2 2 1 2 9 0 7 5 5 9 ];
[x1,n1]=sigshift(x,n,5);
subplot(3,1,1);
h=stem(n,x);
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
xlabel('n');ylabel('x');
axis([-5 10 0 10]);
subplot(3,1,2);
h=stem(n1,x1);
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
axis([-5 10 0 10]);
xlabel('n'):ylabel('x1(n)')
q3={'移位'
'function [y,n] = sigshift(x,m,n0)'
'% implements y(n) = x(n-n0)'
'%---------------------------------------------'
'%[y,n] = sigshift(x,m,n0)'
'%'
'n = m+n0 ; '
'y =x;'
'x=-2:10 ;'
' x = [1:7,6:-1:1]'};
set(k2,'string',q3)
case 4
subplot(1,1,1);
n=-5:5;
x=[1 2 2 1 2 9 8 7 5 5 9 ];
[x1,n1]=sigfold(x,n);
subplot(3,1,1);
h=stem(n,x);
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
xlabel('n');ylabel('x');
subplot(3,1,2);
h=stem(n1,x1);
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
xlabel('n');ylabel('x1(n)')
q4={'反转'
'function[y,n] = sigfold(x,n)'
'%implements y(n) = x(n)'
'%----------------------------------------------'
'[y,n] = sigfold(x,n)'
'%'
'y = fliplr(x) ;'
'n = -fliplr(n);'
'例:'
'x=-2:10 ;'
' x = [1:7,6:-1:1] '};
set(k2,'string',q4)
case 5
axes('position',[0.05 0.35 0.9 0.62]);
set(k2,'string','样本累加||∑x(n) = x(n1) + ... + x(n2)||sum( x ( n1 : n2)) ')
case 6
axes('position',[0.05 0.35 0.9 0.62]);
set(k2,'string','样本乘积||∏x(n) = x(n1) × .... × x(n2)||prod(n1:n2)')
case 7
axes('position',[0.05 0.35 0.9 0.62]);
q5={'信号能量'
'εx = ∑┃x(n)┃^2'
'Ex = sum(x.*conj(x)); % one approach'
'Ex = sum(abs(x).^2); % another approad'};
set(k2,'string',q5)
case 8
subplot(1,1,1);
n= [-10:1:10];
alpha= -0.1 + 0.3j;
x= exp (alpha*n);
subplot(3,2,1);
h=stem(n,real(x));
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
title('real part');xlabel('n');ylabel('real(x)');
subplot(3,2,2);
h=stem(n,imag(x));
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
title('imaginary part');xlabel('n');ylabel('imag(x)');
subplot(3,2,3);
h=stem(n,abs(x)) ;
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
title('magnitude part');xlabel('n');ylabel('abs(x)');
subplot(3,2,4);
h=stem(n,(180/pi)*angle(x));
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
title('phase part');xlabel('n');ylabel('angle(x)')
q6='幅度相位、实部和虚部的表示||n= [-10:1:10];||alpha= -0.1 + 0.3j;||x= exp (alpha*n);';
set(k2,'string',q6)
case 9
subplot(1,1,1);
n = [0:10 ];
x = stepseq(0,0,10)-stepseq(10,0,10);
[xe,xo,m] = evenodd(x,n);
subplot(3,2,1);
h=stem(n,x);
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
title('Rectangular pulse');
axis([-10,10,0,1.2])
xlabel('n');ylabel('x(n)')
subplot(3,2,2);
h=stem(m,xe);
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
title('Even Part');
axis([-10,10,0,1.2])
xlabel('n');ylabel('xe(n)')
subplot(3,2,4);
h=stem(m,xo);
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
title('Odd Part');
axis([-10,10,-0.6,0.6]);
xlabel('n');ylabel('xo(n)')
q7='奇偶合成||n = [0:10 ];||x = stepseq(0,0,10)-stepseq(10,0,10);||[xe,xo,m] = evenodd(x,n);';
set(k2,'string',q7)
case 10
subplot(1,1,1);
nx=0:6;
x=ones(1,length(nx));
nh=0:20;
h=0.9.^nh;
[ y, ny]=conv_m(x,nx,h,nh);
subplot(4,1,1);
d=stem(nx,x);
set(d,'LineWidth',2);
set(d,'MarkerSize',2);
axis([0 30 0 1]);
subplot(4,1,2);
d=stem(nh,h);
set(d,'LineWidth',2);
set(d,'MarkerSize',2);
axis([0 30 0 1]);
subplot(4,1,3);
d=stem(ny,y);
set(d,'LineWidth',2);
set(d,'MarkerSize',2);
axis([0 30 0 6]);
xlabel('y');ylabel('ny')
q8={'卷积'
'x = [3, 11, 7, 0, -1, 4, 2 ];'
'nx = [-3:3];'
'h = [2 ,3 ,0 ,-5 ,2, 1];'
'nh=[-1:4];'
'[ y, ny]=conv_m(x,nx,h,nh);'};
set(k2,'string',q8)
case 11
subplot(1,1,1);
x=[3, 11, 7, 0, -1, 4, 2];
nx=[-3:3];
subplot(3,2,1);
h=stem(x,nx);
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
xlabel('x');ylabel('nx');
[y,ny]=sigshift(x,nx,2);
nw=ny;
w=randn(1,length(y));
subplot(3,2,3);
h=stem(w,nw);
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
xlabel('w');ylabel('nw');
nw=ny;
subplot(3,2,2);
h=stem(y,ny);
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
xlabel('y');ylabel('ny');
[y,ny]=sigadd(y,ny,w,nw);
[x,nx]=sigfold(x,nx);
[rxy,nrxy]=conv_m(y,ny,x,nx);
subplot(3,2,4);
h=stem(nrxy,rxy);
set(h,'LineWidth',2);
set(h,'MarkerSize',2);
xlabel('nrxy');ylabel('rxy');
q9={'相关'
'x=[3, 11, 7, 0, -1, 4, 2];'
'nx=[-3:3];'
'[y,ny]=sigshift(x,nx,2);'
'w=randn(1,length(y));'
'nw=ny;'
'[y,ny]=sigadd(y,ny,w,nw);'
'[x,nx]=sigfold(x,nx);'
'[rxy,nrxy]=conv_m(y,ny,x,nx);'};
set(k2,'string',q9)
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -