csc(cosecant)周期方程和意外结果

时间:2018-01-12 20:51:26

标签: matlab plot octave trigonometry

我可以在2秒内每秒绘制一次(共同割线)并且看起来很好(顶部情节)。但是当我绘制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:我正在使用octave 4.0,就像matlab一样 plot

1 个答案:

答案 0 :(得分:5)

您在第二个子图中看到的是每个周期采样减少的结果。您将y_b相对于y_a的频率提高了100倍,但仍然使用相同的时间点矢量t,这意味着你有1/100 th < / sup> y_b中每个周期的点数。每个周期的这些较少的点落在与不连续点略有不同的偏移处,为您提供上述模式。

您可以使用y_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