【问题标题】:QPSK function operation/MATLABQPSK函数运算/MATLAB
【发布时间】:2018-06-28 22:13:40
【问题描述】:
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
【问题讨论】:
标签:
matlab
function
telecommunication
phase
modulation
【解决方案1】:
pskmod 函数需要一个由 symbols 组成的输入,这些输入是在0、...、M-1 范围内的数字,而不是位。也就是说,它将符号调制为复数值,但不进行从位到符号的映射。这也是comm.QPSKModulator 对象的默认行为。
要将位到符号映射作为调制器的一部分,从而使用位形式的输入,请将comm.QPSKModulator 对象的BitInput 属性设置为@987654327 @。这可以在创建对象时直接完成,通过将输入 'BitInput', true 传递给构造函数:
modQPSK = comm.QPSKModulator('BitInput', true);
xmod1 = modQPSK(x);
另外,请注意我已经更改了对象的名称以避免隐藏内置函数mod。