1

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');

工作区中的变量

4

1 回答 1

0

pskmod函数需要一个由符号组成的输入,这些符号是范围0, ...,中的数字M-1,而不是位。也就是说,它将符号调制为复数值,但不进行从位到符号的映射。这也是comm.QPSKModulator对象的默认行为。

要将位到符号映射作为调制器的一部分包含在内,从而使用位形式的输入,请将对象的BitInput属性设置为。这可以在创建对象时直接完成,通过将输入传递给构造函数:comm.QPSKModulatortrue'BitInput', true

modQPSK = comm.QPSKModulator('BitInput', true);
xmod1 = modQPSK(x);

另外,请注意我更改了对象的名称以避免遮蔽内置函数mod

于 2018-01-19T16:28:14.170 回答