绘制正弦波时出错

时间:2015-05-19 10:18:30

标签: matlab plot sine

我正在使用以下代码绘制Matlab中的正弦波,

   Fs = 12000;                       % sampling frequency in Hz
   dt = 1/Fs;                        % seconds per sample
   StopTime = 0.25;                  % seconds
   t = (0:dt:StopTime-dt)';          % seconds

   Fc = 5000;                        % hertz
   x = sin(2*pi*Fc*t);

   figure;                           % Plot the signal versus time:
   plot(t,x);
   xlabel('time (in seconds)');
   title('Signal versus Time');

代码往往起作用,但当我尝试绘制5kHz正弦波时,我得到以下结果:

enter image description here

我知道您需要的采样频率至少是您想要绘制的最大频率的2倍(奈奎斯特定理)。那为什么会这样呢?

1 个答案:

答案 0 :(得分:4)

您正在获得别名。您的采样频率需要远高于您想要绘制的最大频率,以获得平滑的"曲线图。

对于5 kHz正弦波,您需要的采样频率至少为50 kHz,即便如此,也不是很多(每个周期只有10个数据点)。 100 kHz将为每个周期提供20个数据点,这可能看起来很好:

enter image description here