0

我有一个高斯形状的频域频谱,我正在计算它的傅里叶逆变换。我使用 MATLAB 的 IFFT 和 Mathematica 的解析表达式。他们不一样。

我不知道哪里错了。我已经粘贴了这两个数字。因为时域脉冲出来太细了,数值被放大了。任何帮助表示赞赏。

在此处输入图像描述

在此处输入图像描述

代码如下:

clear; 
% close all;


lambda = 0.03;

PRT = 1e-3;
mu = 4; % Mean Doppler
sigma = 0.2;
v_amb = 7.5;

N = 60000; % Total number of points in time axis

t1 = 0:PRT:(N - 1)*PRT; % Time axis 
vel_axis = linspace(-v_amb, v_amb, N); % velocity axis for the entire rotation

% vel_axis_hs = linspace(-v_amb, v_amb, hs); % velocity axis for one beamwidth
% t1 = -N/2*PRT:PRT:(N/2 - 1)*PRT; % Time axis
% s_analyt_o = 1./sqrt(2*pi*(sigma).^2) .* exp(-(vel_axis - mu).^2./(2*(sigma).^2));

% SNR = 10^(30/10);
% X = rand(1, N);
% Theta = 2 .* pi * rand(1, N);


S_ = gaussmf(vel_axis, [sigma, mu]);

% Noise = sum(S_) ./ (N .* SNR);
% s_analyt_o = -(S_ + Noise) .* log(X);

s_analyt_o = S_;
s_num = ifft(ifftshift(sqrt(s_analyt_o))); % Numerical IFFT


s_analyt = ifftshift((2/pi)^(1/4) * sqrt(sigma) .* exp(-t1 .* ((sigma)^2 .* t1 + 1j .* mu))); % analytical IFFT



figure; plot(t1, abs((s_analyt)));

figure; plot(t1, abs(ifftshift(s_num)));
4

0 回答 0