Main Content

comm.DiscreteTimeVCO

可変周波数正弦波を生成する

説明

DiscreteTimeVCO (電圧制御発振器) オブジェクトは、静止周波数プロパティからの周波数シフトが入力信号に比例する信号を生成します。入力信号は電圧として解釈されます。

可変周波数正弦波は次により生成します。

  1. 離散時間電圧制御発振器オブジェクトを定義および設定します。構築を参照してください。

  2. step を呼び出して、comm.DiscreteTimeVCO のプロパティに従って、可変周波数正弦波を生成します。step の動作は、ツールボックスの各オブジェクト固有のものです。

メモ

R2016b 以降では、step メソッドを使用して、System object™ によって定義された演算を実行する代わりに、引数を関数であるかのように使ってオブジェクトを呼び出すことができます。たとえば、y = step(obj,x)y = obj(x) は同等の演算を実行します。

構築

H = comm.DiscreteTimeVCO は、離散時間電圧制御発振器 (VCO) System object H を作成します。このオブジェクトは、指定の静止周波数から入力信号に比例する値にシフトした周波数の正弦波信号を生成します。

H = comm.DiscreteTimeVCO(Name,Value) は、指定の各プロパティが指定の値に設定された離散時間 VCO オブジェクト H を作成します。(Name1,Value1,...,NameN,ValueN) のように、追加の名前と値のペアの引数を任意の順番で指定できます。

プロパティ

OutputAmplitude

出力信号の振幅

出力信号の振幅を倍精度または単精度のスカラー値として指定します。既定の設定は 1 です。このプロパティは調整可能です。

QuiescentFrequency

入力が 0 のときの出力信号の周波数

出力信号の Hz 単位の静止周波数を倍精度または単精度、実数のスカラー値として指定します。既定の設定は 10 です。このプロパティは調整可能です。

Sensitivity

出力信号の周波数シフトの感度

入力に対する出力信号周波数シフトの感度を倍精度または単精度の、実数のスカラー値として指定します。既定の設定は 1 です。この値は入力電圧およびその結果の静止周波数値からのシフトをスケーリングします。プロパティは、電圧当たりの感度を Hz 単位で計測します。このプロパティは調整可能です。

InitialPhase

出力信号の初期位相

出力信号のラジアン単位の初期位相を倍精度または単精度の、実数のスカラー値として指定します。既定の設定は 0 です。

SampleRate

入力のサンプルレート

入力の Hz 単位のサンプルレートを倍精度または単精度の、正のスカラー値として指定します。既定の設定は 100 です。

メソッド

step可変周波数正弦波を生成する
すべての System object に共通
release

System object のプロパティ値の変更の許可

reset

System object の内部状態をリセットします。

すべて折りたたむ

信号ソース System object™ を作成します。

reader = dsp.SignalSource;

ランダム データを生成し、矩形パルス整形を適用します。

reader.Signal = randi([0 7],10,1);
reader.Signal = rectpulse(reader.Signal,100);

信号ロガーおよび離散時間 VCO System object を作成します。

logger = dsp.SignalSink;
discreteVCO = comm.DiscreteTimeVCO( ...
    'OutputAmplitude',8, ...
    'QuiescentFrequency',1);

FSK 信号を生成します。

while(~isDone(reader))
    sig = reader();
    y = discreteVCO(sig);
    logger(y);
end
oscsig = logger.Buffer;

生成した FSK 信号をプロットします。

t = (0:length(oscsig)-1)'/discreteVCO.SampleRate;
plot(t,reader.Signal,'--r', 'LineWidth',3)
hold on
plot(t,oscsig,'-b');
hold off
xlabel('Time (s)')
ylabel('Amplitude (V)')
legend('Input Signal','FSK Signal','location','se')

Figure contains an axes object. The axes object with xlabel Time (s), ylabel Amplitude (V) contains 2 objects of type line. These objects represent Input Signal, FSK Signal.

アルゴリズム

このオブジェクトは、Discrete-Time VCO ブロックのリファレンス ページで説明されているアルゴリズム、入力、および出力を実装しています。ただし、このオブジェクトとこれに対応するブロックは、キャスト手法と精度演算の問題における以下の違いのために、単精度入力またはプロパティ値に対して正確に同じ出力を生成しない可能性があります。

  • ブロックは、常に中間の算術演算の結果を入力データ型にキャストします。オブジェクトは中間結果をキャストせず、MATLAB がデータ型を決定します。オブジェクトは、最終結果を入力データ型にキャストします。

  • SampleRate オブジェクト プロパティは単精度または倍精度で指定できます。ブロックはこれを許可しません。

  • 混在するデータ型のある 2 つより多いオペランドの算術演算では、演算の順序によっては結果が異なる可能性があります。つまり、次の計算もブロックとオブジェクトの出力の差異に影響することがあります。

    input * sensitivity * sampleTime

  • ブロックは、左から右にこの計算を実行します。ただし、sensitivity * sampleTime が 1 回きりの計算なので、オブジェクトはこれを次の方式で計算します。

    input * (sensitivity * sampleTime)

拡張機能

バージョン履歴

R2012a で導入