绘制正弦波时出错
Error with plotting a sine wave
我正在使用以下代码在 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 正弦波时,我得到以下结果:
我知道您需要采样频率至少是要绘制的最大频率的 2 倍(奈奎斯特定理)。那么为什么会这样呢?
您正在使用别名。您的采样频率需要比您想要绘制的最大频率高得多,才能获得 "smooth" 图。
对于 5 kHz 正弦波,您需要至少 50 kHz 的采样频率,即使那样也不是很多(每个周期只有 10 个数据点)。 100 kHz 将为您提供每个周期 20 个数据点,这可能看起来不错:
我正在使用以下代码在 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 正弦波时,我得到以下结果:
我知道您需要采样频率至少是要绘制的最大频率的 2 倍(奈奎斯特定理)。那么为什么会这样呢?
您正在使用别名。您的采样频率需要比您想要绘制的最大频率高得多,才能获得 "smooth" 图。
对于 5 kHz 正弦波,您需要至少 50 kHz 的采样频率,即使那样也不是很多(每个周期只有 10 个数据点)。 100 kHz 将为您提供每个周期 20 个数据点,这可能看起来不错: