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

조회 수: 24 (최근 30일)
MathWorks Support Team
MathWorks Support Team 2013년 10월 25일
답변: MathWorks Support Team 2013년 10월 25일
Simulink上で、10進数の信号を2進数のビット列として変換するにはどうすればよいですか?

채택된 답변

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 ブロック ライブラリ에 대해 자세히 알아보기

제품


릴리스

R14SP1

Community Treasure Hunt

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

Start Hunting!