混叠频率的计算

转载至信号的采样和奇妙的混叠(Aliasing) 贰

上次我们讲到如果混叠没能成功避免,那么混叠后的信号就会偷偷混入重建后的信号。那么这个经过伪装的“伪装信号”的频率是多少呢?他会出现在频谱中的哪里呢?这是可以通过精确计算得到的。

先从奥本海姆的信号与系统中的一幅插图说起,奥本海姆老师想要通过这幅图说明混叠,所绘制的波形为下图公式所示的余弦函数。

图中的ωo表示原始信号的频率,ωs表示采样频率。这幅图一共有四张,前两张的采样频率分别是原始频率的6倍和3倍,所以重建后的信号并没有出现混叠如下图所示。

点击图像放大

由于我很喜欢这个例子,所以我就用matlab把它仿真了一下。此处我的余弦函数的采样频率为60Hz, 所以第一个连续信号(下图中第一行)的原始频率为10Hz, 此时采样频率为原始信号频率的6倍。第二个连续信号(下图中第三行)的原始频率为20Hz, 此时采样频率为原始信号频率的3倍。(箭头没能仿真成功,嘻嘻)

点击图像放大

%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 vectorCosineSignal = 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 offsubplot(4,1,2)
plot(t,CosineSignal,'--k','LineWidth',2);
title('\fontsize{35}Rebuild continous signal with sampled discrete signal');
hold on
stem(n*T,SampleSignal,'r','filled','LineWidth',2)
hold off
%% sampling freqency 3 times continous signal
Fs = 60;                        % Sampling Freq.
Fo = Fs/3;                      % 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 vectorCosineSignal = cos(2.*pi.*Fo.*t);
SampleSignal = cos(2.*pi.*Fo.*n.*T);subplot(4,1,3)
plot(t,CosineSignal,'k','LineWidth',2);
title('\fontsize{35}Sampling freqency 3 times continous signal. i.e. Proper sampling');
hold on
stem(n*T,SampleSignal,'r','filled','LineWidth',2)
hold offsubplot(4,1,4)
plot(t,CosineSignal,'--k','LineWidth',2);
title('\fontsize{35}Rebuild continous signal with sampled discrete signal');
hold on
stem(n*T,SampleSignal,'r','filled','LineWidth',2)
hold off    

在用matlab仿真时,重建信号(即图像中灰色虚线)的频率由于没有出现混叠。则在用matlab绘制图像时,重建的COS波形的频率沿用了原始信号的频率Fo。但在仿真下面图像时就必须要精确的计算出混叠后的频率Fs才能绘制出混叠信号的波形。

点击图像放大

要想画出上图中的虚线,即伪装后变慢了的信号,必须要精确的知道信号变慢了多少。对于欠采样不太严重的情况(即,原始频率小于采样频率但大于采样频率的一半。Fs/2<Fo<Fs),如上图中的情况。则可以使用如下计算公式中的情形(c)和情形(d):

在本例中我所使用的采样频率为60Hz, 按照公式(c)和公式(d)则发生混叠后的混叠频率分别为:

For   (c)    ωo = 40Hz ;     Fa = ωs - ωo = 60 - 40 = 20Hz

For   (d)    ωo = 50Hz ;     Fa = ωs - ωo = 60 - 50 = 10Hz

如果原始信号的频率远远高于采样频率,即原始频率Fo不仅大于Fs还有可能大于Fs的2,3,4,5...倍则可以使用如下公式。fa表示混叠频率,fs表示采样频率,f表示原始信号的最高频。式中||表示求绝对值,式中(closest integermultiple of fs)表示整数倍于最接近原始频率f的倍数。例如,如果采样频率为100Hz,原始信号的最高频为710Hz则这是式中的(closest integermultiple of fs)等于7,即7*fs。

现假设信号采样频率为100 Hz,输入信号包含下列频率:25 Hz、70 Hz、160 Hz和510 Hz。 低于50 Hz奈奎斯特频率才可正确采样,超过50 Hz的频率显示为混叠,所以只有频率为25Hz的信号才能被正确采样。fs/2为奈奎斯特频率即采样频率的一半。

其中,频率超过50Hz的信号的混叠频率计算公式为:

(1) 当输入信号的频率F2为70Hz时,采样频率Fs为100Hz。按照奈奎斯特采样定律,要想对70Hz的输入信号充分采样,采样频率至少要大于140Hz,即输入信号频率的两倍。所以发生了混叠,由于输入频率为70,所以离采样频率100最近的整数倍数是1(即,这里的(closest integermultiple of fs) = 1)。  计算结果如下:

