【发布时间】:2020-12-05 03:47:42
【问题描述】:
给定消息信号s(t) = 2cos(40*pi*t) - sin(12*pi*t),如何在2秒内绘制s(t),2秒后,s(t) = 0频率=200Hz,采样数=500点?
【问题讨论】:
标签: matlab plot signal-processing
给定消息信号s(t) = 2cos(40*pi*t) - sin(12*pi*t),如何在2秒内绘制s(t),2秒后,s(t) = 0频率=200Hz,采样数=500点?
【问题讨论】:
标签: matlab plot signal-processing
这个问题有几个部分。第一个任务是创建一个由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 的函数的截断版本。
抽样约定:
采样频率 = 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 运行
【讨论】: