关于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 的帖子
通过努力,基本把昨天的问题解决啦!: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]