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

Ric*_*k T 0 matlab plot trigonometry octave

我可以在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));
Run Code Online (Sandbox Code Playgroud)

Ps:我使用octave 4.0,就像matlab一样 情节

gno*_*ice 5

您在第二个子图中看到的是每个周期采样减少的结果.您正在增加的频率y_b相对于y_a通过的100倍,但仍然使用的时间点相同的载体t,这意味着你有1/100 点,每个周期的数量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);
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述