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

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

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 26 Oct 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」 を出力
なお、本サンプルモデルは、フレームベース信号には対応しておりませんので、ご注意ください。

More Answers (0)

Categories

Find more on ブロック ライブラリ in Help Center and File Exchange

Products


Release

R14SP1

Community Treasure Hunt

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

Start Hunting!