代码之家  ›  专栏  ›  技术社区  ›  Rick T

csc(余割)周期方程及其意外结果

  •  0
  • Rick T  · 技术社区  · 6 年前

    我可以在2秒内每秒绘制1(余弦),看起来很好( 顶部绘图 ). 但当我绘制100个csc(余弦)信号的频率时 我期望/想要100个余弦信号,它们只是重复相同的信号,就像绘制y=。8*sin(100*t)即可 但那没有发生我做错了什么?请参见下面的代码和绘图。

    clear, clc
    fs=8000
    len_of_sig=2; %length of signal in seconds
    t=linspace(0,2*pi*len_of_sig,fs*len_of_sig);
    y_a=0.01*csc(1*t);
    y_a(y_a >=1) = 1; %used to limit amplitude
    y_a(y_a <=-1) = -1;
    
    y_b=0.01*csc(100*t);
    y_b(y_b >=1) = 1;
    y_b(y_b <=-1) = -1;
    
    t2=t./(2*pi); %converts time in radians to seconds
    subplot(2,1,1);plot(t2(1:end),y_a(1:end));
    subplot(2,1,2);plot(t2(1:end),y_b(1:end));
    

    Ps:我正在使用类似于matlab的倍频程4.0 plot

    1 回复  |  直到 6 年前
        1
  •  5
  •   gnovice    6 年前

    您在第二个子批次中看到的是每个周期采样减少的结果。您正在增加 y_b 相对于 y_a 乘以100,但仍使用相同的时间点向量 t ,意味着你有1/100 th公司 中每个循环的点数 y\U b . 每个周期中这些较少的点落在与不连续点略有不同的偏移处,这就是上面的模式。

    您可以通过对 y\U b :

    t_up = linspace(0, 2*pi*len_of_sig, 100*fs*len_of_sig);
    y_b = 0.01*csc(100*t_up);
    y_b(y_b >= 1) = 1;
    y_b(y_b <= -1) = -1;
    subplot(2, 1, 2); plot(t_up./(2*pi), y_b);
    

    enter image description here