Generate a discrete time signal from a given continous time signal

3 次查看(过去 30 天)
Lets say I have a continout time signal, x(t) = sin (1000pi*t).
I wanted to generate a sequence of discrete time signal ,x[n] of length 4096, and only print the first 10 values of x[n].
How do I do that , I am super new to matlab.

采纳的回答

Yaowei Zhu
Yaowei Zhu 2020-11-12
如果你要对一个连续信号采样从而得到离散的序列,那么首先你需要指定采样率是多少,或者说每个信号周期内你想采多少个点。假定每个周期内采点数量为N,现在你的信号频率为,那么对应的采样率,那么采样间隔为。因此采样代码如下:
N = 10;
f0 = 500;
fs = N*f0;
Ts = 1/fs;
k = 0:4095;
t = k*Ts;
x = sin(2*pi*f0*t);
x(1:10)
以上代码就能得到你想要的结果了。
  2 个评论
lian jiajie
lian jiajie 2020-11-12
编辑:lian jiajie 2020-11-12
Ty, I have a fs = 2800Hz but if my signal is x = sin(1000*pi*t)+0.5*sin(1200*pi*t)+2*sin(1400*pi*t), how do I know my f0 ?
Yaowei Zhu
Yaowei Zhu 2020-11-12
编辑:Yaowei Zhu 2020-11-12
我们用中文交流就行了。
是这样,我上面说的只是针对你的例子给的信号,比如说先选择一个周期希望采样多少个点,然后确定采样率,其本质目的是要选择一个采样率。
不知道你现在是什么学历,但是关于信号采样方面的东西,如果你有时间的话,还是推荐你找本“信号与系统”的教材看看。
现在来谈谈你新给的信号。
对一个连续信号采样,关键是要确定采样率是多少。对于低通信号采样率要大于或等于被采样信号中最高频率的两倍(Nyquist采样定理)。现在你给定了一个采样率,,挺好的,因为现在信号时最高的频率为。确定了采样率之后,就确定了采样间隔。采样间隔的意思是每次间隔这么长的时间从连续信号上取一个点。这样的话,我确定采第一个点的时间后,同时也确定了采其他点的时刻。比如我确定在0时刻开始采,那么当时间的时刻,都是要采样的时刻。也就是说
当然,此时,对于中的三个不同频率的信号来说,每个周期采的点数是不一样的,但是没有关系,采样率都是一样的,都是
还有什么问题,尽管问。
另外,建议你使用MATLAB输入框上部“工具条”-“Insert栏”中的LaTeX输入公式。代码的话,使用“工具栏”-“Code"输入。

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB Report Generator 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by