我在识别信号时遇到了问题。假设信号是一个准周期信号,周期时间是有限的。信号的“形状”必须符合一定的准则,所以实际的算法采用了信号处理技术,如滤波、推导信号、寻找最大值和最小值等。它在发现好的信号方面有很好的比率,但问题是它也能检测到错误的形状。
所以我想使用人工智能--主要是神经网络--来解决这个问题。我认为一个具有一些平均输入(信号可以减少)和一个输出的多层网络应该显示从0到1的“匹配”。然而,问题是我从来没有做过这样的事情,所以我请求帮助,如何实现这样的事情?如何教神经网络获得预期的结果?(假设我有输入向量,输出应该是1)
或者整个想法都是对这个问题的错误近似?我对任何学习算法或想法都持开放态度,可以学习和使用它们来克服这个问题。
因此,这是一个关于测量信号的图(值和时间现在不是问题),你可以看到很多“错误”的信号,如上所述,大多数检测到的信号都是好的。

发布于 2013-01-03 11:05:22
你的问题可以用宽泛的方式回答。您应该考虑对其进行编辑,以防止其关闭。
但不管怎样,Matlab有很多内置的函数和工具箱来支持人工智能,有很多可用的示例代码,你可以修改和参考。你可以在 Matlab FileExchange.中找到一些
我知道阅读大量人工智能的技术论文是一项艰巨的任务,所以祝你好运!
发布于 2012-12-30 05:32:50
您可以尝试使用Neuroph构建神经网络。你可以从"http://neuroph.sourceforge.net/TimeSeriesPredictionTutorial.html"中获得灵感。另一方面,可以使用傅立叶变换来近似信号。
发布于 2020-02-27 08:57:43
你可以尝试一维卷积。所以基本的想法是你在每个时间戳给每个信号值一个标签0:坏,1:好。在此之后,您可以建模
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的计数,则信号不好。
https://stackoverflow.com/questions/14082188
复制相似问题