首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >求解一对实(并相互交织)方程

求解一对实(并相互交织)方程
EN

Stack Overflow用户
提问于 2015-12-07 17:33:24
回答 1查看 55关注 0票数 0

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

在一阶差分方程(2-3)中,设yRn和yIn表示yn的实部和虚部.用yRn-1,尹-1,xn,r,cos m和sin m,写出了表示yRn和yIn的一对实值差分方程。

(我忘了提到,xn=G*diracn,其中G是一个复常数,它是r,cos m和sin m的来源)。

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

代码语言:javascript
复制
yR[n]=r(yR[n-1]cosm - yI[n-1]sinm) + xR[n]
yI[n]=r(yI[n-1]cosm + yR[n-1]sinm) + xI[n]

下一个问题是:

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

我不明白的是,除了应用z变换,然后使用"filter“函数之外,我如何才能做到这一点。我在网上查过,有一些关于状态空间形式的东西,但我不知道它是否相关。另外,我不想把解决方案交给我,我只是想知道如何解决它。非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2015-12-15 01:52:53

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

代码语言:javascript
复制
f(0)=1;
f(n)=a*f(n-1);

从本质上讲,对于这个函数,你会循环一些范围(可能是20个点),其中f(n)查看前面的函数。

对于您的函数,我怀疑您只是将真实的部分(yR[0])设置为1,yI[0]=0,并运行一段时间。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34139676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档