求解光纤中信号的 PDE

信息处理 matlab fft 在家工作
2022-01-28 23:56:31

免责声明如果这不是问这个问题的正确地方,请告诉我。
免责声明第 2 部分我没有信号方面的背景。我的重点是数学。

在我的编程课上,我们正在研究光纤中的脉冲传播。纤维可以建模为一条由一维坐标标记的线z. 光纤输入端的脉冲(z=0) 作为时间相关的场包络给出A(0,t). 我需要在任何位置和任何时间得出场包络的大小A(z,t). 我们被告知使用数值方法(即傅里叶变换)来求解偏微分方程

Az=α2Aβ1Atjβ222At2

这里,右侧的第一项模拟由于散射引起的信号衰减,第二项模拟群速度,第三项模拟色散(即不同的颜色以不同的速度在光纤中传播,导致脉冲展宽)。我的老师说过要使用高斯脉冲并在范围内离散化脉冲[t2,t2]这样t>>σ (t=10σ).

我已经能够在数学上证明解决方案应该是

A(z,t)=ifft[A~(0,ω)exp((α2jωβ1+jω22β2)z)]
(在哪里A~(0,ω)是傅里叶变换A(0,t)) 但在 MATLAB 中实际实现这些结果时遇到了麻烦。

到目前为止我所拥有的:

sigma = 0.1; % standard deviation of the pulse   
N = 256;  % number of points sampled  
t = linspace(-10*sigma, 10*sigma, N); % time vector  
A0t = (0.25/sqrt(2*pi*sigma^2))*exp(-(t.^2)/(2*sigma^2)); % descritized gaussian pulse  

Fs = 1000; %sampling frequency 

我不知道这个数字应该是多少

A0w = fft(A0t);
A0w = abs(A0w(1:round(N/2))); 

w = (0:(N-1))*(Fs/N);  %frequency vector
w = w(w < Fs/2);

我不知道为什么最后三行是必要的。我在这里看到了。

alpha = input(...);  
beta1 = input(...);  
beta2 = input(...);  

lambda = ((alpha/2) - (1j*w*beta1) + (1j*(w.^2)*beta2/2)); %eigenvalue of ODE in frequency domain

end = input(...);

z = linspace(0,end,length(A0w))'; % spatial vector

Azw = A0w.*exp(lambda.*z); % solution in the frequency domain

Azt = abs(ifft2(Azw)); % solution in the time domain

使用alpha = 10, beta1 = 50,beta2 = 18end = 10得到下面的曲面图,我认为这是不正确的。(tz是根据它们的索引而不是实际值绘制的,因为t大小不一样A(z,t).)

如果有人可以向我解释为什么我需要做我在我的代码中所做的事情(斜体注释)以及我应该做些什么以获得正确的输出,或者我得到的是正确的,将不胜感激。

曲面图

0个回答
没有发现任何回复~