我试图递归地增加sin波/余弦波,但我不确定为什么我的答案如此不同。 蓝色中的 Y2 是我想要的,但红色中 Y 的FOR循环是什么任何想法如何修复FOR循环 Y ?看下面的情节和代码?
Fs = 8000;% Sampling frequency
t=linspace(0,1,Fs);
y=zeros(1,length(t));
y = .5*sin(2*pi*2*t);
for ii=1:1:3
y=y.*y;
end
plot(y,'r')
hold on
y2=(.5*sin(2*pi*2*t)).* (.5*sin(2*pi*2*t)).*(.5*sin(2*pi*2*t)); %should look like this
plot(y2,'b') %both plots should look like this
答案 0 :(得分:3)
你在这里乘以八次
y = .5*sin(2*pi*2*t);
for ii=1:1:3
y=y.*y;
ii=1:1:3
具有包容性,因此您执行y=y.*y
三次。
第一次变成y = y ^ 2,
第二次变成y ^ 4 = y ^ 2 * y * 2
第三次变为y ^ 8 = y ^ 4 * y ^ 4
这将是一个解决方案:
Fs = 8000;% Sampling frequency
t=linspace(0,1,Fs);
y=zeros(1,length(t));
y = .5*sin(2*pi*2*t);
result = ones(1,length(t));
for ii=1:1:3
result=result.*y;
end
plot(result,’r’)
hold on
y2=(.5*sin(2*pi*2*t)).* (.5*sin(2*pi*2*t)).*(.5*sin(2*pi*2*t)); %should look like this
plot(y2,'b') %both plots should look like this
答案 1 :(得分:2)
在所有迭代中,y。* y使更新后的y为正方形。
Fs = 8000;% Sampling frequency
t=linspace(0,1,Fs);
y=ones(1,length(t));
x = .5*sin(2*pi*2*t);
for ii=1:1:3
y=y.*x;
end
plot(y,'r')
hold on
y2=(.5*sin(2*pi*2*t)).* (.5*sin(2*pi*2*t)).*(.5*sin(2*pi*2*t)); %should look like this
plot(y2,'b') %both plots should look like this
也许,你想要这个代码。