0

这是我在时域中生成三角波形并生成其相应的傅立叶级数/变换的代码(我不知道它的级数还是变换,因为matlab只有傅立叶变换功能,但由于信号是周期性的,参考资料说傅立叶对应物必须称为傅立叶级数)。

x = 0;
s = 50; % number of sinusoidal components
fs = 330; % hertz
dt = 1/fs;  % differential time
t = [0:dt:4];  % seconds
const = 2 / (pi^2);

for k = 1:2:s,
   x = x + (((-1)^((k - 1) / 2)) / (k^2)) * sin(4*pi*k*t);
end

x = const * x;

% amplitude = max(x) = 0.2477
% period = 0.5 seconds

f = linspace(-fs/2,fs/2,length(x));
xk = fftshift(fft(x));
figure;

subplot(3,1,1);
plot(t,x);
grid on;
xlabel('time(seconds)');
title('Time Domain');

subplot(3,1,2);
plot(f,abs(xk));
grid on;
xlabel('frequency(hertz)');
title('Magnitude Spectrum');

subplot(3,1,3);
plot(f,angle(xk));
grid on;
xlabel('frequency(hertz)');
title('Phase Spectrum');

这是时域信号、幅度谱和相位谱的生成图。

链接: fs = 330hz

我的问题是当我将采样频率(当前等于 330 赫兹的 fs)更改为另一个值时,幅度谱和相位谱图会发生变化。

以下是采样频率等于 400 Hz 时的幅度谱和相位谱图:

链接: fs = 400 赫兹

你能解释为什么会这样吗?在给定任何采样频率的情况下,我该怎么做才能获得幅度和相位谱的恒定图?

4

2 回答 2

2

我无法让您的图片通过我的代理加载,但 FFT 的频谱将以更高的采样率在中间有更大的“间隙”。采样的一个基本特性是它引入了原始光谱的副本;如果您研究过离散时间傅里叶变换,您可能已经了解了这一点。在更高的采样率下,这些副本相距更远。

此外,您的采样点将以不同的采样率位于不同的位置,因此您可能会获得不同的波瓣行为。

顺便说一句,你在 Matlab 中得到了离散傅立叶变换——你给了它一个有限的离散点序列,而不是一个连续的、无限长的信号。

如果您希望图看起来相同,只需使它们的 x 轴匹配。

于 2015-06-05T00:55:44.840 回答
0

这是因为 DFT/FFT 得到的光谱确实是原始模拟光谱的采样和归一化版本,因此,随着采样步长的变化,频域中的采样步长也发生了变化,因此您看到的谱线也发生了变化,因为原始光谱不是恒定的。另一个因素可能是混叠效应,因为三角波形的模拟频谱在理论上是无限的。

于 2015-06-05T01:52:15.963 回答