我使用了 6678 芯片
当使用/TI/displib里面的库函数DSPF_sp_svd_cmplx 对复数矩阵进行奇异值分解的时候,会出现nan
对R进行奇异值分解,R定义为
R = a*A*A'+b*I
R是M*M维复数矩阵
A是M*1维复数向量
' 表示共轭转置
I是M*M维实数单位矩阵
a和b是实数比例系数
M表示维数
对某些数值计算结果是对的,但是对某些数值,奇异值就会出现nan,这是为什么呢?
Andy Yin1:
可能是输入的参数不符合矩阵要求导致内部计算异常,所以输出的结果是非法的。
user4242372:
回复 Andy Yin1:
你好,我也出现了类似的问题,60次svd计算中,有3次返回-1,相应的数据是NaN,剩余57次的数据是正确的。这60次的输入数据是不同的,matlab计算结果都存在。dsplib的版本是dsplib_c66x_3_4_0_0。请问有更进一步的建议吗?
另外,帖子的主人解决这个问题了吗?
祝好!
Kee Wong1:
回复 user4242372:
您好,兄弟,我最近在调用这个SVD模块后,第一次出现NaN值,但是后面调用了几次,没有出现NaN。而相同的数据在MATLAB上进行测试时一切正常。不知道兄弟,你解决这个问题了吗?我使用的DSPLIB版本与你相同,也是dsplib_c66x_3_4_0_0。还望您能赐教。
user4242372:
回复 Kee Wong1:
我没能解决NaN的问题,最后只能在使用SVD的结果之前判断是否产生NaN,如果是,则使用其他数据代替分解结果。
Kee Wong1:
回复 user4242372:
我调用后某些特征值会存在Nan的状况,也本想通过isnan来判断下 ,可是结果中出现了太多NAN值,又该如何寻求替换值的方案了。所以,刚一直在寻找官方的解决办法。我刚看到这些贴子,e2e.ti.com/…/551628
e2e.ti.com/…/789964
Kee Wong1:
回复 Kee Wong1:
e2e.ti.com/…/789964
这个帖子说明了该版本的DSPLIB是存在问题的,静待官方给出修复办法了。
user4242372:
回复 Kee Wong1:
感谢提醒。
因为我采集数据测试后,发现NaN的情况比较少,所以就没有进一步寻找解决方案或者替代方法,祝你成功。
Kee Wong1:
回复 user4242372:
兄弟,能否加个联系方式,后续可以多交流下。我的微信:KeeWong_WangQi
user4916411:
回复 Kee Wong1:
请问最后解决了吗?我也遇到NAN的问题