如何相移正弦波 - MATLAB?
How to phase shift a sinusoidal wave- MATLAB?
我想对正弦波进行相移,如下所示。
这里发生的是在红线点发生相移。因此,它不再遵循其自然路径(虚线),而是开始遵循偏移的路径(虚线)。
我试过如下编码。
clear;
t =(0:10000)/10000';
for ii = 1:length(t)
x(ii)=exp(i*2*100*t(ii));
if ii == 235 % point at which the phase shift occurs
x(ii) = x(ii)*exp(-i*(pi/4));
end
end
plot(t,real(x));
谁能告诉我代码中的错误?
clear;
t =(0:1000)/10000';
for ii = 1:length(t)
x(ii)=exp(i*2*100*t(ii));
if ii >= 235 % point at which the phase shift occurs
x(ii) = x(ii)*exp(i*(pi/4));
end
end
plot(t,real(x));
只需将 if 语句中的 == 更改为 >=。
结果如下
我想对正弦波进行相移,如下所示。
这里发生的是在红线点发生相移。因此,它不再遵循其自然路径(虚线),而是开始遵循偏移的路径(虚线)。
我试过如下编码。
clear;
t =(0:10000)/10000';
for ii = 1:length(t)
x(ii)=exp(i*2*100*t(ii));
if ii == 235 % point at which the phase shift occurs
x(ii) = x(ii)*exp(-i*(pi/4));
end
end
plot(t,real(x));
谁能告诉我代码中的错误?
clear;
t =(0:1000)/10000';
for ii = 1:length(t)
x(ii)=exp(i*2*100*t(ii));
if ii >= 235 % point at which the phase shift occurs
x(ii) = x(ii)*exp(i*(pi/4));
end
end
plot(t,real(x));
只需将 if 语句中的 == 更改为 >=。
结果如下