modem.oqpskmod - > modem.oqpskdemod不相同的结果
-
21-09-2019 - |
题
我试图模拟IEEE 802.15.4 / ZigBee的PHY,...
chip_values = [
1,1,0,1,1,0,0,1,1,1,0,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,1,0,1,1,1,0;
1,1,1,0,1,1,0,1,1,0,0,1,1,1,0,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,1,0;
0,0,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,1,0,0,0,0,1,1,0,1,0,1,0,0,1,0;
0,0,1,0,0,0,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,1,0,0,0,0,1,1,0,1,0,1;
0,1,0,1,0,0,1,0,0,0,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,1,0,0,0,0,1,1;
0,0,1,1,0,1,0,1,0,0,1,0,0,0,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,1,0,0;
1,1,0,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,1,0,1,1,1,0,1,1,0,1,1,0,0,1;
1,0,0,1,1,1,0,0,0,0,1,1,0,1,0,1,0,0,1,0,0,0,1,0,1,1,1,0,1,1,0,1;
1,0,0,0,1,1,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,1,1,1,0,1,1,1,1,0,1,1;
1,0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,1,1,1,0,1,1,1;
0,1,1,1,1,0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,1,1,1;
0,1,1,1,0,1,1,1,1,0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,0,1,1,0,0,0,0,0;
0,0,0,0,0,1,1,1,0,1,1,1,1,0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,0,1,1,0;
0,1,1,0,0,0,0,0,0,1,1,1,0,1,1,1,1,0,1,1,1,0,0,0,1,1,0,0,1,0,0,1;
1,0,0,1,0,1,1,0,0,0,0,0,0,1,1,1,0,1,1,1,1,0,1,1,1,0,0,0,1,1,0,0;
1,1,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,1,1,1,0,1,1,1,1,0,1,1,1,0,0,0];
tx = [];
values = randsrc(1,1,[0:15]);
for k=1:length(values)
sym = values(k);
tx = [tx chip_values((sym+1),1:end)];
end;
tx = tx.';
h = modem.oqpskmod;
y = modulate(h, tx);
g = modem.oqpskdemod(h);
z = demodulate(g, y);
length(z)
for k=1:length(tx)
if(tx(k)~=z(k))
fprintf('%d %d\n',tx(k),z(k));
end;
end;
我的问题是,在这个简单的例子,为什么我的TX和z不包含相同的值eventhough我没有引入任何噪音了吗?谢谢!
TX的值来如下:
列1至13
0 1 1 0 0 0 0 0 0 1 1 1 0
列14至26
1 1 1 1 0 1 1 1 0 0 0 1 1
列27至32
0 0 1 0 0 1
与z的值之际,如下:
列1至13
3 0 1 1 0 0 0 0 0 0 1 1 1
列14至26
0 1 1 1 1 0 1 1 1 0 0 0 1
列27至32
1 0 0 1 0 0
h =
Type: 'OQPSK Modulator'
M: 4
PhaseOffset: 0
Constellation: [1x4 double]
SymbolOrder: 'Binary'
SymbolMapping: [0 1 2 3]
InputType: 'Integer'
g =
Type: 'OQPSK Demodulator'
M: 4
PhaseOffset: 0
Constellation: [1x4 double]
SymbolOrder: 'Binary'
SymbolMapping: [0 1 2 3]
OutputType: 'Integer'
DecisionType: 'Hard decision'
解决方案
这是我很难说,因为我没有足够的通讯工具箱装做什么,但我会建议在文档中的例子给出一个简单的输入尝试此。使用
tx = randint(10,1,8)
用于实例。然后看输出,而不是仅仅比较。已达到或接近机器精度的差异?你不告诉我们什么是打印出来(他们在匹配或不?)。尝试采取tx和Z之间的差异。它是近EPS(2.2204e-016对我来说)?
是否有出来的数据中去和数据之间的换档?请告诉我们什么是与数据回事。
<强>更新强>
我很高兴你张贴实际的输入和输出。它看起来像z为一个移动到右侧(与一开始由于某种原因,有一个3),这意味着你失去了最后一位。纵观 Matlab的文档,有一个提示说
OQPSK解调器具有1个符号 延迟。
我想解释的问题。基本上,只要垫在输入到调制器的端部的额外的0,从解调器的输出起飞的第一个元素,并且您是在事务。
不隶属于 StackOverflow