QPSK调制它应该为每个符号使用2位,但是我使用pskmod或comm.QPSKModulator,我仍然得到与位相同数量的符号。难道我做错了什么?这个功能有问题吗?提前谢谢。
M=4;
n=64;
m=log2(M);
x=round(rand(n*m,1));
mod = comm.QPSKModulator;
xmod1 = mod(x);
xmod=pskmod(x,M,pi/M,'gray');
答案 0 :(得分:0)
pskmod
函数需要一个由符号组成的输入作为0
,...,M-1
范围内的数字,而不是位。也就是说,它将符号调制为复数值,但不执行从位到符号的映射。这也是comm.QPSKModulator
对象的默认行为。
要包含位到符号映射作为调制器的一部分,因此使用位形式的输入,设置BitInput
的{{1}}属性对象comm.QPSKModulator
。这可以在创建对象时直接完成,方法是将输入true
传递给构造函数:
'BitInput', true
另外,请注意我已更改对象的名称以避免遮蔽内置函数modQPSK = comm.QPSKModulator('BitInput', true);
xmod1 = modQPSK(x);
。