F2 Alias = |100 - 70| = 30Hz

(2) 当输入信号的频率F3为160Hz时,采样频率为Fs100Hz。采样频率低于输入信号的频率,发生了混叠,由于输入频率为160,所以离采样频率100最近的整数倍数是2(即,这里的(closest integermultiple of fs) = 2)。  计算结果如下:

F3 Alias = |2*100 - 160| = 40Hz

(3) 当输入信号的频率F4为510Hz时,采样频率为Fs100Hz。采样频率低于输入信号的频率,发生了混叠,由于输入频率为510,所以离采样频率100最近的整数倍数是5(即,这里的(closest integermultiple of fs) = 5)。  计算结果如下:

F4 Alias = |5*100 - 510| = 10Hz

混叠频率即折叠频率:    

混叠频率有时又叫折叠频率,只需把超过奈奎斯特频率(Fs/2)的频段或是超过采样频率(Fs)的频段以奈奎斯特频率或采样频率为中轴对折过去就好了。或者说是以奈奎斯特频率或采样频率为中轴的镜像。如下图,一个6Hz的信号以奈奎斯特频率3.5Hz为中轴折叠为1Hz的信号。同理,一个8Hz的信号以采样频率7Hz为中轴折叠为频率为6Hz的信号。

好了, 计算公式以及详细的计算方法都已经给出来了。最后用Matlab把教科书中的带有混叠的那部分图示仿真出来(注意:重建后的混叠信号我用蓝色的虚线表示出来了)。

点击图像放大

%CSDN:by J27 copyright!
%% sampling freqency 3/2 times continous signal
Fs = 60;                        % Sampling Freq.
Fo = 4*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 vectorCosineSignal = cos(2.*pi.*Fo.*t);
SampleSignal = cos(2.*pi.*Fo.*n.*T);figure;
subplot(4,1,1)
plot(t,CosineSignal,'k','LineWidth',2);
title('\fontsize{35}Sampling freqency 1.5 times continous signal. Improper sampling resualt in Aliasing');
hold on
stem(n*T,SampleSignal,'r','filled','LineWidth',2)
hold off
%figure out Aliasing freq.
Fa = abs(Fo-Fs);
CosineSignal = cos(2.*pi.*Fa.*t);subplot(4,1,2)
plot(t,CosineSignal,'--b','LineWidth',2);
title('\fontsize{35}Rebuild continous signal with sampled discrete signal');
hold on
stem(n*T,SampleSignal,'r','filled','LineWidth',2)
hold off
%% sampling freqency 6/5 times continous signal
Fs = 60;                        % Sampling Freq.
Fo = 5*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 vectorCosineSignal = cos(2.*pi.*Fo.*t);
SampleSignal = cos(2.*pi.*Fo.*n.*T);subplot(4,1,3)
plot(t,CosineSignal,'k','LineWidth',2);
title('\fontsize{35}Sampling freqency 1.2 times continous signal. Improper sampling resualt in Aliasing');
hold on
stem(n*T,SampleSignal,'r','filled','LineWidth',2)
hold off
% figure out Aliasing freq.
Fa = abs(Fo-Fs);
CosineSignal = cos(2.*pi.*Fa.*t);subplot(4,1,4)
plot(t,CosineSignal,'--b','LineWidth',2);
title('\fontsize{35}Rebuild continous signal with sampled discrete signal');
hold on
stem(n*T,SampleSignal,'r','filled','LineWidth',2)
hold off

