最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

dsp.SineWave

説明

dsp.SineWave System object™ は実数または複素数のマルチチャネルの正弦波信号を生成します。各出力チャネルには独立した振幅と周波数および位相があります。

実数正弦波および複素正弦波ともに、Amplitudeプロパティ、FrequencyプロパティおよびPhaseOffsetプロパティをスカラーまたは長さが N のベクトルにすることができます。ここで、N は出力でのチャネル数です。これらのプロパティの少なくとも 1 つを長さが N のベクトルとして指定する場合、他のプロパティに対して指定されたスカラー値は N の各チャネルに対して適用されます。

離散時間正弦波信号を生成するには、次のようにします。

  1. dsp.SineWave オブジェクトを作成し、そのプロパティを設定します。

  2. 関数と同様に、引数を指定してオブジェクトを呼び出します。

System object の機能の詳細については、System object とは (MATLAB)を参照してください。

作成

説明

sine = dsp.SineWave は、振幅 1、周波数 100 Hz および位相オフセット 0 で実数値正弦波を生成する正弦波オブジェクトを作成します。既定の設定では、正弦波オブジェクトは 1 つのサンプルのみを生成します。

sine = dsp.SineWave(Name,Value) は指定されたそれぞれのプロパティ セットを指定された値に設定して、正弦波オブジェクトを作成します。各プロパティを、一重引用符で囲みます。

例: sine = dsp.SineWave('Amplitude',2);

sine = dsp.SineWave(amp,freq,phase,Name,Value) は、Amplitudeプロパティが ampFrequencyプロパティが freqPhaseOffsetプロパティが phase、他の指定のプロパティが指定の値に設定された正弦波オブジェクトを作成します。

プロパティ

すべて展開する

特に指定がない限り、プロパティは "調整不可能" です。つまり、オブジェクトの呼び出し後に値を変更することはできません。オブジェクトは呼び出すとロックされ、ロックを解除するには関数 release を使用します。

プロパティが "調整可能" の場合、その値をいつでも変更できます。

プロパティ値の変更の詳細については、System object を使用した MATLAB でのシステム設計 (MATLAB)を参照してください。

正弦波の振幅。次のいずれかを指定します。

  • scalar –– スカラーがすべてのチャネルに適用されます。

  • vector –– 長さ N のベクトルに、N 個の出力チャネルそれぞれの正弦波の振幅が含まれます。ベクトルの長さはFrequencyプロパティとPhaseOffsetプロパティで指定した長さと同じでなければなりません。

調整可能: Yes

依存関係

このプロパティは、Method'Trigonometric function' または 'Differential' に設定した場合にのみ調整可能です。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

正弦波の周波数 (Hz 単位)。次のいずれかを指定します。

  • scalar –– スカラーがすべてのチャネルに適用されます。

  • vector –– 長さ N のベクトルに、N 個の出力チャネルそれぞれの正弦波の周波数が含まれます。ベクトルの長さはAmplitudeプロパティとPhaseOffsetプロパティで指定した長さと同じでなければなりません。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

正弦波の位相オフセット (ラジアン単位)。次のいずれかを指定します。

  • scalar –– スカラーがすべてのチャネルに適用されます。

  • vector –– 長さ N のベクトルに、N 個の出力チャネルそれぞれの正弦波の位相オフセットが含まれます。ベクトルの長さはAmplitudeプロパティとFrequencyプロパティで指定した長さと同じでなければなりません。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

波形が実数か複素数かを示すフラグ。次のいずれかを指定します。

  • false –– 波形出力は実数です。

  • true –– 波形出力は複素数です。

正弦波を生成するために使用される手法。次のいずれかを指定します。

  • 'Trigonometric function' –– オブジェクトは、連続時間関数をサンプリングして正弦波を計算します。

  • 'Table lookup' –– オブジェクトはシミュレーションの開始時に各出力正弦波の一意のサンプルを事前計算し、必要に応じてサンプルをメモリから呼び出します。

  • 'Differential' –– オブジェクトはインクリメンタル アルゴリズムを使用します。このアルゴリズムは、前のサンプル時間で計算された出力値と事前計算された更新項目に基づいて出力サンプルを計算します。

速度またはメモリに対する正弦値テーブルの最適化。次のいずれかに指定します。

  • 'Speed' –– テーブルに k 要素が含まれます。この k は正弦波の 1 完全周期での入力サンプル数です。各正弦波の期間は 1/Fs の整数倍でなければなりません。ここで、Fs はSampleRateプロパティの値です。つまり、Frequencyプロパティの各要素は Fs/m の形式でなければなりません。ここで m は 1 より大きい整数です。

  • 'Memory' –– テーブルに k/4 要素が含まれます。

依存関係

このプロパティは、Method プロパティを 'Table lookup' に設定した場合にのみ適用されます。

出力信号のサンプルレート (Hz 単位)。正のスカラーで指定します。

例: 44100

例: 22050

出力フレームにバッファリングする、各正弦波からの連続するサンプル数。正の整数として指定します。

例: 1000

例: 5000

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

正弦波出力のデータ型。'double''single'、または 'Custom' として指定します。

固定小数点プロパティ

出力の語長と小数部の長さ。語長が 16 の自動符号付きの数値型に指定します。

例: numerictype([],32,30)

例: numerictype([],16,15)

依存関係

このプロパティは、Methodプロパティを 'Table lookup'OutputDataTypeプロパティを 'Custom' に設定した場合にのみ適用されます。

使用法

R2016b より前のバージョンでは、関数 step を使用して System object アルゴリズムを実行します。step に対する引数は作成したオブジェクトであり、この節で示す引数が次に続きます。

たとえば、y = step(obj,x)y = obj(x) は同等の演算を実行します。

説明

sineOut = sine() は正弦波出力 sineOut を作成します。

出力引数

すべて展開する

正弦波出力。ベクトルまたは行列で返されます。SamplesPerFrameプロパティによって、出力行列の行数が決まります。FrequencyプロパティまたはPhaseOffsetプロパティがベクトルの場合、ベクトルの長さで出力行列の列 (チャネル) の数が決まります。Frequency プロパティまたは PhaseOffset プロパティがスカラーの場合、出力行列のチャネル数は 1 になります。

OutputDataTypeプロパティは、出力データ型を設定します。

データ型: single | double | fi

オブジェクト関数

オブジェクト関数を使用するには、System object を最初の入力引数として指定します。たとえば、obj という名前の System object のシステム リソースを解放するには、次の構文を使用します。

release(obj)

すべて展開する

stepSystem object のアルゴリズムの実行
releaseリソースを解放し、System object のプロパティ値と入力特性の変更を可能にします。
resetSystem object の内部状態のリセット

すべて展開する

メモ: R2016a 以前のリリースを使用している場合、それぞれのオブジェクトの呼び出しを等価な step 構文で置き換えてください。たとえば、obj(x) step(obj,x) になります。

振幅 2、周波数 10 Hz および初期位相 0 で正弦波を生成します。

sine1 = dsp.SineWave(2,10);
sine1.SamplesPerFrame = 1000;
y = sine1();
plot(y)

pi/2 ラジアンの位相で 2 つの正弦波オフセットを生成します。

sine2 = dsp.SineWave;
sine2.Frequency = 10;
sine2.PhaseOffset = [0 pi/2];
sine2.SamplesPerFrame = 1000;
y = sine2();
plot(y)

詳細

すべて展開する

アルゴリズム

すべて展開する

拡張機能

R2012a で導入