声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1079|回复: 1

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

[复制链接]
发表于 2009-4-26 16:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
设有一QPSK信号:
x=[0.7071 + 0.7071i   0.7071 - 0.7071i   0.7071 - 0.7071i   0.7071 + 0.7071i   -0.7071 - 0.7071i   0.7071 - 0.7071i  -0.7071 - 0.7071i];
需要将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);
结果产生明显的相位模糊。

请问:接收端我该如何来解调呢?
回复
分享到:

使用道具 举报

 楼主| 发表于 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;
    [b,a] = 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

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-26 09:47 , Processed in 0.055566 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表