QPSK调制解调完整程序配有自己的注释.docx

上传人:b****6 文档编号:7377499 上传时间:2023-01-23 格式:DOCX 页数:7 大小:16.37KB
下载 相关 举报
QPSK调制解调完整程序配有自己的注释.docx_第1页
第1页 / 共7页
QPSK调制解调完整程序配有自己的注释.docx_第2页
第2页 / 共7页
QPSK调制解调完整程序配有自己的注释.docx_第3页
第3页 / 共7页
QPSK调制解调完整程序配有自己的注释.docx_第4页
第4页 / 共7页
QPSK调制解调完整程序配有自己的注释.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

QPSK调制解调完整程序配有自己的注释.docx

《QPSK调制解调完整程序配有自己的注释.docx》由会员分享,可在线阅读,更多相关《QPSK调制解调完整程序配有自己的注释.docx(7页珍藏版)》请在冰豆网上搜索。

QPSK调制解调完整程序配有自己的注释.docx

QPSK调制解调完整程序配有自己的注释

QPSK调制解调完整程序(配有注释)

clc;

clearall;

%假定接收端已经实现载波同步,位同步(盲信号解调重点要解决的问题:

载波同步(costas环(未见到相关代码)),位同步(Gardner算法(未见相关代码)),帧同步)

%carrierfrequencyformodulationanddemodulation

fc=5e6;

%QPSKtransmitter

data=5000;%码数率为5MHZ%原码个数

rand_data=randn(1,5000);

fori=1:

data

ifrand_data(i)>=0.5

rand_data(i)=1;

else

rand_data(i)=0;

end

end

%serieltoparallel%同时单极性码转为双极性码

fori=1:

data

ifrem(i,2)==1

ifrand_data(i)==1

I(i)=1;

I(i+1)=1;

else

I(i)=-1;

I(i+1)=-1;

end

else

ifrand_data(i)==1

Q(i-1)=1;

Q(i)=1;

else

Q(i-1)=-1;

Q(i)=-1;

end

end

end

%zeroinsertion,此过程称为成形。

成形的意思就是实现由消息到波形的转换,以便发射,脉冲成形应该是在基带调制之后。

zero=5;%samplingrate25MHZ,明白了,zero为过采样率。

它等于采样率fs/码速率。

fori=1:

zero*data%采样点数目=过采样率*原码数目

ifrem(i,zero)==1

Izero(i)=I(fix((i-1)/zero)+1);

Qzero(i)=Q(fix((i-1)/zero)+1);

else

Izero(i)=0;

Qzero(i)=0;

end

end

%pulseshapefilter,接着,将进行低通滤波,因为随着传输速率的增大,基带脉冲的频谱将变宽

%如果不滤波(如升余弦滤波)进行低通滤波,后面加载频的时候可能会出现困难。

%平方根升余弦滤波器

%psf=rcosfir(rf,n_t,rate,fs,'sqrt')rate:

过采样率,rf:

滚降因子,n_t:

滤波器阶数,fs:

采样率

%用在调制或发送之前,用在解调或接受之后,用来降低过采样符号流带宽并不引发ISI(码间串扰)

NT=50;

N=2*zero*NT;%=500

fs=25e6;

rf=0.1;

psf=rcosfir(rf,NT,zero,fs,'sqrt');%psf大小为500

Ipulse=conv(Izero,psf);

Qpulse=conv(Qzero,psf);

%为什么数字信号传输也要过采样,成形滤波?

%答:

过采样的数字信号处理起来对低通滤波器的要求相对较低,如果不过采样,滤波的时候滤波器需要很陡峭,指标会很严格

%成形滤波的作用是保证采样点不失真。

如果没有它,那信号在经过带限信道后,眼图张不开,ISI非常严重。

成形滤波的位置在基带调制之后。

%因为经成形滤波后,信号的信息已经有所损失,这也是为避免ISI付出的代价。

换句话说,成形滤波的位置在载波调制之前,仅挨着载波调制。

%即:

(发送端)插值(采样)-成形-滤波(LPF)-加载频(载波调制)-加噪声至(接收端)乘本振-低通-定时抽取-判决。

%modulation

fori=1:

zero*data+N%采样点数目改变(因为卷积的缘故)