信号的采样和奇妙的混叠(Aliasing) 贰相关推荐

  1. 数字信号处理 --- 信号的采样和奇妙的混叠(Aliasing) 壹

    信号的采样与混叠(时域) 在一定条件下,一个连续的时间信号完全可以用该信号在等时间间隔上的样本来表示,并且可以用这些样本的值把该信号完全恢复出来.这一非常重要的发现被称之为采样定理. 采样定理在连续时 ...

  2. matlab方波假频现象分析,基于MATLAB 的信号时域采样及频率混叠现象分析

    龙源期刊网 http://www.doczj.com/doc/7d04774eae45b307e87101f69e3143323968f58a.html 基于MATLAB 的信号时域采样及频率混叠现象 ...

  3. matlab时域计算频率,基于MATLAB 的信号时域采样及频率混叠现象分析

    摘要:频率混叠是数字信号处理中特有的现象,发生频率混叠后,信号会分析出错误的结果.而采样过程中,由于频率不够高,采样出的点不仅代表了信号中低频信号的样本值,也代表了高频信号的样本值.信号重构时,高频信 ...

  4. 信号的采样与恢复matlab实验报告,实验七 连续信号的采样与恢复

    一.实验目的 通过MATLAB仿真验证抽样定理,进一步加深对抽样定理的理解. 二.实验原理 1. 连续信号的采样 对某一连续时间信号f(t)的采样原理图为: 由图可知, ,其中,单位冲激采样信号 的表 ...

  5. 实验(1)信号的采样

    本文的pdf文件:link        由于在计算机中存储的信号都是数字信号,所以无法选用真实的信号来进行处理,本文主要利用软件来模拟真实信号,并对该模拟信号进行采样,采样的影响因素主要是采样频率, ...

  6. 离散信号(一) | 信号的采样和恢复+时域、频域采样定理

    离线信号是指在时间上是离散的,即只在某些不连续的规定时刻给出信号的瞬时值,而在其它时刻无意义的信号.连续时间信号的采样是离散信号产生的方法之一,而计算机技术的发展以及数字技术的广泛应用是离散信号分析. ...

  7. 反卷积 算法 c语言,多次曝光图像的PSF反卷积以及欠采样图像的反混叠技术I:PSFdeLRSA的制作方法...

    1技术领域 在图像的点扩散函数(PSF)反卷积领域,人们发展了很多方法:比如基于最大似然估计的Lucy-Richardson图像PSF反卷积技术和在该技术基础上加入的正则化手段,比如基于最小均方差或最 ...

  8. 图像频率、采样定理和抗混叠

    空间频率 以单通道的图像为例,是一个二维的像素矩阵,其频率的单位应该是周期/像素(cycles/pixel).最大频率的一个周期应该由相邻的一黑一白两个像素构成,即fmax=12f_{max} = \ ...

  9. 第五章 连续时间信号的采样

    第五章 连续时间信号的采样 错题笔记: 冲激响应:对于连续时间 δ ( t ) \delta(t) δ(t),表示为 h ( t ) h(t) h(t):单位脉冲响应:对于离散序列 δ [ n ] \ ...

最新文章

  1. 你见过最差的算法工程师什么样?
  2. 【错误记录】VMware 虚拟机报错 ( VMWare 中的 Ubuntu 虚拟机网络设置 | 第一次网络设置 )
  3. python教学视频k_GitHub - y000k/codeparkshare: Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐...
  4. 数据之路 Day5 - Python基础5
  5. mysql dump hbase_mysqldump导出全数据库
  6. 英伟达3060Ti安装GPU版本TensorFlow2.X
  7. 武汉大学计算机学院的李明,李明副研究员
  8. 从Spring Boot信息泄露到AWS控制台劫持(攻破aws亚马逊服务器)
  9. opencv-python 学习笔记1:简单的图片处理
  10. 室外定位_为什么老师应该走出自己的舒适区而进入室外
  11. 计算机课组会议讲话,备课组长会议讲话稿
  12. java命令添加classpath_java和javac命令的classpath用法
  13. 猜数字游戏python程序用函数guesssecret_python实现猜数字游戏
  14. ASP.NET网站限制访问频率
  15. Linux拷贝文件夹
  16. php 百度天气,php使用百度天气接口示例
  17. A Death in the Family May Cause Real Heart Break
  18. 【项目记录】服务器暴力风扇改造桌上风扇
  19. 少儿机器人教育在国内的情况
  20. Linux常用命令和shell命令

热门文章

  1. java实习生面试题_java实习生面试题大全(2019年整理)
  2. 链表C语言实现--单向链表
  3. 用Sandcastle生成CHM1.x中文文档
  4. Python: NumPy中的多维数组ndarray
  5. 台式计算机软件安装的完整过程,台式电脑怎么自己动手组装 史上最全的组装电脑详细图文教程...
  6. 河北省最好的计算机技校,河北省靠谱的技校排名
  7. (七)Java游戏部署在Palm Os平台仿真器(Access) 1
  8. ChainStore_2020年已过大半 DeFi热潮还能持续多久?
  9. FreeRadius 2.1.6的安装
  10. Vuex中的mutations