⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sig_operate_sub.m

📁 很多matlab的源代码
💻 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 + -