Matlab判断系统时不变性

2 篇文章 0 订阅
2 篇文章 0 订阅

前言:

请记住,若系统时不变(Time invariant),则“延迟后的变换=变换后的延迟”

解释:①输入信号x[n]延迟或提前后输入系统得到输出y1[n]

           ②输入信号x[n]得到输出y[n]后将y[n]延迟或提前与①相同单位,得到y2[n]

           ③若y1[n] = y2[n]则判时不变,反之则时变

以下用T{x[n]} = x[n]*u[n]演示


源码:

 %Time invariant
 %延迟后的变换=变换后的延迟
 %T{x[n]} = x[n]*u[n]
 clc
 clear
 
 n = 1:100;
 x1 = rand(1,length(n));
 [u0,n0] = stepseq(0,1,100);%定义阶跃信号

 [xin,nin] = sigshift(x1,n,1);% xin =  x[n-1]  
 [b,nb] = sigmult(xin,n,u0,n0);%延迟后的变换()
 
 [mx1,nx1] = sigmult(x1,n,u0,n0);%T{x[n]}
 [you,mn] = sigshift(mx1,nx1,1);%变换后的延迟

if(b - you)<1e-6
    disp('Time invariant');
else
    disp('Time variant');
end

figure;
subplot(2,1,1)
title('变换后的延迟')
stem(mn,you);


stem(nb,b,'r');
subplot(2,1,2)
title('延迟后的变换')

%stepseq.m
function [x,n] = stepseq(n0,n1,n2)
% Generates x(n) = u(n-n0); n1 <= n <= n2
% ------------------------------------------
% [x,n] = stepseq(n0,n1,n2)
%
close all
n = [n1:n2]; x = [(n-n0) >= 0];%n小于n0逻辑假=0;反之为1;
figure;
stem(n,x);
%sigshift.m
function [y,n] = sigshift(x,m,k)
% implements y(n) = x(n-k)
% -------------------------
% [y,n] = sigshift(x,m,k)
%
n = m+k;%[y,n] = sigshift(x,n,k), n = n+k 自变量n向右移动k个单位
y = x;

%n = -2 :10;
%x = [1 2 3 4 5 6 7 6 5 4 3 2 1];%长13
%figure;
%stem(n,y);

%sigmult
function [y,n] = sigmult(x1,n1,x2,n2)
% implements y(n) = x1(n)*x2(n)
% -----------------------------
% [y,n] = sigmult(x1,n1,x2,n2)
% y = product sequence over n, which includes 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)); % duration of y(n)
y1 = zeros(1,length(n)); y2 = y1; %
y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; % x1 with duration of y
y2(find((n>=min(n2))&(n<=max(n2))==1))=x2; % x2 with duration of y
y = y1 .* y2; % sequence multiplication


输出:

结果证明该系统时不变

 


 结语:

延迟后的变换无法绘制,数组没有错误,如果知道原因的请务必告诉我!

作者学生初接触Matlab与DSP,才疏学浅,不足之处请多指点。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值