QPSK功能操作/ MATLAB

时间:2018-01-19 16:01:41

标签: matlab function telecommunication phase modulation

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

Variables in Workspace

1 个答案:

答案 0 :(得分:0)

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

要包含位到符号映射作为调制器的一部分,因此使用位形式的输入,设置BitInput的{​​{1}}属性对象comm.QPSKModulator。这可以在创建对象时直接完成,方法是将输入true传递给构造函数:

'BitInput', true

另外,请注意我已更改对象的名称以避免遮蔽内置函数modQPSK = comm.QPSKModulator('BitInput', true); xmod1 = modQPSK(x);