检测定点状态空间系统的极限环
这个例子展示了如何分析一个定点整数系统检测极限环。
专注于大规模检测极限环的例子由于零输入和高光溢出的条件足以防止这样的振荡。
引用:
[1]理查德·a·罗伯茨和克利福德t .温床,“数字信号处理”,addison - wesley,阅读,马萨诸塞州,1987年,ISBN 0-201-16350-0, 9.3节。
[2]s . k . Mitra“数字信号处理:一个以计算机为基础的方法”,麦格劳-希尔,纽约,1998年,ISBN 0-07-042953-7。
选择一个整数阶系统的。
我们观察,通过观察,系统是稳定的状态转换矩阵的特征值大小小于1。
originalFormat = get (0,“格式”);格式A = [0 1;-。5 1];B = [0;1);C = 0 [1];D = 0;eig (A)
答我0.5000 - 0.5000 = 0.5000 + 0.5000
滤波器的实现
类型(fullfile (matlabroot“工具箱”,“定点”,“fidemos”,' + fidemo ',“fisisostatespacefilter.m”))
函数[y, z] = fisisostatespacefilter (A, B, C, D, x, z) % fisisostatespacefilter单,对于statespace过滤器% [y, Zf] = fisisostatespacefilter (A, B, C, D, x, Zi)过滤数据x %的初始条件子矩阵定义的状态滤波器%,B, C, D .输出y和最终条件Zf返回。% 2004 - 2011版权MathWorks公司y = x;z(: 2:长度(x) + 1) = 0;k = 1:长度(x) y (k) = C * z (:, k) + D * x (k);z (:, k + 1) = A * z (:, k) + B * x (k);结束
浮点型过滤器
创建一个浮点过滤和观察美国的轨迹。
首先,我们选择随机单元内的广场和观察后,他们预计一步乘以状态转换矩阵。
rng (“默认”);clf x1 = (1 1 1 1 1);日元= (1 1 1 1 1);情节(x1, y1,“c”轴([-1.5 1.5 -1.5 1.5]);轴广场;网格;持有在%的投影广场的阴谋p = * (x1, y1);情节(p (1:)、p (2:)“r”)r = 2 *兰德(1000)1;公关= * r;情节(公关(1:),公关(2:)“。”)
随机初始状态之后
驱动过滤器与一个随机的初始状态,归一化单元内广场,与输入所有零,并运行过滤器。
注意,一些国家单位外的广场,漫步,他们最终风到零状态在原点,z = (0, 0)。
x = 0 (10, 1);子= (0,0);q =量化器(15)(16);为k = 1:20 y = x;子(:)= randquant (q,大小(A, 1), 1);(y, zf) = fidemo.fisisostatespacefilter (A, B, C, D, x, zi);情节(zf (1:), zf (2:),“去,”,“markersize”8);结束标题(“双精度状态序列图”);包含(“z1”);ylabel (“z2”)
状态轨迹
由于特征值小于1,系统是稳定的,和所有的初始状态和零输入原点了。然而,特征值不要告诉整个故事的轨迹,在这个例子中,国家首先被向外投射,在他们开始之前的合同。
给我们一个更好的奇异值的整体状态轨迹。最大的奇异值约为1.46,这表明国家与对应的奇异向量将预计远离原点。
圣言(A)
ans = 1.4604 - 0.3424
定点过滤器创建
创建一个定点过滤和检查极限环。
过滤器的MATLAB®代码保持不变。它变成了一个定点滤波器因为我们用定点输入驱动它。
为了说明溢出振荡,我们选择产品和数据类型,并将溢出。
rng (“默认”);F = fimath (“OverflowAction”,“包装”,…“ProductMode”,“SpecifyPrecision”,…“ProductWordLength”,16岁,“ProductFractionLength”15岁的…“SumMode”,“SpecifyPrecision”,…“SumWordLength”,16岁,“SumFractionLength”15);一个= fi (,“fimath”,F) B = fi (B,“fimath”,F) C = fi (C,“fimath”,F) D = fi (D,“fimath”F)
= 0 1.0000 -0.5000 1.0000 DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 14 RoundingMethod:最近OverflowAction:包装ProductMode: SpecifyPrecision ProductWordLength: 16 ProductFractionLength: 15 SumMode: SpecifyPrecision SumWordLength: 16 SumFractionLength: 15 CastBeforeSum:真正的B = 0 1 DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 14 RoundingMethod:最近OverflowAction:包装ProductMode: SpecifyPrecision ProductWordLength: 16 ProductFractionLength: 15 SumMode: SpecifyPrecision SumWordLength: 16 SumFractionLength: 15 CastBeforeSum:真正的C = 1 0 DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 14 RoundingMethod:最近OverflowAction:包装ProductMode: SpecifyPrecision ProductWordLength: 16 ProductFractionLength: 15 SumMode: SpecifyPrecision SumWordLength: 16 SumFractionLength: 15 CastBeforeSum:真正的D = 0 DataTypeMode:定点:二进制扩展Signedness:签了字:16 FractionLength: 15 RoundingMethod:最近OverflowAction:包装ProductMode: SpecifyPrecision ProductWordLength: 16 ProductFractionLength: 15 SumMode: SpecifyPrecision SumWordLength: 16 SumFractionLength: 15 CastBeforeSum:真的
情节上的投影定点的广场
再一次,我们选择随机单元内的广场和观察,他们预计后一步的状态转换关系矩阵乘以A所不同的是,这一次矩阵A是定点。
注意,广场的三角形,预计在浮点,现在包裹回到广场的内部。
clf r = 2 *兰德(1000)1;公关= * r;情节([1 1 1 1 1],[1 1 1 1 1],“c”轴([-1.5 1.5 -1.5 1.5]);轴广场;网格;持有在情节(公关(1:),公关(2:)“。”)
执行定点滤波器。
这和前面的代码之间唯一的区别是,我们正在推动定点数据类型。
x = fi(0(10, 1), 1, 16日15日“fimath”F);子= fi(0, 0, 1, 16日15日“fimath”F);q = assignmentquantizer(子);e =双(eps(子));rng (“默认”);为k = 1:20 y = x;子(:)= randquant (q,大小(A, 1), 1);(y, zf) = fidemo.fisisostatespacefilter (A, B, C, D, x, zi);如果abs(双(zf(结束)))> 0.5,c =“ro - - - - - -”;其他的c =“去,”;结束情节(zf (1:), zf (2:), c,“markersize”8);结束标题(“定点状态序列图”);包含(“z1”);ylabel (“z2”)
尝试了其他随机选择初始状态说明,一旦国家进入三角地区之一,然后投射到其他三角地区,来来回回,没有逃。
充分条件防止溢出极限环
有两个充分条件,防止溢流系统极限环:
系统是稳定的。、abs (eig (A) < 1,
矩阵A是正常的。、“* = *一个”。
注意,当前表示,第二个条件不成立。
相似变换应用到创建一个正常
我们现在一个相似变换应用到原始系统,将创建一个正常状态转换关系矩阵A2。
T = [2 0; 1 1];Tinv = (-。5 0;-。5 1];A2 = Tinv * * T;B2 B = Tinv *;C2 = C * T;D2 = D;
相似变换保留特征值,由于系统传递函数的转换体系仍然和以前一样。然而,转换后的状态转换矩阵A2是正常的。
检查了系统极限环。
情节上的投影的平方标准系统
现在随机初始状态的投影单元广场内所有合同一致。这是状态转移矩阵A2的结果是正常的。美国也是逆时针旋转90度。
clf r = 2 *兰德(1000)1;公关= A2 * r;情节([1 1 1 1 1],[1 1 1 1 1],“c”轴([-1.5 1.5 -1.5 1.5]);轴广场;网格;持有在情节(公关(1:),公关(2:)“。”)
情节的状态序列
再次绘制状态序列的初始状态和以前一样我们现在看到输出螺旋向原点。
x = fi(0(10, 1), 1, 16日15日“fimath”F);子= fi(0, 0, 1, 16日15日“fimath”F);q = assignmentquantizer(子);e =双(eps(子));rng (“默认”);为k = 1:20 y = x;子(:)= randquant (q,大小(A, 1), 1);(y, zf) = fidemo.fisisostatespacefilter (A2、B2, C2, D2, x, zi);如果abs(双(zf(结束)))> 0.5,c =“ro - - - - - -”;其他的c =“去,”;结束情节(zf (1:), zf (2:), c,“markersize”8);结束标题(“标准定点状态序列图”);包含(“z1”);ylabel (“z2”)
在这对其他随机选择初始状态说明没有地区过滤器是无法恢复的。
集(0,“格式”,originalFormat);% #好< * NASGU, * NOPTS >