为了产生正弦波,第一步是固定正弦波的频率 f。例如,我们希望生成 f = 10Hz 正弦波,其最小和最大振幅分别为 -1V 和 +1V。给定正弦波的频率,下一步是确定采样率。
对于基带信号,采样是直截了当的。通过 Nyquist Shannon 采样定理,在离散域中再现连续号,必须以高于 fs 的速率对信号进行采样,至少是信号频率 fm 的两倍。
Matlab 是一种以数字形式处理所有内容的软件。为了获得平滑的正弦波,采样率必须远高于规定的最低要求采样率。因此,我们需要以明显高于奈奎斯特准则规定的速率对输入信号进行采样。更高的过采样率需要更多的内存存储信号。
在以下代码片段中选择了 30 的过采样因子。这是为了绘制平滑连续的正弦波。因此采样率变为 fs = 30× f = 30×10 = 300Hz。
源代码
f=10; %frequency of sine wave
overSampRate=30; %oversampling rate
fs=overSampRate*f;
phase=1/3*pi; %desired phase shift in radians
nCyl=5;
t=0:1/fs:nCyl*1/f-1/fs; %time base
g=sin(2*pi*f*t+phase); %replace with cos if a cosine wave is desired
plot(t,g); title(['Sine Wave f=', num2str(f), 'Hz']);