基于matlab的qpsk仿真设计报告(编辑修改稿)内容摘要:

该依靠高版本的优化功能把在低版本不能实现的功能强制执行,所以我还有很多地方需要学习,包括对误码率进行计算的两个函数我也是借鉴的网上的程序。 这次方向设计让我学会了很多,也认识到了自己还有很多方面的欠缺。 八、 参考文献 [1] 李人厚 、 张平安 .精通 MATLAB, 西安交通大学 [2] 肖明波,通信系统仿真原理与无线应用 机械工业出版社 [3] 万永革编著 ,通信系统仿真原理与无线应用 , 北京 科学出版社 [4] 郭文彬 、 桑林 ,通信原理 — 基于 MATLAB 的计算机仿真, 北京邮电大学出版社 , [5]网上资料 附件: 主程序: T=1。 % 基带信号宽度,也就是频率 fc=10/T。 % 载波频率 ml=2。 % 调制信号类型的一个标志位 nb=100。 % 传输的比特数 delta_T=T/200。 % 采样间隔 fs=1/delta_T。 % 采样频率 SNR=0。 % 信噪比 t=0:delta_T:nb*Tdelta_T。 % 限定 t 的取值范围 N=length(t)。 % 采样数 % 调制部分 % 基带信号的产生 data=randn(1,nb)。 datanrz=data.*21。 data1=zeros(1,nb/delta_T)。 for q=1:nb data1((q1)/delta_T+1:q/delta_T)=datanrz(q)。 end % 串并转换,将奇偶位数据分开 idata=datanrz(1:ml:(nb1))。 qdata=datanrz(2:ml:nb)。 % QPSK 信号的调制 ich=zeros(1,nb/delta_T/2)。 for i=1:nb/2 ich((i1)/delta_T+1:i/delta_T)=idata(i)。 end 15 for ii=1:N/2 a(ii)=sqrt(2/T)*cos(2*pi*fc*t(ii))。 end idata1=ich.*a。 qch=zeros(1,nb/2/delta_T)。 for j1=1:nb/2 qch((j11)/delta_T+1:j1/delta_T)=qdata(j1)。 end for jj=1:N/2 b(jj)=sqrt(2/T)*sin(2*pi*fc*t(jj))。 end qdata1=qch.*b。 s=idata1+qdata1。 ss=abs(fft(s))。 % 瑞利衰落信道和高斯信道 % 瑞利衰落信道 ray_ich=raylrnd(,1,nb/2/delta_T)。 ray_qch=raylrnd(,1,nb/2/delta_T)。 Ray_idata=idata1.*ray_ich。 Ray_qdata=qdata1.*ray_qch。 Ray_s=Ray_idata+Ray_qdata。 % 高斯信道 s1=awgn(s,SNR)。 s11=abs(fft(s1))。 s111=s1s。 Awgn_s=awgn(Ray_s,SNR)。 % 通过高斯信道再通过瑞利衰落信道 % QPSK 解调部分 % 解调部分(高斯信道) idata2=s1.*a。 qdata2=s1.*b。 idata3=zeros(1,nb/2)。 qdata3=zeros(1,nb/2)。 % 抽样判决的过程,与 0 作比较, data=0,则置 1,否则置 0 for n=1:nb/2 if sum(idata2((n1)/delta_T+1:n/delta_T))=0 idata3(n)=1。 else idata3(n)=0。 end 16 if sum(qdata2((n1)/delta_T+1:n/delta_T))=0 qdata3(n)=1。 else qdata3(n)=0。 end end % 为了显示星座图 ,将信号进行处理 idata4=zeros(1,nb/2)。 qdata4=zeros(1,nb/2)。 for n=1:nb/2 Awgn_ichsum(n)=sum(idata2((n1)/delta_T+1:n/delta_T))*delta_T。 if Awgn_ichsum(n)=0 idata4(n)=1。 else idata4(n)=0。 end Awgn_qchsum(n)=sum(qdata2((n1)/delta_T+1:n/delta_T))*delta_T。 if Awgn_qchsum(n)=0 qdata4(n)=1。 else qdata4(n)=0。 end end % 将判决之后的数据存放进数组 demodata=zeros(1,nb)。 demodata(1:ml:(nb1))=idata3。 demodata(2:ml:nb)=qdata3。 %为了显示,将它变成波形信号(即传输一个 1代表单位宽度的高电平) demodata1=zeros(1,nb/delta_T)。 for q=1:nb demodata1((q1)/delta_T+1:q/delta_T)=demodata(q)。 end % 累计误码数 % abs(demodatadata)求接收端和发射端 % 数据差的绝对值,累计之后就是误码个数 Awgn_num_BER=sum(abs(demodatadata)) % 解调部分(瑞利 +高斯) Ray_idata2=Ray_s.*a。 Ray_qdata2=Ray_s.*b。 % 为了显示星座图 ,将信号进行处理 Ray_idata4=zeros(1,nb/2)。 Ray_qdata4=zeros(1,nb/2)。 for n=1:nb/2 Ray_ichsum(n)=sum(idata2((n1)/delta_T+1:n/delta_T))*delta_T。 17 if Ray_ichsum(n)=0 Ray_idata4(n)=1。 else Ray_idata4(n)=0。 end Ray_qchsum(n)=sum(qdata2((n1)/delta_T+1:n/delta_T))*delta_T。 if Ray_qchsum(n)=0 Ray_qdata4(n)=1。 else Ray_qdata4(n)=0。 end end % 将判决之后的数据存放进数组 Ray_demodata=zeros(1,nb)。 Ray_demodata(1:ml:(nb1))=Ray_idata4。 Ray_demodata(2:ml:nb)=Ray_qdata4。 %为了显示,将 它变成波形信号(即传输一个 1代表单位宽度的高电平) Ray_demodata1=zeros(1,nb/delta_T)。 for q=1:nb Ray_demodata1((q1)/delta_T+1:q/delta_T)=Ray_demodata(q)。 end % 累计误码数 % abs(demodatadata)求接收端和发射端 % 数据差的绝对值,累计之后就是误码个数 Ray_num_BER=sum(abs(Ray_demodatadata)) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 误码率计算 %。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。