您好,欢迎访问三七文档
通信工程实验报告班级:通信2012-04班学号:20122211姓名:刘涛1实验一:FPGA实验_BDPSK调制解调器设计一、实验目的⒈学习BDPSK原理的硬件实现方法。⒉学习用VerilogHDL硬件描述语言建模时序逻辑电路的能力。二、实验报告要求由于在BPSK解调中,相干载波恢复可能出现相位模糊,所以在实际应用中经常采用BDPSK(二进制差分相移键控)方式。BDPSK方式不需要在解调端恢复相干参考信号,非相干接收机容易制造而且成本低,因此在无线通信系统中被广泛使用。在BDPSK系统中,输入的二进制序列先进行差分编码,然后再用BPSK调制器调制。⒈BDPSK调制系统的结构图。(MicrosoftVisio中截图)⒉BDPSK调制器模块的VerilogHDL代码及注释。⒊功能仿真和时序仿真结果的波形。(ModelSim中截图)⒋(选做)开发板验证后的波形。(示波器上拍照)三、实验结果1、调制器和解调器的外引脚图和内部结构图图1.1调制器的外部引脚2图1.2调制器的内部结构图1.3解调器的外部引脚图1.4解调器的内部结构32、调制器模块和解调器模块的VerilogHDL代码及注释(1)差分编码modulechafen(reset_n,clk,a,b);inputreset_n;inputclk;inputa;outputb;regc;assignb=a^c;always@(posedgeclkornegedgereset_n)if(!reset_n)c=0;elsebeginc=b;endEndmodule(2)控制器moduleController(clk,reset_n,data,address,clk_DA,blank_DA_n,sync_DA_n);inputclk;inputreset_n;inputdata;output[4:0]address;outputclk_DA;//数模转换器控制信号outputblank_DA_n;//数模转换器控制信号outputsync_DA_n;//数模转换器控制信号reg[4:0]address_data;4regc;always@(posedgeclkornegedgereset_n)beginif(!reset_n)c=1'bz;elsec=data;endalways@(posedgeclkornegedgereset_n)beginif(!reset_n)address_data=5'b00000;elseif(c==data)address_data=address_data+5'b00001;elsebegincase(data)1'b0:address_data=5'b00000;1'b1:address_data=5'b10000;default:address_data=5'bzzzzz;endcaseendendassignaddress=address_data;assignclk_DA=clk;assignblank_DA_n=1'b1;assignsync_DA_n=1'b1;Endmodule(3)查找表moduleLookUpTable(clk,reset_n,address,dataout,);5inputclk;inputreset_n;input[4:0]address;output[7:0]dataout;reg[7:0]LUT[0:31];always@(posedgeclkornegedgereset_n)beginif(!reset_n)begin//用C编程计算出的查找表采样值填在这里LUT[0]=8'h7f;//0°LUT[1]=8'h97;LUT[2]=8'haf;LUT[3]=8'hc5;LUT[4]=8'hd9;LUT[5]=8'he8;LUT[6]=8'hf4;LUT[7]=8'hfc;LUT[8]=8'hfe;LUT[9]=8'hfc;LUT[10]=8'hf5;LUT[11]=8'hea;LUT[12]=8'hda;LUT[13]=8'hc7;LUT[14]=8'hb2;LUT[15]=8'h9a;LUT[16]=8'h81;//180°LUT[17]=8'h69;LUT[18]=8'h51;LUT[19]=8'h3b;LUT[20]=8'h27;LUT[21]=8'h17;LUT[22]=8'hb;LUT[23]=8'h3;LUT[24]=8'h0;LUT[25]=8'h1;LUT[26]=8'h8;LUT[27]=8'h13;LUT[28]=8'h22;LUT[29]=8'h35;6LUT[30]=8'h4a;LUT[31]=8'h62;endendassigndataout=LUT[address];endmodule⒊功能仿真和时序仿真结果的波形图1.5功能仿真图1.6时序仿真7实验二MATLAB实验_OFDM误码率仿真(AWGN)一、实验目的:1、掌握OFDM的基本原理。2、掌握用Matlab搭建OFDM系统的基本方法3、用MATLAB进行OFDM系统在AWGN信道下误码率分析。二、实验内容(1)发送部分①对产生的0、1比特流进行16QAM调制,映射到星座图上,即将数据变为复平面内的数据;②将变换后的数据进行串并转换进行IFFT变换后在进行并串转换。为了避免多径造传播成的ISI干扰,要对每一个OFDM符号加循环前缀(CP)。为了避免码间干扰,CP中的信号与对应OFDM符号尾部宽度为Tg的部分相同,Tg为人为设定。本实验中为OFDM符号长度的1/4。③加保护间隔。为了最大限度的消除码间干扰,该保护间隔一般大于多径信道的最大时延,这样一个符号的多径干扰就不会对下一个符号造成干扰。将产生的OFDM符号组成一个串行序列,即组帧。(2)信道部分:AWGN信道(3)接收部分:①解帧,将接收的序列分解为一个个独立的OFDM符号。②去掉保护间隔,将加在每个符号前的保护间隔去掉。③将去掉保护间隔的OFDM符号进行串并转换,为下一步快速傅里叶变换做准备。④将并行的信号进行快速傅里叶变换得到对应的时域信号。⑤进行并串转换,再进行QAM解调,解调之前要进行均衡处理。解调之后得到之前生成的0、1比特流。设计仿真方案,得到在数据传输过程中不同信噪比的BER性能结论,要求得到的BER曲线较为平滑。四、实验报告要求所有程序完整的源代码(.m文件)以及注释。仿真结果。对于所有的图形结果(包括波形与仿真曲线等),将图形保存成.tif或者.emf的格式并插入word文档。三、实验结果1、所有程序完整的源代码(.m文件)以及注释clearall;closeall;fprintf('OFDM基带系统\n\n');8%%%%%%%%%%%%%%%%%%%%%%%%参数设置%%%%%%%%%%%%%%%%%%%%%%%carrier_count=256;%FFT数目number_symbol=1500;%OFDM符号数目()Guard_count=carrier_count/4;%循环前缀Pilot_interval=15;%导频间隔Pilot_count=ceil(number_symbol/Pilot_interval);%每一行导频的个数modulation_mode=16;%16QAMSNR=-2:35;k=log2(modulation_mode);%%%%%%%%%%%%%%%%%%%%%%%%主程序循环%%%%%%%%%%%%%%%%%%%%%%%fornumber_snr=1:length(SNR)fprintf('\n\n\n仿真信噪比',SNR(number_snr));%%%%%%%%%%%%%%%%%%%%产生发送的随机序列%%%%%%%%%%%%%%%%%%%%Source_Bits=randi([01],1,k*(carrier_count*number_symbol));%%%%%%%%%%%%%%%%%%%%%%%%16QAM调制%%%%%%%%%%%%%%%%%%%%%%%%QAM_16_IQ=[-3-131];QAM_input_I=QAM_16_IQ(Source_Bits(1:4:end)*2+Source_Bits(2:4:end)+1);%00:-301:-111:110:3QAM_input_Q=QAM_16_IQ(Source_Bits(3:4:end)*2+Source_Bits(4:4:end)+1);%00:-301:-111:110:3Modulated_Sequence_Tx1=QAM_input_I+1i*QAM_input_Q;%%%%%%%%%%%%%%%%%%%%%串并变换%%%%%%%%%%%%%%%%%%%%%%%%%%%%Modulated_Sequence_Tx=reshape(Modulated_Sequence_Tx1,carrier_count,number_symbol);%%%%%%%%%%%%%%%%%%%%%产生已知的导频序列%%%%%%%%%%%%%%%%%%%Pilot_symbols=(round(rand(carrier_count,Pilot_count))*2-1);%%%%%%%%%%%%%%%%%%%%%%%%导频符号的插入%%%%%%%%%%%%%%%%%%%%%%%forkk=1:Pilot_count9Modulated_Sequence_Tx_insert(:,(kk-1)*(Pilot_interval+1)+1)=Pilot_symbols(:,kk);Modulated_Sequence_Tx_insert(:,(kk-1)*(Pilot_interval+1)+2:(kk-1)*(Pilot_interval+1)+16)=Modulated_Sequence_Tx(:,(kk-1)*Pilot_interval+1:(kk-1)*Pilot_interval+15);end%%%%%%%%%%%%%%%%%%%%%%%%IFFT变换%%%%%%%%%%%%%%%%%%%%%%%%%%Time_signal_Tx1=ifft(Modulated_Sequence_Tx_insert);%%%%%%%%%%%%%%%%%%%%%%%%加循环前缀%%%%%%%%%%%%%%%%%%%%%%%Time_signal_Tx_cp1(1:Guard_count,:)=Time_signal_Tx1(carrier_count-Guard_count+1:carrier_count,:);Time_signal_Tx_cp1(Guard_count+1:Guard_count+carrier_count,:)=Time_signal_Tx1(1:carrier_count,:);%%%%%%%%%%%%%%%%%%%%%并串变换%%%%%%%%%%%%%%%%%%%%%%%%%%%%Time_signal_Tx_cp=reshape(Time_signal_Tx_cp1,1,(Guard_count+carrier_count)*(number_symbol+Pilot_count));%%%%%%%%%%%%%%%%%%%%%%%%高斯信道和瑞利信道%%%%%%%%%%%%%%%%%%%%%%%Time_signal_Tx_cp_channel1=awgn(Time_signal_Tx_cp,SNR(number_snr),'measured');%%%%%%%%%%%%%%%%%%%%%串并变换%%%%%%%%%%%%%%%%%%%Time_signal_Tx_cp_channel=reshape(Time_signal_Tx_cp_channel1,carrier_count+Guard_count,number_symbol+Pilot_coun
本文标题:通信工程实验报告
链接地址:https://www.777doc.com/doc-2006548 .html