メインコンテンツ

vco

説明

y = vco(x,Fc,Fs) は、実数値の入力ベクトルまたは入力行列 x とサンプル レート Fs によって決定された周波数で振動する信号を作成します。x が行列の場合、vco では x の列に基づいて列が振動する行列が作成されます。

y = vco(x,[Fmin Fmax],Fs) では、-1 ~ 1 の間の x の値により、それぞれ Fmin Hz から Fmax Hz の振動が発生するように周波数変調範囲がスケーリングされます。

すべて折りたたむ

電圧制御発振器 (VCO) と 4 つのガウス原子で構成される 2 秒間の信号を生成します。瞬時周波数はチャープ関数によって変調されます。サンプル レートは 14 kHz です。

fs = 14000;
t = (0:1/fs:2)';

gaussFun = @(A,x,mu,f) exp(-(x-mu).^2/(2*0.01^2)).*sin(2*pi*f.*x)*A';
s = gaussFun([1 1 1 1],t,[0.2 0.5 1 1.75],[10 60 25 5]*100)/10;
x = vco(chirp(t+.1,0,t(end),3).*exp(-2*(t-1).^2),0.2*fs,fs);

s = s/10 + x;

生成した信号のスペクトログラムをプロットします。90% のオーバーラップを指定してスペクトル漏れを和らげます。

pspectrum(s,fs,"spectrogram",OverlapPercent=90,Leakage=0.5)

Figure contains an axes object. The axes object with title Fres = 164.0842 Hz, Tres = 15.6429 ms, xlabel Time (s), ylabel Frequency (kHz) contains an object of type image.

瞬間的な周波数が時間の三角形関数となる 10 kHz でサンプリングした 2 秒間の信号を生成します。

fs = 10000;
t = 0:1/fs:2;
x = vco(sawtooth(2*pi*t,0.75),[0.1 0.4]*fs,fs);

生成した信号のスペクトログラムをプロットします。0.80 の漏れを指定し、隣接するセグメント間のオーバーラップを 95% に指定します。

pspectrum(x,fs,"spectrogram",Leakage=0.80,OverlapPercent=95)

Figure contains an axes object. The axes object with title Fres = 106.1965 Hz, Tres = 15.7 ms, xlabel Time (s), ylabel Frequency (kHz) contains an object of type image.

入力引数

すべて折りたたむ

入力データ。実数値のベクトルまたは実数値の行列として指定します。x は、–11 の範囲です。ここで、x = –1 は周波数 0 の出力に、x = 0Fc に、x = 12*Fc にそれぞれ対応します。

入力信号を変調するために使用される搬送波周波数または基準周波数。実数の正のスカラーとして指定します。

周波数変調のレンジの下限と上限。実数ベクトルとして指定します。最良の結果を得るには、FminFmax は、0 ~ Fs/2 の範囲内にします。

メモ

vco では、modulate 関数を使用して、FM 変調が実行されます。

サンプル レート。正のスカラーで指定します。サンプル レートは単位時間あたりのサンプル数です。時間の単位が秒の場合、サンプル レートの単位は Hz です。

  • Fs を空配列 [] として指定すると、vco は入力信号 x のサンプル レートを 1 Hz と仮定します。

  • Fs を指定しない場合、vco は入力信号 x のサンプル レートを 2π ラジアン/サンプルと仮定します。

出力引数

すべて折りたたむ

発振出力信号。実数値のベクトルまたは実数値の行列として返されます。yx と同じサイズで、1 と同じ振幅です。

拡張機能

すべて展開する

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2006a より前に導入

すべて展開する

参考

|