Main Content

square

説明

x = square(t) では、時間配列 t の要素に対して、周期 2π をもつ矩形波が生成されます。square は正弦関数と似ていますが、-1 と 1 の値をもつ矩形波が生成されます。

x = square(t,duty) ではデューティ比 duty をもつ矩形波が生成されます。"デューティ比" とは、矩形波が正となる信号サイクルの割合を指します。

すべて折りたたむ

0 から 3π の間に等間隔に並んだ 100 個の数値から成るベクトルを作成します。周期が 2π の矩形波を生成します。

t = linspace(0,3*pi)';
x = square(t);

矩形波をプロットして、正弦を重ね合わせます。x 軸を π で正規化します。生成された矩形波では、n が偶数の場合は 1 の値の間隔は [nπ,(n+1)π)、n が奇数の場合は -1 の値の間隔は [nπ,(n+1)π) となります。この波形は 0 の値をもちません。

plot(t/pi,x,'.-',t/pi,sin(t))
xlabel('t / \pi')
grid on

計算を繰り返しますが、今度は -π2π の間に等間隔に並んだ 121 個の数値において square(2*t) を評価します。振幅を 1.15 に変更します。波形をプロットして、同じパラメーターをもつ正弦を重ね合わせます。この新しい波形は、t=0 では負、端点 -π および 2π では正となります。

t = linspace(-pi,2*pi,121);
x = 1.15*square(2*t);

plot(t/pi,x,'.-',t/pi,1.15*sin(2*t))
xlabel('t / \pi')
grid on

1 kHz で 70 ms 間サンプリングされた 30 Hz の矩形波を生成します。37% のデューティ比を指定します。分散 1/100 でホワイト ガウス ノイズを付加します。

t = 0:1/1e3:0.07;
y = square(2*pi*30*t,37)+randn(size(t))/10;

波のデューティ比を計算します。波形をプロットして、デューティ比に注釈を付けます。

dutycycle(y,t)

ans = 0.3639

入力引数

すべて折りたたむ

時間配列。ベクトル、行列、または N 次元配列として指定します。square は、サイズが 1 より大きい最初の配列次元 t に沿って動作します。

データ型: single | double

デューティ比。0 ~ 100 の実数スカラーとして指定します。

データ型: single | double

出力引数

すべて折りたたむ

矩形波。ベクトル、行列または N 次元配列として返されます。

拡張機能

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

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

バージョン履歴

R2006a より前に導入

すべて展開する