如何通过 MATLAB 绘制离散时间信号

How to plot discrete time signal by MATLAB

给定消息信号s(t) = 2cos(40*pi*t) - sin(12*pi*t),如何在2秒内绘制s(t),2秒后s(t) = 0,频率=200Hz,采样数=500点?

以特定频率和设定的样本数对信号进行采样

这个问题有几个部分。第一项任务是创建一个由 Sampling_Period 分隔的向量 t。这里 Sampling_Frequency 等于 200Hz,因此 Sampling_Period = 1/Sampling_Frequency; 等于 0.005 秒。此向量应 运行 从 0.005 秒(样本 1)到 2.5 秒(样本 500)。第二个任务是创建一个阶跃函数,表示为 u。这里我使用了一个匿名函数,时间后等于0,t大于2秒。通过将此阶跃函数与正弦曲线相乘,创建了 2 秒后为 0 的函数的 t运行 版本。


抽样约定:
采样频率 = 200Hz
采样周期 = 1/200Hz = 0.005s
开始时间 = 0.005s
结束时间=(样本数)×(采样周期)=(500个样本)×(0.005s)= 2.5s

%Sampling properties%
Sampling_Frequency = 200; 
Sampling_Period = 1/Sampling_Frequency;
Number_Of_Samples = 500;

%Creating the time vector%
Start_Time = 0;
End_Time = Number_Of_Samples*Sampling_Period;
t = (Sampling_Period: Sampling_Period: End_Time);

%Step function that ends at 2s%
u = @(t) (t <= 2);
s = @(t) (2*cos(40*pi*t) - sin(12*pi*t)).*u(t);

stem(t,s(t),'Marker','.');
title("Sinusoid Sampled at " + num2str(Sampling_Frequency) + " Hz and the First " + num2str(Number_Of_Samples) + " Samples");
xlabel("Time (s)"); ylabel("Amplitude");

运行 使用 MATLAB R2019b