【问题标题】:How to plot discrete time signal by MATLAB如何通过 MATLAB 绘制离散时间信号
【发布时间】: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


    【解决方案1】:

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

    这个问题有几个部分。第一个任务是创建一个由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 运行

    【讨论】:

    • 你的回答很棒,但我怎么能赞成并接受你的回答呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    相关资源
    最近更新 更多