当采样频率发生变化时,为什么频谱会发生变化?

时间:2015-06-05 00:28:51

标签: matlab signal-processing fft frequency continuous-fourier

这是我的代码,用于在时域中生成三角波形并生成相应的傅里叶级数/变换(我不知道它的序列或变换是否因为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 hz

你能解释一下为什么会这样吗?我可以做些什么来获得给定任何采样频率的幅度和相位谱的常数图?

2 个答案:

答案 0 :(得分:2)

我无法将图片加载到我的代理上,但FFT的频谱在较高的采样率下会在中间产生较大的“间隙”。抽样的基本属性是它引入了原始频谱的副本;如果你研究过discrete-time Fourier transform,你可能已经学会了这个。在更高的采样率下,这些副本相距甚远。

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

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

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

答案 1 :(得分:0)

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