首页 > 解决方案 > 无法在 MATLAB 中绘制 CT 信号图

问题描述

我正在尝试在 MATLAB 中为 0<=t<0.2 ms 绘制 CT 信号间隙 (x(t)),如下图所示。我已经编写了以下代码,但是不确定图中时间 t 的步长应该是多少。任何帮助将不胜感激:) 谢谢!

t = 0:0.00002:0.0002;
f = 10000;
x = 4*sin(2*pi*f*t);
figure;
plot(t,x);

在此处输入图像描述

标签: matlab

解决方案


文中似乎有误会。Ts是采样周期,而采样是采样周期的倒数,Fs=1/Ts。Ts 为 0.02 ms,这意味着采样率实际上是 50 kHz。

图中发生的是连续函数 x(t) 通过将其与脉冲序列 p(t) 相乘来进行采样。p(t) 函数由无限数量的 (Dirac) delta 函数组成,这些函数等距 Ts 秒并持续无穷大。输入也永远持续下去,因为 sin(t) 是为所有 t 定义的。这里的概念是要理解通过将 x(t) 乘以 p(t),您将获得以 Ts 间隔间隔开的 x(t) 样本。

因为这两个信号都是无限的,所以您应该为您希望执行的分析选择一个有意义的时间范围。在这种情况下,它具有教育意义,因此只需选择几个传入频率的周期,以便您可以查看样本。在 10kHz 时,输入应每 0.1 ms 重复一次。您应该期望看到正弦波的每个周期有 5 个样本(0.1 ms / (0.02 ms/sample) = 5 个样本)。我只是将它从 -0.2 ms 绘制到 0.2 ms 以查看几个周期。通过添加“-o”作为绘图选项,您将在采样的任何位置看到“o”标记。

t = -0.0002:0.00002:0.0002;
f = 10000;
x = 4*sin(2*pi*f*t);
figure;
plot(t,x,'-o');

您可以尝试更改采样周期。例如,尝试将其除以 10。

t = -0.0002:0.000002:0.0002;
f = 10000;
x = 4*sin(2*pi*f*t);
figure;
plot(t,x,'-o');

推荐阅读