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

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

 채택된 답변

MathWorks Support Team
MathWorks Support Team 2013년 10월 26일

0 개 추천

■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を用いたモデルの例を以下に示します。

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Communications Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!