Simulink上で​、「0」「1」の信号​を2進数のビット列と​して解釈し、これを1​0進数へ変換するには​どうすればよいですか​?

Simulink上で、「0」「1」の信号を2進数のビット列として解釈し、これを10進数へ変換するにはどうすればよいですか?

 Accepted Answer

■Communications Blocksetを使用する場合
Bit to Integer Converterブロック(Communications BlocksetのUtility Blocksライブラリにあります)を用いると、「0」「1」信号を2進数のデータ列と解釈し10進数へ変換できます。Bit to Integer Converterブロックを用いたモデル(4ビット入力)の様子を以下に示します。
■Communications Blocksetを使用しない場合
入力信号の「0」「1」を多項式の係数として考え、モデルを作成します。例えば2進数4ビットの入力信号「1,0,1,0」の場合、10進数に変換するには次の計算を行います。
  y=1*2^3 + 0*2^2 + 1*2^1 +0*2^0
 つまり、[1 , 0 , 1 , 0]と[2^3 , 2^2 , 2^1 , 2^0]の行列の乗算を行います。
[2^3 , 2^2 , 2^1 , 2^0]のベクトルは以下のプログラムで作成できます。
(例:4ビットの入力信号の場合)
bit_length=4;
coef=2.^[bit_length-1:-1:0];
この変数coefを用いたモデルの例を以下に示します。

More Answers (0)

Categories

Find more on Communications Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!