问题描述
据我从数学上的理解,高斯的傅里叶逆变换 (IFFT) 是高斯的。如果我有一个均值 (mu) 和方差 (sigma^2) 的高斯,我可以写成,
S(f) = 1/sqrt(2 * pi * sigma^2) .* exp(-(f - mu).^2/(2 * sigma^2))
其中 f 是频率轴。从 Matematica 中,我发现高斯脉冲平方根的 IFFT 解析表达式为,
s(t) = (2 / pi)^(1/4) .* sqrt(sigma) .* exp(-t .* 2 .* pi .* ((sigma)^2 .* 2 .* pi .* t + 1j .* mu)))
我使用 2 * pi * t
而不是 Mathematica 的 t
,因为它们使用角度术语。无论如何,我不在 MATLAB 中使用这个表达式。我使用 IFFT 与此表达式进行比较。
如果我们仔细检查这个时域 s(t)
,我们会注意到相位是线性的。我用以下方式定义频率轴,
f = linspace(-1/(2 * PRT),1/(2 * PRT),N);
因此,在进行 IFFT 后,如果我从信号的相位中除 2 * pi * mu
,我应该看到从 0
到 (N - 1)*PRT
的线性变化。
我有 N = 60000
和 PRT = 1e-3
所以,我应该看到从 0
到 60
秒的线性图。但是,我看到了一个在 60
秒之前结束的非线性图。
如果我用 Dirac delta 而不是高斯谱做同样的练习,我会正确地看到线性相位。
高斯图像:
高斯代码:
clear;
% close all;
lambda = 0.03;
mu = 4 * 2 / lambda; % Mean Doppler
sigma = 0.2 * 2 / lambda;
PRT = 1e-3;
f_amb = 1/(2 * PRT);
N = 60000; % Total number of points in time axis
f = linspace(-f_amb,f_amb,N); % veLocity axis for the entire rotation
S_ = gaussmf(f,[sigma,mu]);
s_num = ifft(ifftshift(sqrt(S_)));
figure; plot(unwrap(angle(s_num))/(2*pi*mu));
狄拉克谱图:
[~,idx1] = (min(abs(f - mu)));
S_Dirac_f = dirac(f - f(idx1));
idx = S_Dirac_f == Inf;
S_Dirac_f(idx) = 1;
s_num_dirac = ifft(ifftshift(sqrt(S_Dirac_f)));
figure; plot(unwrap(angle(s_num_dirac))/(2*pi*mu));
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)