也许你不明白什么 intdumb 确实以及预期的结果是什么。
intdumb
当你问 Y = intdump(h,4); ,您需要在4个样本的每个周期内执行平均积分。换句话说,您将数据重新组合4个样本,求它,然后将结果除以4。
Y = intdump(h,4);
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i ---------------- (0.0000 + 0.0000i) / 4 = 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i ---------------- (0.0000 + 0.0000i) / 4 = 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i ---------------- (0.0000 + 0.0000i) / 4 = 0.0000 + 0.0000i 0.7071 + 0.7071i -0.7071 + 0.7071i -0.7071 + 0.7071i 0.7071 + 0.7071i ---------------- (0.0000 + 2.8284i) / 4 = 0.0000 + 0.7071i
所以Matlab会返回完美的结果。我不是为什么你期望不同的结果,但那些不是什么 intdump 应该回来了。
intdump
另一种计算方法是使用积分算子的线性度。确实你有:
的 INTEGRAL(A + iB)= INTEGRAL(A)+ i * INTEGRAL(B) 强>
所以在你的情况下,你可以分开真实和想象的部分 h
h
Y_temp = intdump([real(h) imag(h)],4); Y = Y_temp(:,1)+i*Y_temp(:,2)