csc(余割)周期方程和意想不到的结果

csc (cosecant) periodic equation and unexpected results

我可以在 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:我使用的是 octave 4.0,它类似于 matlab

您在第二个子图中看到的是每个周期采样减少的结果。您将 y_b 相对于 y_a 的频率增加了 100 倍,但仍使用相同的时间点向量 t,这意味着您有 1/100 th 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);