0

同じトレース内でいくつかの異なる振幅エポックで正弦関数を生成しようとしています。

たとえば、2 Hz の正弦波を振幅 1 で 10 秒間、振幅 10 で 10 秒間、その後さらに 10 秒間振幅 1 に戻します。

ここの例を編集してみました: http://www.mathworks.se/help/slcontrol/ug/frest.sinestream.html しかし、コードでエラーが発生しました:

input = frest.Sinestream('Frequency',[2 2 2],...
         'Amplitude',[1 10 1],...
         'FreqUnits','Hz',...
         'SamplesPerPeriod',[40 40 40],...
         'RampPeriods',[0 0 0],...
         'SettlingPeriods',[1 1 1]);
      plot(input)

これから受け取るエラーは次のとおりです。

Error using frest.Sinestream/set.Frequency (line 127)
The "Frequency" parameter of a sinestream signal should be a double vector consisting of unique values.

Error in frest.Sinestream/initializeParams (line 508)
                obj.(varargin{2*ct-1}) = varargin{2*ct};

Error in frest.Sinestream (line 80)
            obj = initializeParams(obj,inputparams{:});

Error in sine (line 1)
input = frest.Sinestream('Frequency',[2 2 2],...
4

1 に答える 1

3

私はそれがこのように簡単かもしれないと思います:

x=0:0.005:30;
y = sin(x*2000);

idx = 10<x & x < 20;
y(idx) = 10*y(idx);

plot(x,y)

もちろん、値がゼロでない場合、変化点で大まかな遷移が発生する可能性があります。これは、次の例で説明されています。

x=0:0.005:30;
y = sin(x);

idx = 10<x & x < 20;
y(idx) = 10*y(idx);

plot(x,y)
于 2013-11-05T13:13:47.870 に答える