首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Matlab中的精确奈奎斯特采样

Matlab中的精确奈奎斯特采样
EN

Stack Overflow用户
提问于 2015-04-15 21:54:13
回答 4查看 3.6K关注 0票数 4

今天,我在matlab中偶然发现了一个奇怪的结果。假设我有一个正弦波

代码语言:javascript
运行
复制
f = 1;
Fs = 2*f;
t = linspace(0,1,Fs);    
x = sin(2*pi*f*t);
plot(x)

结果就在图中。

当我出发时,

代码语言:javascript
运行
复制
f = 100

结果见下图,

具体原因是什么?这是奈奎斯特采样定理,因此它应该适当地产生正弦。当然,当我取,f,时,我得到了更好的结果和很好的正弦形状。我对自己的解释是,Matlab在使用浮点数时遇到了困难,但我不太确定这是否属实。有人有什么建议吗?

EN

回答 4

Stack Overflow用户

发布于 2015-04-17 06:54:50

你的问题与奈奎斯特定理和混叠无关。这是一个简单的图形表示问题。您可以更改您的代码,即正弦频率将降低Nyquist限制,但图形将像以前一样奇怪:

代码语言:javascript
运行
复制
t = linspace(0,1,Fs+2);
plot(sin(2*pi*f*t));

结果:

为了解释问题,我修改了您的代码:

代码语言:javascript
运行
复制
Fs=100;
f=12;  %f << Fs
t=0:1/Fs:0.5; % step =1/Fs
t1=0:1/(10*Fs):0.5;   % step=1/(10*Fs) for precise graphic representation
subplot (2, 1, 1);
plot(t,sin(2*pi*f*t),"-b",t,sin(2*pi*f*t),"*r");
subplot (2, 1, 2);
plot(t1,sin(2*pi*f*t1),"g",t,sin(2*pi*f*t),"r*");

见结果:

  • 红星- sin(2*pi*f)的值,采样率为Fs
  • 连接红星的蓝线。这是函数图()数据点之间的线插值的常用数据表示形式。
  • 绿色曲线- sin(2*pi*f)

你的眼睛和大脑可以很容易地理解这些图表代表正弦波。

将频率改为更高:

代码语言:javascript
运行
复制
f=48;   % 2*f < Fs !!!

在蓝线和红星上看到。你的眼睛和大脑现在不明白这些图表代表着同样的正弦波。但你的“红星”实际上是正弦波的有效值。看下面的图表。

最后,对于频率为f=50 (2*f =Fs)的正弦有相同的图形:

附注:

Nyquist-Shannon抽样定理表明,如果:

  1. f < 2*Fs
  2. 你有无限多的样本(我们的图上有红星)

然后你可以在任何时候再现函数的值(在我们的图上的绿色曲线)。您必须使用sinc插值来完成它。

票数 4
EN

Stack Overflow用户

发布于 2015-04-18 05:39:39

复制自Matlab帮助:

线段空间

生成线性空间向量语法

代码语言:javascript
运行
复制
y = linspace(a,b)
y = linspace(a,b,n)

描述

线性空间函数生成线性空间矢量。它类似于冒号运算符":",但直接控制点数。

Y=线性空间(a,b)生成一个行向量y,在a和b之间线性地间隔100点。

Y= linspace(a,b,n)生成在a和b之间线性排列的n个点的行向量y。对于n<2时,线性空间返回b。

创建一个从1到500之间的100个线性行距数字的向量:

代码语言:javascript
运行
复制
A = linspace(1,500);

创建一个从1到36之间的12个线性行距数的向量:

代码语言:javascript
运行
复制
A = linspace(1,36,12);
票数 0
EN

Stack Overflow用户

发布于 2015-04-18 06:06:08

对于Nyquist间隔来说,linspace并不明显,所以您可以使用常见的形式:

代码语言:javascript
运行
复制
t = 0:Ts:1;

代码语言:javascript
运行
复制
t = 0:1/Fs:1;

并改变F值。

第一个数字是由于'0':sin(0)和sin(2*pi)的近似。我们可以注意到范围在10^(-16)级。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29661617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档