Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 求解一对实(和交织)方程_Matlab_Difference Equations - Fatal编程技术网

Matlab 求解一对实(和交织)方程

Matlab 求解一对实(和交织)方程,matlab,difference-equations,Matlab,Difference Equations,我有一个一阶差分方程:y[n]=z0*[n-1]+x[n](2-3)。通常我们要做的是应用z变换,然后使用“过滤器”函数。但我的老师想用不同的方式: 在一阶差分方程(2-3)中,让yR[n]和yI[n] 表示y[n]的实部和虚部。写一双 表示yR[n]和yI[n]的实值差分方程 关于yR[n-1],yI[n-1],x[n]和r,cos m和sin m (我忘了提到,x[n]=G*dirac[n],其中G是一个复常数,这就是r,cos m和sin m的来源) 以下是我的结果(这是我能想到的最好的结

我有一个一阶差分方程:
y[n]=z0*[n-1]+x[n](2-3)
。通常我们要做的是应用z变换,然后使用“过滤器”函数。但我的老师想用不同的方式:

在一阶差分方程(2-3)中,让yR[n]和yI[n] 表示y[n]的实部和虚部。写一双 表示yR[n]和yI[n]的实值差分方程 关于yR[n-1],yI[n-1],x[n]和r,cos m和sin m

(我忘了提到,x[n]=G*dirac[n],其中G是一个复常数,这就是r,cos m和sin m的来源)

以下是我的结果(这是我能想到的最好的结果):

那么下一个问题是:

编写一个MATLAB程序来实现这对实方程,并 使用该程序生成等式(2-3)的脉冲响应 对于r=1/2,m=0,m=pi/4。对于这两种情况,绘制真实部分 所获得的脉冲响应。与真实的部分进行比较 复杂递归的输出(2-3)


我不明白的是,除了应用z变换,然后使用“过滤器”功能,我还能如何做到这一点。我在网上查了一下,发现有一些关于状态空间形式的东西,但我不知道它是否相关。我也不想把解决方案放在一个银盘上交给我,我只是想知道如何解决它。多谢各位

你走在正确的轨道上。对于一个数字系统,如您所拥有的,您只需设置初始输入,然后运行程序。没有必要做任何花哨的事,你对这个问题想得太多了。换句话说,对于一个简单的函数,您可以这样做:

f(0)=1;
f(n)=a*f(n-1);
基本上,你可以循环一些范围(可能是20个点),其中f(n)查看前面的函数

对于您的函数,我怀疑您只是简单地将实部(
yR[0]
)设置为1,
yI[0]=0
,然后运行一段时间

我知道Matlab是基于1的,所以您可能希望实际将第一个值设置为1,但同样的原则也适用

f(0)=1;
f(n)=a*f(n-1);