【问题标题】:Why does the frequency spectra change when the sampling frequency is changed?为什么改变采样频率时频谱会发生变化?
【发布时间】: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


    【解决方案1】:

    我无法让您的图片通过我的代理加载,但 FFT 的频谱在更高的采样率下会在中间有更大的“间隙”。采样的一个基本特性是它引入了原始光谱的副本;如果您研究过discrete-time Fourier transform,您可能已经了解到这一点。在更高的采样率下,这些副本相距更远。

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2015-07-06
        • 2014-09-11
        • 2013-04-05
        • 2019-07-21
        • 2022-06-29
        • 2021-03-22
        • 2015-08-24
        • 1970-01-01
        • 2013-12-01
        相关资源
        最近更新 更多