通信工程实验报告-西南交通大学 - 图文(4)

2019-06-17 11:06

M=3*Nbit; %导频个数 EbNo=0:35; %信噪比 err(length(EbNo))=0; %误码率

MSE(length(EbNo))=0; %信道估计MSE message = rand(1,N)>0.5; %二进制比特流 pf(1:M) = 1+i; %导频信号

%生成二进制比特流并qpsk调制

qpsk_IQ = [-1 1];

qpsk_I = qpsk_IQ(message(1:2:end)+1); qpsk_Q = qpsk_IQ(message(2:2:end)+1); qpsk=(qpsk_I+1j.*qpsk_Q);

MN=M+length(qpsk); frame(1:MN)=0; %帧信号 %组帧

k=1; j=1;

for i=1:length(qpsk) frame(j)=qpsk(i); j=j+1;

if( mod(i,7)==0 )

frame(j)=pf(k);j=j+1;k=k+1; frame(j)=pf(k);j=j+1;k=k+1; frame(j)=pf(k);j=j+1;k=k+1; end end

frame_rayl(1:length(frame))=0; %通过瑞利信道后的帧信号

%产生瑞利分布

hb=unifrnd (0,2*pi,1,Nbit); ha=raylrnd(1,1,Nbit); h=ha.*exp(1i.*hb);

%帧通过瑞利信道

j=1;

for i=1:length(h) for k=1:10

frame_rayl(j)=h(i)*frame(j);j=j+1; end end

pf_awgn(1:M)=0; %加高斯白噪声导频信号部分

qpsk_awgn(1:length(qpsk))=0; %加高斯白噪声qpsk信号部分 h_est(1:Nbit)=0; %根据导频信号计算出的信道估计

qpsk_est(1:length(qpsk))=0; %根据计算出的信道估计得到接收到的qpsk信号

%计算误码率与信道估计的MSE for kk=1:length(EbNo)

frame_awgn = awgn(frame_rayl,EbNo(kk),'measured'); %加高斯白噪声 %分离组帧中的数据信号与导频信号

jj=1;ii=1;

for j=1:length(frame_awgn)

if( mod(j,10)==0 || mod(j,10)==8 ||mod(j,10)==9 ) pf_awgn(jj)=frame_awgn(j);jj=jj+1; else

qpsk_awgn(ii)=frame_awgn(j);ii=ii+1; end end

%根据导频信号计算信道估计

h_awgn=pf_awgn./pf; for jjj=1:length(h_est)

h_est(jjj)=(h_awgn(jjj*3-2)+h_awgn(jjj*3-1)+h_awgn(jjj*3))/3; end k=1;

%根据计算出的信道估计,计算接收到的qpsk信号

for iii=1:length(qpsk_est)

qpsk_est(iii)=qpsk_awgn(iii)/h_est(k); if( mod(iii,7)==0 ) k=k+1; end end

%qpsk解调

qpsk_est_re=real(qpsk_est); qpsk_est_im=imag(qpsk_est); qpsk_IQD = [0 1];

qpsk_est_re(find(qpsk_est_re>1)) = 1; qpsk_est_re(find(qpsk_est_re<-1)) = -1; qpsk_est_im(find(qpsk_est_im>1)) = 1; qpsk_est_im(find(qpsk_est_im<-1)) = -1; qpsk_de=[zeros(1,N)];

qpsk_de(1:2:end) = qpsk_IQD(round((qpsk_est_re+1)/2) + 1); qpsk_de(2:2:end) = qpsk_IQD(round((qpsk_est_im+1)/2) + 1);

%计算误码率

err(kk)=length(find((qpsk_de-message)~=0)); err(kk)=err(kk)./N;

%计算信道估计的MSE

for imse=1:length(h)

MSE(kk)=MSE(kk)+(abs(h(imse)-h_est(imse)))^2; end

MSE(kk)=MSE(kk)/length(h); end

plot(EbNo,err);xlabel('EbNo/dB');ylabel('误码率'); figure(2)

plot(EbNo,MSE);xlabel('EbNo/dB');ylabel('MSE');

2.仿真结果

MSE曲线

BER曲线

实验五FPGA 实验 HDB3 编码器设计

一、实验目的

⒈ 深入理解 HDB3 编码原理。

⒉ 学习用 VerilogHDL 硬件描述语言建模较复杂时序逻辑电路。 ⒊ 学习 FPGA 设计中的 Testbench(测试平台)技术。 ⒋ 掌握 FPGA 设计中仿真与综合的概念。 ⒌ 学习编写仿真测试代码与可综合代码。

二、报告要求

⒈ 输入信号为全 全 0 码时,以下各时序仿真结果:(ModelSim 中截图)

⑴ 加 V 后; ⑵ 补 B 后;

⑶ 最终得到的 HDB3 码。

2. 改写 HDB3 编码器的测试文件代码,使测试文件能 连续产生伪随机序列,将改写后的 测试文件代码写在实验报告中。(可以参考教师提供的 VerilogHDL 教程中的第 10 章 10.3.8 部分的内容)

3. 思考:测试文件代码和编码器模块代码都是用 VerilogHDL 语言编写的,这两种代码在 语法上有什么区别?分别举一个例子进行比较。

三、实验结果

1.

data_v:加V信号 data_b:加B信号 dataout:最终信号 2. 测试文件

timescale 1ns/100ps

module HDB3_encoder_test; reg clk; reg reset_n; reg datain;

wire [2:0] dataout;

HDB3_encoder DESIGN (

.clk (clk),

.reset_n (reset_n), .datain (datain), .dataout (dataout) ); initial begin

clk=1'b0; end


通信工程实验报告-西南交通大学 - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:社会单位消防安全自查自纠互联网公布表( 9 月) - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: