混叠频率的计算
上次我们讲到如果混叠没能成功避免,那么混叠后的信号就会偷偷混入重建后的信号。那么这个经过伪装的“伪装信号”的频率是多少呢?他会出现在频谱中的哪里呢?这是可以通过精确计算得到的。
先从奥本海姆的信号与系统中的一幅插图说起,奥本海姆老师要通过这幅图说明混叠,所绘制的波形为下图公式所示的余弦函数。
图中的ωo表示原始信号的频率,ωs表示采样频率。这幅图一共有四张,前两张图的采样频率分别是原始频率的6倍和3倍,所以重建后的信号并没有出现混叠如下图所示。
(点击图像放大)
由于我很喜欢这个例子,所以我就用matlab把它仿真了一下。
此处,我令第一个连续余弦函数信号(下图中第一行)的原始频率ωo为10Hz, 则按照图中的比例对应的采样频率ωs应当为60Hz,。此时采样频率为原始信号频率的6倍。
然后,我再令第二个连续余弦函数信号(下图中第三行)的原始频率ωo为20Hz, 同样的,按照图中给出的比例采样频率应为原始信号频率的3倍,即60Hz。(箭头没能仿真成功,嘻嘻)
注:这里我稍微说一下这两个信号的原始频率是怎么选出来。因为,书中确实没找到实际数值,所以我这里所设置的10Hz和20Hz是我自己试出来。也就是说我为了让matlab画出来的图和教科书中一样,通过不断地尝试试出来。不过有一点可以肯定的是,单从教科书给出的图像来看,第二个余弦函数的原始频率确实要大于第一个余弦函数的原始频率。
(点击图像放大)
Matlab代码如下:
%CSDN:by J27 copyright!
%% sampling freqency 6 times continous signal
Fs = 60; % Sampling Freq.
Fo = Fs/6; % freq. of continous Signal
T = 1/Fs; % sampling period
tmin = -pi/15.7; % lower limit of time vector
tmax = pi/15.7; % upper limit of time vector
Bins = 400; % Number of Bins
t = linspace(tmin, tmax, Bins); % time space vector
nmin = ceil(tmin / T); % lower limit of num vector
nmax = floor(tmax / T); % upper limit of num vector
n = nmin:nmax; % discrete space vector
CosineSignal = cos(2.*pi.*Fo.*t);
SampleSignal = cos(2.*pi.*Fo.*n.*T);
subplot(4,1,1)
plot(t,CosineSignal,'k','LineWidth',2);
title('\fontsize{35}Sampling freqency 6 times continous signal. i.e. Proper sampling');
hold on
stem(n*T,SampleSignal,'r','filled','LineWidth',2)
hold off
subplot(4,1,2)
p