2016-03-28 11 views
0

sin波/余弦波を再帰的に乗算しようとしていますが、私の答えがどうして違うのか分かりません。 Y2は私が取得しようとしているものですが、赤YあるループFORループFOR Yを修正するためにどのように任意のアイデアを生み出している何ですか?以下のプロットとコードを参照してください。sin波/ cos波をmatlab/octaveのループで再帰的に乗算する

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 

Plot PS:私はMathWorks社のMATLAB

すべての反復で
+0

あなた 'for'ループは結構ですが、あなたの考えは間違っている:^ 4


これが解決策になります。 ;) –

答えて

3

あなたがここに8倍

y = .5*sin(2*pi*2*t); 
for ii=1:1:3  
    y=y.*y; 

ii=1:1:3を乗算しているが含まれており、あなたがy=y.*y 3回行います。

それはY^4 = y^2 * YがY * Y^8 = Y^4になる* 2

三時間になるY = y^2、

二時間となる最初の時間に

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 
2

、yのようなものですオクターブ3.8.1を使用しています* 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 

おそらく、このコードが必要です。

+2

少なくともMatlabでは 'y = y。^ 3;'に単純化することもできます。彼が間違っていたことの説明も良いでしょう。 ;) –

関連する問題