t(i)=(i-1)/(fs);%这里因为假设载频与码速率大小相等,所以用载频fc乘以过采样率=采样率。

Imod(i)=Ipulse(i)*sqrt

(2)*cos(2*pi*fc*t(i));

Qmod(i)=Qpulse(i)*(-sqrt

(2)*sin(2*pi*fc*t(i)));

end

sum=Imod+Qmod;

%QPSKreceiver

%demodulation

fori=1:

zero*data+N

Idem(i)=sum(i)*sqrt

(2)*cos(2*pi*fc*t(i));

Qdem(i)=sum(i)*(-sqrt

(2)*sin(2*pi*fc*t(i)));end

%matchedfilter

mtf=rcosfir(rf,NT,zero,fs,'sqrt');

Imat=conv(Idem,mtf);

Qmat=conv(Qdem,mtf);

%dataselection

fori=1:

zero*data

Isel(i)=Imat(i+N);

Qsel(i)=Qmat(i+N);

end

%sampler%提取码元

fori=1:

data

Isam(i)=Isel((i-1)*zero+1);

Qsam(i)=Qsel((i-1)*zero+1);

end

%decisionthreshold

threshold=0.2;

fori=1:

data

ifIsam(i)>=threshold

Ifinal(i)=1;

else

Ifinal(i)=-1;

end

ifQsam(i)>=threshold

Qfinal(i)=1;

else

Qfinal(i)=-1;

end

end

%paralleltoserial

fori=1:

data

ifrem(i,2)==1

ifIfinal(i)==1

final(i)=1;

else

final(i)=0;

end

else

ifQfinal(i)==1

final(i)=1;

else

final(i)=0;

end

end

end

%绘图

figure

(1)

plot(20*log(abs(fft(rand_data))));

axis([0data-40100]);

gridon;

title('spectrumofinputbinarydata');

figure

(2)

subplot(221);

plot(20*log(abs(fft(I))));

axis([0data-40140]);

gridon;

title('spectrumofI-channeldata');

subplot(222);

plot(20*log(abs(fft(Q))));

axis([0data-40140]);

gridon;

title('spectrumofQ-channeldata');

subplot(223);

plot(20*log(abs(fft(Izero))));

axis([0zero*data-20140]);

gridon;

title('spectrumofI-channelafterzeroinsertion');subplot(224);

plot(20*log(abs(fft(Qzero))));

axis([0zero*data-20140]);

gridon;

title('spectrumofQ-channelafterzeroinsertion');figure(3);

subplot(221);

plot(psf);

axis([200300-0.20.6]);

title('timedomainresponseofpulseshapingfilter');gridon;

subplot(222);

plot(20*log(abs(fft(psf))));

axis([0N-35050]);

gridon;

title('transferfunctionofpulseshapingfilter');

subplot(223);

plot(20*log(abs(fft(Ipulse))));

axis([0zero*data+N-250150]);

gridon;

title('spectrumofI-channelafterimpulseshapingfilter');subplot(224);

plot(20*log(abs(fft(Qpulse))));

axis([0zero*data+N-250150]);

gridon;

title('spectrumofQ-channelafterpluseshapingfilter');figure(4)

subplot(211);

plot(20*log(abs(fft(Imod))));

axis([0zero*data+N-250150]);

gridon;

title('spectrumofI-channelaftermodulation');

subplot(212);

plot(20*log(abs(fft(Qmod))));

axis([0zero*data+N-250150]);

gridon;

title('spectrumofQ-channelaftermodulation');

figure(5)

subplot(221);

plot(20*log(abs(fft(Idem))));

axis([0zero*data-200150]);

gridon;

title('spectrumofI-channelafterdemodulation');

subplot(222);

plot(20*log(abs(fft(Qdem))));

axis([0zero*data+N-200150]);

gridon;

title('spectrumofQ-channelafterdemodulation');

subplot(223);

plot(20*log(abs(fft(Imat))));

axis([0zero*data-400200]);

gridon;

title('spectrumofI-channelaftermatchedfilter');

subplot(224);

plot(20*log(abs(fft(Qmat))));

axis([0zero*data-400200]);

gridon;

title('spectrumofQ-channelaftermatchedfilter');

figure(6)

subplot(221);

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1