中国地质大学通信原理结课报告(共16页).doc
精选优质文档-倾情为你奉上 中国地质大学(武汉) 通信原理实验报告 姓 名: 学 号: 班 级: 指导老师:陈振兴实验一1.实验目的练习使用matlab中的基本函数,为以后的实验打下基础2.实验内容function f,sf=T2F(t,st) %傅里叶变换dt=t(2)-t(1);T=t(end);df=1/T;N=length(st);f=-N/2*df:df:N/2*df-df;sf=fft(st);sf=T/N*fftshift(sf);function t,st=F2T(f,sf) %傅里叶反变换df=f(2)-f(1);Fmx=(f(end)-f(1)+df);dt=1/Fmx;N=length(sf);T=dt*N;t=0:dt:T-dt;sff=fftshift(sf);st=Fmx*ifft(sff);clear all;close all;T=1;N_sample = 128; %去采样点个数128dt = T/N_sample;t = 0:dt:T-dt;st = ones(1,N_sample/2),-ones(1,N_sample/2); %产生一个周期的方波信号subplot(211);plot(t,st);axis(0 1 -2 2); xlabel('t');ylabel('s(t)');subplot(212);f,sf = T2F(t,st);plot(f,abs(sf);hold on;axis( -10 10 0 1);xlabel('f');ylabel('s(f)');3.实验结果4.分析与小结图一为一个周期的方波信号,图二为此方波信号经过傅里叶变换变换到频域后的图形。由图可以看出,该方波信号经过傅里叶变换后能量主要集中在-2到2之间,且该频率图形对称。实验二1.实验目的用matlab实现2PSK和QPSK,并做它们的仿真。2.实验内容t=1;for snr=0:15 %信噪比从0取到15map=-1 1;tr_2=1+fix(rand(1,105); %产生随机的0,1信号tx=map(tr_2+1); rx=awgn(tx,snr,'measured'); %通过高斯信道得到rxrx_2=rx>0; %抽样判决pe=length(find(tr_2-rx_2); %比较接收信号与发射信号的不同ps(t)=pe/length(tr_2); %计算误码率t=t+1;endsemilogy(0:15,ps,'-bo');grid on;3.实验结果2PSK运行结果:QPSK运行结果:QPSK仿真结果:snr =10;星座图为: snr = 5:星座图为: 2PSK仿真结果: 星座图为: 4.分析与小结有实验结果可以看出,实验结果和仿真出来的结果在相同信噪比的情况下基本相同;QPSK与2PSK相比,在相同信噪比的情况下,QPSK性能较好于2PSK。实验三1.实验目的量化编码,解码2实验内容(一)将给定音频文件量化编码function waveL = 10000; %选取采样点个;voicefile = wavread('voicefile.wav'); %打开给定音频文件wavefile并将其作图figure(1)plot(voicefile)maxvalue = max(abs(voicefile); %求出音频的最大振幅M = 4; k=log2(M);quan_set = 2*maxvalue/M; %选取量化间隔tx_quanvalue = zeros(1,L); %初始化发送和接收数组rx_quanvalue = zeros(1,L);for i = 1:L samplevalue = voicefile(i); %读入音频文件第i个值 for n = 1:M If samplevalue>=-maxvalue+quan_set*(n-1) && samplevalue <= -maxvalue+quan_set*n tx_quanvalue(i) = (-2*maxvalue+2*quan_set*n-quan_set)/2; %取区间中点为抽样值 tx2str = dec2bin(n-1,k); %转化为k位二进制 for u = 1:k tx_b(u,i) = str2double(char(tx2str(u); %每一行代表一个数据 end end endendfigure(2)plot(tx_quanvalue) %做出输出波形量化后的图形tx = tx_b(:)'rx = reshape(tx,k,L);for i= 1:L %对量化编码的数据进行解码 n = 0; for j = 1:k n =n+rx(j,i)*2(k-j); rx_quanvalue(i) = (-2*maxvalue+2*quan_set*(n+1)-quan_set)/2; endendwavwrite(rx_quanvalue(:),48000,'rx_voicefile.wav'); %将解码后的数据保存入新增文件rx_voicefilefigure(3)plot(rx_quanvalue)2.1实验结果原噪声图形量化编码后的图形解码后的图形2.2分析与小结由以上的图形可以看出,原来的音频信号是一串随机的信号,经过量化编码后变成图二所示的8个量化电平的信号,因为没有加入噪声,经过解码后恢复的信号和编码是一样的。3实验内容(二)将文件rx_voicefile通过2ASK和QPSK编码,通过高斯信道,然后解码%同上将音频文件量化编码function wave2L = 10000;voicefile = wavread('rx_voicefile.wav');figure(1)plot(voicefile)maxvalue = max(abs(voicefile);M = 4;k=log2(M);quan_set = 2*maxvalue/M;for i = 1:L samplevalue = voicefile(i); for n = 1:M if samplevalue >= -maxvalue+quan_set*(n-1) && samplevalue <= -maxvalue+quan_set*n tx_quanvalue(i) = (-2*maxvalue+2*quan_set*n-quan_set)/2; tx2str = dec2bin(n-1,k); %转化为k位二进制 for u = 1:k tx_b(u,i) = str2double(char(tx2str(u); %每一行代表一个数据 end end endEnd%通过高斯信道然后解码。snr = 100;map = -1,1;for i =1:L for u=1:k tx(u,i) = map(tx_b(u,i)+1); endend rx = awgn(tx(:),snr,'measured'); %经过高斯信道 for i = 1:k*L rx(i) = rx(i)>0; %抽样判决 end for i= 1:L %解码 n = 0; for j = 1:k n =n+rx(i-1)*k+j)*2(k-j); end rx_quanvalue(i) = (-2*maxvalue+2*quan_set*(n+1)-quan_set)/2;endfigure(2)plot(rx_quanvalue);wavwrite(rx_quanvalue(:),48000,'rx_2PSKvoicefile.wav'); %将文件解码后写入rx_2PSKvoicefile文件中3.1实验结果snr = 100;snr = 30;snr = 0;3.2分析与小结编码后的信号进过不同信噪比的高斯信道后的图形差别很大。当snr=100时,表示噪声很小,信号很大,基本上相当于没有噪声,所以后来解码出的图形与原图形基本一致;snr=30时,噪声相对于信号有点大,所以解码后的图形相对于原图形有所变形;snr=0时,表示噪声远大于信号,接收端接收到的基本都是信号,所以解码后的图形与原图形基本不。专心-专注-专业