Simulink上で​、10進数の信号を2​進数のビット列として​変換するにはどうすれ​ばよいですか?

24 visualizzazioni (ultimi 30 giorni)
MathWorks Support Team
MathWorks Support Team il 25 Ott 2013
Simulink上で、10進数の信号を2進数のビット列として変換するにはどうすればよいですか?

Risposta accettata

MathWorks Support Team
MathWorks Support Team il 26 Ott 2013
Communications Blocksetのブロックを使用する方法と、Simulinkの基本ブロックを使用する方法と2通り紹介します。
1. Communications Blocksetのブロックを使用する場合
Integer to Bit Converterブロック(Communications BlocksetのUtility Blocksライブラリにあります)を用いると、10進数を2進数のデータ列へ変換できます。Integer to Bit Converterブロックを用いたモデル(4ビット入力)の様子を以下に示します。
2. Simulinkの基本ブロックを使用する場合
一例として、For Iteration Subsystemブロックを使用してモデリングする方法があります。ページ下部のサンプルモデルをダウンロードすることができます。
(サンプルプログラム:int2bit.mdl )
(注意)ファイルのダウンロードはダウンロード対象のリンクを右クリックし「対象をファイルに保存」を選択してダウンロードを行ってください。
下図に示すサンプルモデル内の水色のサブシステム(Interger2Bit Convertorブロック)が、10進数から2進数へ変換するブロックです。ブロックをダブルクリックすると、ビット数を指定するウィンドウが起動します。
ここでサブシステムはマスク化されており、内部は次のようにモデリングされています。
上のモデル例では次のフローで10進数から2進数列に変換しています。
「13」 と 「2^3」 を比較 13 ≧ 2^3 を満たすので 「1」 を出力
mod(13,2^3) を計算 ⇒ 剰余 5
「5」 と 「2^2」 を比較 5 ≧ 2^2 を満たすので 「1」 を出力
mod(5,2^2) を計算 ⇒ 剰余 1
「1」 と 「2^1」 を比較 1 ≧ 2^1 を満たさないので 「0」 を出力
mod(1,2^1) を計算 ⇒ 剰余 1
「1」 と 「2^0」 を比較 1 ≧ 2^0 を満たすので 「1」 を出力
なお、本サンプルモデルは、フレームベース信号には対応しておりませんので、ご注意ください。

Più risposte (0)

Categorie

Scopri di più su ブロック ライブラリ in Help Center e File Exchange

Prodotti


Release

R14SP1

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!