编辑:这是我在这个社区的第一篇文章。我确信我的反对者有充分的理由这样做,但是有人可以发表评论并告诉我如何更好地格式化我的问题吗?
--
我有一个几乎有意义的 DFT 算法。问题是当我去绘制频率响应时。出于某种原因,频率响应会乘以采样周期(参见第一张图片)。
了解这一点后,我可以通过将频率响应 X 轴除以采样周期来修复它(参见第二张图片),但我不明白为什么这是一个问题。
代码发布在下面 - 谁能解释我错过了什么?(示例使用 1 Hz 正弦波)
x_t = sin( 2 * pi * t); % Input: 1 Hz Sinusoid
s_f = zeros(N,length(x_t)); % Output: Freq spectrum
%%%% init params
T = 4; % (sec) time window
dt = 0.1; % (sec) sample time
%%%% init comp
N = T / dt; % (ct) num samples
n = 0 : N - 1; % (ct) bucket index vector
t = 0 : dt : T - dt; % (sec) time vector
smpl_freq = 1 / dt; % (Hz) sampling frequency
freq_res = smpl_freq / N; % (Hz) frequency resolution
f = n * freq_res; % (Hz) freq. bucket vector
b = 2*pi*(f/N) .* n.';
anlyz_fn = cos(-b) + i * sin(-b);
%%%% run DFT
for k = 1 : N
val = 2 * sum(anlyz_fn(k,:) * x_t.');
s_f(k) = val;
end
%%%% Plot Results
subplot(2,1,1);
plot(t, x_t);
subplot(2,1,2);
stem(f(1:N)/T , abs(s_f(1:N))/N);