yycc2006 发表于 2009-4-26 16:04

关于QPSK载波调制后的解调问题

设有一QPSK信号:
x=;
需要将x(n)调制到fc=1000Hz的载波上,调制方法如下:
y=x.*exp(i*2*pi*fc*n);
yy=real(y);
将调制信号yy送入信道传输。

接收端:
r=yy.*exp(-1*i*2*pi*fc*n)
rr=real(r);
结果产生明显的相位模糊。

请问:接收端我该如何来解调呢?

yycc2006 发表于 2009-4-27 19:39

回复 楼主 yycc2006 的帖子

通过努力,基本把昨天的问题解决啦!:lol :victory:
把相关的程序段贴出来,希望对大家有所帮助!
假设待调制的复信号为data
    fc=1000;fs=1/Ts;
    len=length(data);
    n=0:1:len-1;
    st1=real(data).*cos(2*pi*fc*n*Ts);%I路调制
    st2=imag(data).*sin(2*pi*fc*n*Ts);%Q路调制
    st=st1+st2;%合路信号,经信道传输

   
    %%%%%%%%%%%%%%%%receiver   %%%%%%%%%%%%%%   
    rt1=st.*cos(2*pi*fc*n*Ts);
    rt2=st.*sin(2*pi*fc*n*Ts);

%设计低通滤波器
       filterorder=5;
    = butter(filterorder,fc/(fs/2));
    rtout1 = filter(b,a,rt1); %
    rtout2 = filter(b,a,rt2);
    rt=rtout1+i*rtout2; %   
    delay_butter=filterorder/2;
    rt=rt(delay_butter+1:end);

rt就是接收端的解调信号!

%=====================================
此外,还可以用matlab自带的函数来解决
发送端:
    st1=ammod(real(data),fc,fs);
    st2=ammod(imag(data),fc,fs,pi/2);
    st=st1+st2;%合路信号,经信道传输
接收端:
    rt1=amdemod(st,fc,fs,[],[],[],[]);
    rt2=amdemod(st,fc,fs,pi/2,[],[],[]);
    rt=rt1+i*rt2;


看起来很简单吧?呵呵!:loveliness:
正所谓会者不难难者不会。:@P

[ 本帖最后由 yycc2006 于 2009-4-27 19:50 编辑 ]
页: [1]
查看完整版本: 关于QPSK载波调制后的解调问题