这是我在时域中生成三角波形并生成其相应的傅立叶级数/变换的代码(我不知道它的级数还是变换,因为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 赫兹
你能解释为什么会这样吗?在给定任何采样频率的情况下,我该怎么做才能获得幅度和相位谱的恒定图?