在 SE Chemistry 论坛上,有人发布了一个有趣的问题,关于通过卷积将缩放和移位的 delta 函数转换为洛伦兹函数,请参阅“模拟分子光谱”。OP 在他的 deltas' 与 Lorentzian 卷积后观察 x 轴上的变化。这显然是由于洛伦兹中心选择错误所致。
在卷积中,水平质心相加。所以我建议一个以零为中心的洛伦兹应该与偏移的 delta 进行卷积,之后在 x 轴上不会有偏移,即,如果 delta 函数在x=t处,在与一个以零为中心的洛伦兹进行卷积之后,将会在t - 所需位置成为 Lorentzian 。
另一位用户提出了另一种选择。他的建议是,也可以将 Lorentzian 以 x 轴值的平均值为中心, ,并将这个均值居中的洛伦兹与三角洲卷积。不会有任何变化,而且确实观察到了这一点。
查询是: 质心加入卷积。可以理解的是,当 delta 在x=t处移动时,洛伦兹函数以 0 为中心,因此得到的洛伦兹函数以 t+0=t 为中心。
现在,为什么另一种选择有效?这次三角洲在t,洛伦兹的中心在,得到的卷积应该在 t+,但三角洲仍然没有移动。得到相同结果的数学基础是什么?
这是用于演示的 MATLAB 代码。
%Assigning variable names
x=[6200:2:6700-2]'; % x axis
Int=cat(1, zeros(80,1), 1, zeros(169,1)); %
Delta= x(2,1)-x(1,1); % Sampling interval
% Zero centered Lorentzian parameter;
N=[-(length(x/2)):Delta:length(x/2)-Delta]'; % x-axis for the zero centered Lorentzian
A= 1; %amplitude
W= 10; %full width at half maximum
M=0; %centered peak
L1= A./(1+4*((N-M).^2/W.^2)); % Lorentzian equation
% Mean centered Lorentzian parameters
mu=mean(x)
L2=A./(1+4*((x-mu).^2/W.^2)); % Lorentzian equation
F1=conv(Int, L1, 'same');
F2=conv(Int, L2, 'same');
figure (1)
subplot(1,3,1)
stem(x, Int,'.');
xlabel('time'); ylabel ('signal'); title ('shifted impulse')
subplot(1,3,2)
plot(N,L1)
xlabel('time'); ylabel ('signal'); title ('zero centered Lorentzian for convolution')
subplot (1,3,3)
plot(x,F1)
xlabel('time'); ylabel ('signal'); title ('impulse*zero centered Lorentzian')
figure(2)
subplot(1,3,1)
stem(x, Int,'.');
xlabel('time'); ylabel ('signal'); title ('shifted impulse')
subplot (1,3,2)
plot(x, L2)
xlabel('time'); ylabel ('signal'); title ('"mean time" centered Lorentzian for convolution')
subplot (1,3,3)
plot(x,F2)
xlabel('time'); ylabel ('signal'); title ('impulse*mean time centered Lorentzian')
谢谢。