如何创建符号整数以用于傅里叶变换?

时间:2011-10-09 17:08:35

标签: matlab integer

我正在计算MATLAB中的傅里叶变换,当计算系数C[0]C[n*f0]时,我得到了非常讨厌的结果,因为MATLAB不能将我的变量“n”识别为整数。我目前使用“n”作为符号变量(syms n;)进行计算。如何将符号n更改为符号整数n

1 个答案:

答案 0 :(得分:2)

查看MATLAB documenation,在R2008b或更高版本中添加“n为整数”的假设,您必须编写

evalin(symengine,'assume(n,Type::Integer)')

这回答了你的问题,但是,我不确定它能解决你的问题。

当您进行傅里叶变换时,您正在对数据执行大量数字运算,因此所涉及的所有变量都需要具有具体值。你的n可能应该是一个整数,但不仅仅是类型,它应该包含一个实际的数字。如果您使用syms声明它,它可能包含一个数字,因此您确定您确实需要符号工具箱

如果你这样做,并且n是产生一个特定整数的计算结果,你可以使用uint32(n)或类似的方法将其转换为正常的数字形式,请参阅help on conversions,例如

Y = fft(X,uint32(n))

更新:您在评论中提供的错误消息暗示您的n实际上不是整数...我怀疑您是否可以将其与fft一起使用。