私は現在、MATLABのクラス用の周期コードプログラムで作業していますが、2つの多項式、つまりジェネレータP(X)とユーザ入力を分割する最善の方法を理解しようとしています。 Q(X)とX(X)を得るために3(x^3 * D(X) X)+ C(X)2つの多項式をMATLABで除算する
私のプログラムのために私が持っているコードは、これまですなわち
Insert 4-bit input: 1001
、バイナリのユーザー4ビットの入力にかかるその後、それは確かにその有効にするために、それをチェックし、それをシフトする:
私はその後、P(X) = 1 + X + X^3
生成多項式により、紙の上にそれを作業することを分割する必要がある多項式
X^3 + X^6
の略
0 0 0 1 0 0 1
、
x^6 + X^3
___________
x^3 + x + 1
Gives: Q(X) = X^3 + X
R(X) = X^2 + X
So, T(X) = X^6 + X^3 + X^2 + X, which is 0111001 for the Codeword
何だろうこれを行う最善の方法は?
私は次のことを試してみました:
% Prompt for User input
b4_in = input('Insert 4-bit input: ' ,'s'); %Input 1001
%% CHECK FOR VAILD INPUT %%
dec_in = bin2dec(b4_in)
bin_in = fliplr(de2bi(dec_in)) %User input in Binary
d = [0000000]; %Calculating X^3 * D(X)
d = bin_in;
d(7)=0;
d = fliplr(d); %Gives 0 0 0 1 0 0 1
d
gen_pol = [1 1 0 1] %P(X) = 1 + X + X^3
[q, c] = deconv(bin_in, gen_pol)
私はこれを行くと、私が手:
q =
1
c =
0 -1 0 0
は、私は次のことを得るために、異なる行うために何が必要ですか?
q = 0 1 0 1
c = 0 1 1
ありがとう!
、私は彼らのソリューションを試してみましたが、結果がでませんまさに私が必要なものです。その情報で私の質問を更新しました – Blake
Matlabが数値的に多項式を扱う方法なので、最も単純な解決策は、バイナリ数字を配列または1と0として入力することです。 – TroyHaskin
まあ、私がやったやり方は、ユーザー入力を1と0の配列に変換するので、除算を行うために何をする必要があるのかに影響しないはずです。 – Blake