首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MIMO系统中如何使用跳频信号

MIMO系统中如何使用跳频信号
EN

Stack Overflow用户
提问于 2018-06-01 13:04:40
回答 1查看 1.2K关注 0票数 1

我正在寻找一种方法来模拟各种输入信号的信号输出。更准确地说,我有一个由它的传递函数H定义的系统,它接受一个输入和一个输出。我生成了几个信号(存储在一个numpy数组中)。我想做的是,得到系统的响应,在没有使用for循环的情况下对每个输入信号的响应。有办法继续吗?下面是我迄今编写的代码。

代码语言:javascript
复制
from __future__ import division
import numpy as np
from scipy import signal

nbr_inputs = 5
t_in = np.arange(0,10,0.2)
dim = (nbr_inputs, len(t_in))

x = np.cumsum(np.random.normal(0,2e-3, dim), axis=1)
H = signal.TransferFunction([1, 3, 3], [1, 2, 1])
t_out, y, _ = signal.lsim(H, x[0], t_in) # here, I would just like to simply write x

谢谢你的帮忙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-01 13:49:20

这不是一个MIMO系统,它是一个SISO系统,但您有多个输入。

您可以创建一个MIMO系统,并一次性应用您的输入,这将是一个信道计算,但同时。此外,您还不能将scipy.signal.lsim用于多输入多输出系统。您可以使用其他选项,如python-control (如果您有slycot扩展,否则也不能使用slycot)或harold (如果您有Python3.6或更高版本)(免责声明:我是作者)。

代码语言:javascript
复制
import numpy as np
from harold import *
import matplotlib.pyplot
nbr_inputs = 5
t_in = np.arange(0,10,0.2)
dim = (nbr_inputs, len(t_in))

x = np.cumsum(np.random.normal(0,2e-3, dim), axis=1)

# Forming a 1x5 system, common denominator will be completed automatically
H = Transfer([[[1, 3, 3]]*nbr_inputs], [1, 2, 1])

关键字per_channel=True将第一输入应用于第一通道,第二输入应用于第二输入,等等。否则,返回组合响应。你可以用它来检查形状,看看我的意思。

代码语言:javascript
复制
# Notice it is x.T below -> input shape = <num samples>, <num inputs>
y, t = simulate_linear_system(H, x.T, t_in, per_channel=True)

plt.plot(t, y)

这给了我们

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

https://stackoverflow.com/questions/50644098

复制
相关文章

相似问题

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