もっと詳しく

この記事では、MATLAB の square() 関数を使用して方形波を生成する方法について説明します。

この科学計算用の強力なプログラミング言語には、さまざまな形状の波を生成する関数の広範なライブラリがあります。

次のセクションでは、square() 関数を使用して方形波を生成する方法について説明します。 以下では、さまざまなパラメーターで方形波を作成し、MATLAB 環境でグラフィカルに表示する方法の実際の例と写真を示します。

MATLAB 二乗関数の構文

x = 正方形 ( t )
x = 正方形 ( t、義務 )

MATLAB 二乗関数の説明

MATLAB square() 関数は、時間ベクトルまたは行列から方形波を生成します。 この関数を使用すると、DC パルス幅変調 (PWM) モーターを制御するために電子モデルでよく使用されるデューティ サイクル値を設定することもできます。 MATLAB 関数 square() は、時間行列「t」から「x」で方形波を生成します。 「x」で生成される波の周期は、「t」の要素にわたって 2pi です。 「x」の出力値は、負の半サイクルの場合は -1、正の半サイクルの場合は 1 です。 デューティ サイクルは、関数が呼び出されたときに入力された正のサイクルのパーセンテージを送信する「duty」入力を介して設定されます。

MATLAB で波を生成するための時間ベクトルの作成方法とその概要

この関数で方形波がどのように生成されるかを見る前に、ベクトルと時間行列とは何かを簡単に説明します。 これらは、波形の形式や生成元の関数に関係なく、wave の作成に使用されるすべての関数の入力引数の一部です。 以下は、継続時間の 1 秒を表す時間ベクトル「t」です。

t = 0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000

10 個の要素を持つ時間ベクトルは 10 Hz のサンプリング レートに対応し、実際には推奨されないことを明確にすることが重要です。 したがって、私たちはそれを作ります それだけ 例として、ベクトルのサンプリングが 1Kz であるため、私たちが話していることをよりよく見ることができます。 画面に表示される 1000 個の要素で構成されます。 サンプリング レートが低いと、以下に示すように波形が歪みます。


次に、MATLAB がこの種の一定間隔の時間ベクトルを作成する方法の 1 つを表す式を見てみましょう。

t = 時間 開始: 間隔 秒: 時間 終わり;

したがって、このベクトルを生成するには、次のコード行を記述する必要があります。

MATLAB Square 関数を使用して方形波を作成する方法

この例では、square() 関数を使用して方形波を作成します。 この波の持続時間は 1 秒、周波数は 5Hz、振幅は +1、-1 です。 これを行うには、まず、1KHz のサンプリング周波数または 1ms の間隔で 1 秒間の時間ベクトル「t」を作成します。

次に、波の周波数を指定します。 この値を設定する square() の入力引数はラジアンで表現されるため、Hz からラジアンに変換するか、後者で表現する必要があります。 実用上の理由から、常に Hz で周波数を表す方が適切です。 したがって、この例では、次のように変換を行います。

時間ベクトル「t」を作成し、周波数「rad」をラジアンに変換したら、square() 関数を次のように呼び出します。

MATLAB 環境で波形をグラフ化するには、次の関数を使用します。

プロット ( t、x );
( [ 0 11.2 1.2 ] )
グリッド( “の上” );

この場合、デューティ サイクル入力が使用されないため、この値はデフォルトで 50% になります。 したがって、square() は対称的な波を生成します。 次のフラグメントをコピーしてコマンド コンソールに貼り付け、生成された波形を視覚化します。

% ここで波が発生します
t = 0 : 0.001 : 1;
ラジアン =5 .* 2 .* パイ;
x = 正方形 ( ラド。* t );

% ここに波がグラフ化されています
プロット ( t、x );
( [ 0 11.2 1.2 ] );
グリッド ( “の上” );

次の図は、MATLAB 環境でプロットされた square() 関数によって生成された波形を示しています。

