【发布时间】:2015-08-19 19:24:17
【问题描述】:
这是我的代码,用于在时域中生成三角波形并生成其相应的傅立叶级数/变换(我不知道它的级数还是变换,因为 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
你能解释一下为什么会这样吗?在给定任何采样频率的情况下,我该怎么做才能获得幅度和相位谱的恒定图?
【问题讨论】:
标签: matlab signal-processing fft frequency continuous-fourier