我正在制作此图表(缩减版代码):
k = 1000
r = [100 220 470 1*k 2200 4700 10*k 22*k 47*k 100*k 220*k 470*k 1000*k ]
unModNB = [0.72 0.746 0.801 0.92 1.16 1.69 2.78 4.6 6.45 9.1 11.2 12.4 13.2]
unModWB = [1.124 1.17 1.23 1.48 1.84 2.65 4.2 7.6 11.8 15.4 18.6 20.01 21.7]
ModNBdB = 20*log10( ModNB)
ModWBdB = 20*log10( ModWB)
semilogx( r, ModNBdB, r, ModWBdB )
grid
legend(Line 1 ', 'Line 2')
如何在整个比例范围内跨越Δ的区间生成另一个第1行和第2行之间的增量图?
我想避免简单地使用阅读增量,因为跳跃'这个meathod产生的图表。
非常感谢任何帮助,
版
答案 0 :(得分:0)
我相信你想要做的是在unModNB和unModWB点之间进行插值,并计算它们之间的差异(如你所说的增量)。为此,您可以使用interp1()
。试试这个:
k = 1000;
r = [100 220 470 1*k 2200 4700 10*k 22*k 47*k 100*k 220*k 470*k 1000*k ];
unModNB = [0.72 0.746 0.801 0.92 1.16 1.69 2.78 4.6 6.45 9.1 11.2 12.4 13.2];
unModWB = [1.124 1.17 1.23 1.48 1.84 2.65 4.2 7.6 11.8 15.4 18.6 20.01 21.7];
ModNBdB = 20*log10( unModNB );
ModWBdB = 20*log10( unModWB );
semilogx( r, ModNBdB, r, ModWBdB )
grid
legend('Line 1', 'Line 2')
sampled_x_vals = linspace(r(1),r(end),1000);
unModNB_sampled = interp1(r, unModNB, sampled_x_vals, 'pchip');
unModWB_sampled = interp1(r, unModWB, sampled_x_vals, 'pchip');
deltas = unModWB_sampled-unModNB_sampled;
figure, semilogx(sampled_x_vals,deltas), grid;
如果,'deltas'表示除差异之外的其他内容,请澄清。