MATLAB 関数 square() を使用して波を生成するときに、周波数、振幅、デューティ サイクル、およびサンプリング レートを制御する方法。

この例では、周波数、振幅、デューティ サイクル、およびサンプリング レートのパラメーターを制御する方法を示します。 この目的のために、これらの値を入力し、入力パラメータから生成された波形を自動的にグラフ化するために使用される単純なコンソール アプリケーションを作成します。 コンソールからこれらのパラメーターを入力するには、prompt() および input() 関数を使用します。 これらのパラメータを次の変数に保存します。

s_rate: サンプリング周波数 (Hz)

頻度: Hz単位の波の周波数

アンプ: 波の振幅

d_サイクル: デューティサイクル

これらの変数をそれぞれ処理して、時間ベクトルのパラメータ「t_sample」、square() 関数への入力引数「rad」と「dc」、および波の振幅を調整する乗算係数「amp」を設定します。

以下に、このアプリケーションの完全なスクリプトを示します。 読みやすくするために、コードを 6 つのブロックに分割し、最初のコメントでそれぞれが何をするかを説明しています。

その間 1

% ここでサンプリングレートを入力します “s_rate” Hzと除算 1
% この値によって、 時間 サンプル間の間隔
% 表現した “t_サンプル” を作成します。 時間 ベクター。
プロンプト = 「サンプルレートを入力してください」;
s_rate = 入力 (促す);
t_サンプル = 1 ./ s_rate;
t = 0: t_サンプル: 1;

% ここで周波数を入力します 「フ」 波のヘルツと変換します。
% それをラジアンに 「ラド」.
プロンプト = 「周波数を入力してください」;
f = 入力 (促す);
ラジアン = f .* 2 .* パイ;

% ここでデューティサイクルに入ります 「直流」 表現した なので パーセンテージ。
プロンプト = 「デューティサイクルを入力してください」;
直流 = 入力 (促す);

% ここで私たちは 設定 波の振幅。
プロンプト = 「振幅を入力してください」;
アンプ=入力 (促す);

% ここでは、 関数 四角() パラメータ付き 「ラド」 それ
% 周波数を設定し、 「直流」 どれの デューティサイクルを設定します。 後で
% 結果に格納された値を掛けます 「アンプ」
% 設定 への波の振幅 “バツ”.
x = アンプ *四角 (ラド * t、 直流);

% ここでは、生成された波をグラフにします。
プロット (t、x);
([0 1 -5 5])
グリッド (“の上”);
終わり

スクリプトを作成し、このコードを貼り付けて、「実行」を押します。 アプリケーションを閉じるには、Ctrl+c を押します。 次の画像では、コマンド コンソールを介してアプリケーションに入力されたさまざまなパラメーターを使用して結果として得られる wave を確認できます。


この画像は、サンプリング レート 1Kz、デューティ サイクル 50%、ピーク ツー ピーク振幅 2 の 8 Hz 波に対応します。


この画像は、サンプリング レート 10Kz、デューティ サイクル 85%、ピーク ツー ピーク振幅 6 の 10 Hz 波に対応します。


この画像は、サンプリング レート 1Kz、デューティ サイクル 15%、ピーク ツー ピーク振幅 8 の 3 Hz 波に対応します。

結論

この記事では、MATLAB 関数 square() を使用して方形波を生成する方法について説明しました。
また、このタイプの関数の入力引数を形成する時間ベクトルと行列の簡単な説明も含まれているため、MATLAB の Signal Analysis Toolbox のほとんどの波形発生器がどのように機能するかを完全に理解できます。 この記事には、square() 関数が MATLAB でどのように機能するかを示す実用的な例、グラフ、およびスクリプトも含まれています。 この MATLAB 記事がお役に立てば幸いです。 その他のヒントや情報については、Linux Hint の他の記事を参照してください。

The post MATLAB の二乗関数 appeared first on Gamingsym Japan.