首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >信号分类-使用人工智能识别信号

信号分类-使用人工智能识别信号
EN

Stack Overflow用户
提问于 2012-12-29 21:35:39
回答 3查看 375关注 0票数 1

我在识别信号时遇到了问题。假设信号是一个准周期信号,周期时间是有限的。信号的“形状”必须符合一定的准则,所以实际的算法采用了信号处理技术,如滤波、推导信号、寻找最大值和最小值等。它在发现好的信号方面有很好的比率,但问题是它也能检测到错误的形状。

所以我想使用人工智能--主要是神经网络--来解决这个问题。我认为一个具有一些平均输入(信号可以减少)和一个输出的多层网络应该显示从0到1的“匹配”。然而,问题是我从来没有做过这样的事情,所以我请求帮助,如何实现这样的事情?如何教神经网络获得预期的结果?(假设我有输入向量,输出应该是1)

或者整个想法都是对这个问题的错误近似?我对任何学习算法或想法都持开放态度,可以学习和使用它们来克服这个问题。

因此,这是一个关于测量信号的图(值和时间现在不是问题),你可以看到很多“错误”的信号,如上所述,大多数检测到的信号都是好的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-03 11:05:22

你的问题可以用宽泛的方式回答。您应该考虑对其进行编辑,以防止其关闭。

但不管怎样,Matlab有很多内置的函数和工具箱来支持人工智能,有很多可用的示例代码,你可以修改和参考。你可以在 Matlab FileExchange.中找到一些

我知道阅读大量人工智能的技术论文是一项艰巨的任务,所以祝你好运!

票数 1
EN

Stack Overflow用户

发布于 2012-12-30 05:32:50

您可以尝试使用Neuroph构建神经网络。你可以从"http://neuroph.sourceforge.net/TimeSeriesPredictionTutorial.html"中获得灵感。另一方面,可以使用傅立叶变换来近似信号。

票数 1
EN

Stack Overflow用户

发布于 2020-02-27 08:57:43

你可以尝试一维卷积。所以基本的想法是你在每个时间戳给每个信号值一个标签0:坏,1:好。在此之后,您可以建模

代码语言:javascript
复制
model = Sequential()
model.add(Conv1D(filters=64, kernel_size=3, activation='relu', padding = 'same', input_shape=(1,1)))
model.add(Bidirectional(LSTM(20, return_sequences=True)))
model.add(Conv1D(filters=64, kernel_size=3, activation='relu', padding = 'same'))
model.add(Dropout(0.5))
model.add(Flatten())
model.add(Dense(100, activation='sigmoid'))
model.add(Dense(2, activation='softmax'))

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

训练模型,然后给它一个新的信号来预测。它将预测给定序列的0和1值。如果0的计数大于1的计数,则信号不好。

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

https://stackoverflow.com/questions/14082188

复制
相关文章

相似问题

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