algorithm - 如何获得两个信号的定量比较

标签 algorithm matlab matrix signal-processing linear-algebra

我正在尝试实现盲源分离 (BSS) 算法,但在确定该算法的有效性时遇到了麻烦。

我正在尝试创建测试用例,其中我向后工作并从通常未知的信号向量 s 开始,然后创建混合矩阵 A,我用它来转换 s 以创建观察向量 x,这通常是通过感官设备等事物观察到的。因此我有一个看起来像的模型

x = A * s

然后我将x放入BSS算法中得到s’,这是信号向量的重构。

现在这是我遇到很多问题的地方;我如何比较 s’s,并获得这两个向量相似程度的定量测量?我正在研究的算法只能重建信号向量直到负号(因此s'可能类似于-s,或者换一种说法,因为 s' 在“形状”上与 s 相似但翻转了)并且不能保证保持信号的幅度。所以我想将信号的“形状”相互比较,同时也预料到虽然它们的“形状”可能相似,但它们可能会翻转。

澄清一下,当我说信号时,我的意思是一个矩阵,它可能是 50 x 10000(50 个不同的 channel ,随着时间的推移采集 10000 多个数据点)。 BSS 算法产生的另一个问题是不能保证 channel 的顺序得到保留。所以给定 s'1, s'2, s'3, ... , s'N,它们将是 s' 的不同 channel ,可能会被重建(同样,可能翻转和不同的振幅与 s 中的原始 channel 相比),但不能保证保留顺序。所以 s'1 可能与 s23 相关,而 s'2 与 s5 相关,依此类推。

所以我想知道是否有一种快速有效的方法来比较两个不同矩阵之间的相似性,假设这两个矩阵由应该相互关联的向量组成,尽管顺序、符号或振幅不同。

解决这个问题的最佳方法是什么?感谢您的帮助!

最佳答案

尝试阅读《科学》杂志最近发表的论文

检测大型数据集中的新关联 D. Reshef、Y. Reshef、H. Finucane、S. Grossman、G. McVean、P. Turnbaugh、 E. Lander、M. Mitzenmacher、P. Sabeti 科学 334, 6062 (2011) http://www.uvm.edu/~cmplxsys/newsevents/pdfs/2012/reshef-correlation-science-2011.pdf

可使用 JAVA(在 MATLAB 中)或 R(R 项目)的代码 可从 http://www.exploredata.net/Usage-instructions 获得

关于algorithm - 如何获得两个信号的定量比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1870929/

相关文章:

matlab - 在 MATLAB 中对表的内容进行排序

matlab - 使用包含要删除的时间戳的另一个数组对带有时间戳的 matlab 数组进行子集化

matlab. if/else if/else 语句中的矢量化

python - 矩阵乘法问题 - Numpy vs Matlab?

algorithm - 使用图表解决 "Water in buckets"脑筋急转弯

algorithm - 图中的最短路径

arrays - 从两个排序数组中找到第 k 个最小元素

javascript - 正向变量替换

Python 数字递增矩阵

c - 数组在通过 void 函数后没有改变