通信原理课程设计(10电信)0612资料课件_第1页
通信原理课程设计(10电信)0612资料课件_第2页
通信原理课程设计(10电信)0612资料课件_第3页
通信原理课程设计(10电信)0612资料课件_第4页
通信原理课程设计(10电信)0612资料课件_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

通信原理课程设计2012年12月1/5/20231通信原理课程设计2012年12月12/30/20221通信MATLAB仿真基础信号>>symsabc>>solve('a*x^2+b*x+c=0','x')ans=1/2/a*(-b+(b^2-4*a*c)^(1/2))1/2/a*(-b-(b^2-4*a*c)^(1/2))%%%waveformandspectrumofsinsignalcloseallK=10;f1=1;f2=2;N=2^k;dt=0.01;%msdf=1/(N*dt);%KHzT=N*dt;%截短时间Bs=N*df/2;%系统带宽f=[-Bs:df:Bs-df];%频域横坐标t=[-T/2:dt:T/2-dt];%时域横坐标1/5/20232通信MATLAB仿真基础信号>>symsabc%%%s=2*sin(2*pi*f1*t)+3*sin(2*pi*f2*t);[f,S]=T2F(t,s);%S是s的傅氏变换[t,a]=F2T(f,S);%a是S的傅氏反变换a=real(a);as=abs(S);f0=max(f1,f2);figuresubplot(2,1,1)%输出的频谱plot(f,as,'b');gridaxis([-2*f0,+2*f0,min(as),max(as)])xlabel('f(KHz)');ylabel('|S(f)|(V/KHz)')subplot(2,1,2)plot(t,a,'black')%输出信号波形画图gridaxis([-2/f0,+2/f0,-5,5])xlabel('t(ms)');ylabel('a(t)(V)')1/5/20233s=2*sin(2*pi*f1*t)+3*sin(2*pi*傅里叶变换function[f,sf]=T2F(t,st)%calculateasignal'sFouriertransilationdt=t(2)-t(1);T=(t(end)-t(1)+dt);df=1/T;N=length(st);f=(-N/2:N/2-1)*df;sf=fft(st);sf=T/N*fftshift(sf);function[t,st]=F2T(f,sf);%calculatethetimesignalusingifftdf=f(2)-f(1);Fmx=(f(end)-f(1)+df);dt=1/Fmx;N=length(sf);T=dt*N;t=(-N/2:N/2-1)*dt;sff=fftshift(sf);st=Fmx*ifft(sff);噪声dt=0.001;nt=4096;t=(-nt/2:nt/2-1)*dt;n0=0.01;B=2*fm;Pn=n0*B;noise=sqrt(Pn)*randn(1,length(t));1/5/20234傅里叶变换function[f,sf]=T2F(t,sfunction[tst]=lpf(f,sf,B)%filteraninputsignalusingalowpassfilterdf=f(2)-f(1);T=1/df;hf=zeros(1,length(f));bf=[-floor(B/df):floor(B/df)]+floor(length(f)/2);hf(bf)=1;yf=hf.*sf;[t,st]=F2T(f,yf);st=real(st);低通滤波器1/5/20235function[tst]=lpf(f,sf,B)低%显示模拟调制的波形方法AM,文件S_AM.m%Signaldt=0.001;%时间采样间隔fmax=1;%信源最高频率fc=10;%载波中心频率T=5;%信号时长N=T/dt;t=[0:N-1]*dt;mt=sqrt(2)*cos(2*pi*fmax*t);%信源%AMmodulationA=2;s_am=(A+mt).*cos(2*pi*fc*t);%PowerSpectrumDensity[f,Xf]=F2T(t,s_am);%调制信号频谱PSD=(abs(Xf).^2)/T;%调制信号功率谱密度figure(1)subplot(211);plot(t,s_am);holdon;%画出AM信号波形plot(t,A+mt,'r--');%标示AM的包络

图5-4AM调制流图AM调制1/5/20236%显示模拟调制的波形方法AM,文件S_AM.m图5-4AMtitle('AM调制信号及其包络');xlabel('t');subplot(212);%画出功率谱图形plot(f,PSD);axis([-2*fc2*fc01.5*max(PSD)]);title('AM信号功率谱');xlabel('f');1/5/20237title('AM调制信号及其包络');DSB调制与解调%%%DSBmodulationanddemodulationcloseallclearall%signalsourcedt=0.001;fm=1;fc=10;%nt=4096;nt=5000;t=(-nt/2:nt/2-1)*dt;T=(t(end)-t(1)+dt)%T=5;%t=0:dt:T;mt=sqrt(2)*cos(2*pi*fm*t);%inputsignalm(t),meanofm(t)iszero%DSBmodulations_dsb=mt.*cos(2*pi*fc*t);%noiseN0=0.01;B=2*fm;Pn=N0*B;noise=sqrt(Pn)*randn(1,length(t));s_dsb=s_dsb+noise;figure(1)subplot(311)plot(t,s_dsb)holdonplot(t,mt,'r')1/5/20238DSB调制与解调%%%DSBmodulationand%DSBdemodulationrt=s_dsb.*cos(2*pi*fc*t);rt=rt-mean(rt);subplot(312)plot(t,rt)holdon[f,rf]=T2F(t,rt);[t,rt]=lpf(f,rf,2*fm);subplot(313)plot(t,rt)holdonplot(t,mt/2,'r')figure(2)[f,sf]=T2F(t,s_dsb);psf=(abs(sf).^2)/T;plot(f,psf)1/5/20239%DSBdemodulation12/30/20229

单极性非归零码是一种最简单、最常用的基带信号形式。这种信号脉冲的零电平和正电平分别对应着二进制代码0和1,或者说,它在一个码元时间内用脉冲的有或无来对应表示0或1码。其特点是极性单一,有直流分量,脉冲之间无间隔。另外位同步信息包含在电平的转换之中,但是当出现连0或连1序列时没有位同步信息。生成单极性非归零码的流程图如图所示。为变量赋初值生成snrz信号画出snrz信号的波形结束开始1/5/202310单极性非归零码是一种最简单、最常用的基带信MATLAB实现程序如下:

functiony=snrz(x)

%本函数实现将输入的一段二进制代码编为相应的单极性不归零码输出%输入x为二进制码,输出y为编好的码t0=200;t=0:1/t0:length(x);%给出相应的时间序列fori=1:length(x)%计算码元的值ifx(i)==1%如果输入信息为1forj=1:t0%该码元对应的点值取1y((i-1)*t0+j)=1;endelseforj=1:t0%如果输入信息为0,码元对应的点值取0y((i-1)*t0+j)=0;endendendy=[y,x(i)];plot(t,y);单极性非归零码

为变量赋初值生成snrz信号画出snrz信号的波形结束开始1/5/202311MATLAB实现程序如下:functiony=snrz(在命令窗口中键入x的二进制代码和函数名,就可以得到所对应的单极性不归零码输出,如输入以下指令,将出现图示结果。x=[10110010];snrz(x)单极性非归零码

1/5/202312在命令窗口中键入x的二进制代码和函数名,就可以得到所对应单极双极性非归零码的实现同单极性基本一样,只需将snrz.m中的判断得到0信息后的语句y((i-1)*t0+j)=0;中的0改为-1即可,波形图如图所示。

双极性非归零码

双极性非归零码

1/5/202313双极性非归零码的实现同单极性基本一样,只需将snrz.m中的其MATLAB实现如下:(函数文件srz.m)functiony=srz(x)%本函数实现将输入的一段二进制代码编为相应的单极性归零码输出%输入x为二进制码,输出y为编好的码t0=200;t=0:1/t0:length(x);%给出相应的时间序列fori=1:length(x)%计算码元的值ifx(i)==1%如果输入信息为1forj=1:t0/2y((2*i-2)*t0/2+j)=1;%定义前半段时间值为1y((2*i-1)*t0/2+j)=0;%定义后半段时间值为0endelseforj=1:t0%如果输入信息为0y((i-1)*t0+j)=0;%定义所有时间值为0endendendy=[y,x(i)];plot(t,y);单极性归零码

1/5/202314其MATLAB实现如下:(函数文件srz.m)functi

同理,在命令窗口中键入x的二进制代码和函数名,就可以得到所对应的单极性归零码输出,如输入以下指令,将出现图示结果。x=[10110010];srz(x)单极性归零码

1/5/202315同理,在命令窗口中键入x的二进制代码和函数名

双极性归零码的MATLAB实现同单极性也基本一样,只需将srz.m中的判断得到0信息后的语句forj=1:t0y((i-1)*t0+j)=0;改为forj=1:t0/2y((2*i-2)*t0/2+j)=-1;y((2*i-1)*t0/2+j)=0;即可,其波形图如图示。双极性归零码

1/5/202316双极性归零码的MATLAB实现同单极性也基本一样,只设发送的数字基带信号为,其中,,独立同分布,+1和-1的发送概率相同,信道中加性高斯白噪声的双边功率谱密度为,接收滤波器为的匹配滤波器。通过MATLAB仿真该通信系统的性能,并与理论结果对比解:通过MATLAB采用蒙特卡罗方法仿真该通信系统误码性能的程序如下,流程图如图所示。1/5/202317设发送的数字基带信号为EbN0dB=0:0.5:10;N0=10.^(-EbN0dB/10);sigma=sqrt(N0/2);%理论计算的误码率Pb=0.5*erfc(sqrt(1./N0));%仿真误码率forn=1:length(EbN0dB)%产生等概信源a=sign(randn(1,100000));%离散等效接收模型rk=a+sigma(n)*randn(1,100000);dec_a=sign(rk);%判决%计算误码率ber(n)=sum(abs(a-dec_a)/2)/length(a);

end为变量赋初值计算理论误码率画出理论误码率曲线结束开始计算仿真误码率画出仿真误码率曲线semilogy(EbN0dB,Pb);hold;semilogy(EbN0dB,ber,'rd-');legend('理论值','仿真结果');xlabel('Eb/N0(dB)');ylabel('Pb');1/5/202318EbN0dB=0:0.5:10;为变量赋初值计算理论误码率画1/5/20231912/30/202219%BERofdigitalbasebandcommunicationsystemcloseallSNRdB=[0:0.5:10];snr=10.^(SNRdB/10);N=100000;%%%TheoreticalBERBERt=0.5*erfc(sqrt(snr));sigma=sqrt(0.5./snr);%%%SimulatedBERforn=1:length(SNRdB);sig=sign(randn(1,N));noise=sigma(n)*randn(1,N);rs=sig+noise;rd=sign(rs);BERs(n)=sum(abs(sig-rd)/2)/N;endfigureplot(SNRdB,log10(BERt))holdonplot(SNRdB,log10(BERs),'rs')基带系统误码率1/5/202320%BERofdigitalbasebandcommTs=1;N=15;eye_num=6;a=1;N_data=1000;dt=Ts/N;t=-3*Ts:dt:3*Ts;%产生双极性数字信号d=sign(randn(1,N_data));dd=sigexpand(d,N);%基带系统冲击响应(升余弦)ht=sinc(t/Ts).*(cos(a*pi*t/Ts))./(1-4*a^2*t.^2/Ts^2+eps);st=conv(dd,ht);tt=-3*Ts:dt:(N_data+3)*N*dt-dt;subplot(211)为变量赋初值生成双极性数字信号画出基带信号波形结束开始计算升余弦基带系统冲击响应画眼图眼图(升余弦)1/5/202321Ts=1;为变量赋初值生成双极性数字信号画出基带信号波形结束plot(tt,st);axis([020-1.21.2]);xlabel('t/Ts');ylabel('基带信号');subplot(212)%画眼图ss=zeros(1,eye_num*N);ttt=0:dt:eye_num*N*dt-dt;fork=3:50ss=st(k*N+1:(k+eye_num)*N);drawnow;plot(ttt,ss);holdon;end;xlabel(t/Ts');ylabel('基带信号眼图');

1/5/202322plot(tt,st);12/30/202222(a)接收端基带信号(b)基带信号眼图1/5/202323(a)接收端基带信号(b)基带信号眼图12/30/20222眼图(理想低通)%%%eyeofLowPassclearallTs=1;N_sample=8;N=1000;dt=Ts/N_sample;t=0:dt:(N*N_sample-1)*dt;gt=ones(1,N_sample);d=sign(randn(1,N));a=sigexpand(d,N_sample);st=conv(a,gt);ht1=2.5*sinc(2.5*(t-5)/Ts);rt1=conv(st,ht1);ht2=sinc((t-5)/Ts);rt2=conv(st,ht2);eyediagram(rt1,40,5)eyediagram(rt2,40,5)1/5/202324眼图(理想低通)%%%eyeofLowPass12/3为变量赋初值生成2ASK信号开始结束画出原始二进制代码波形画出2ASK信号波形2ASK%本函数fskdigital.m实现将输入的一段二进制代码调制成相应的ask信号输出

%s为输入二进制码,f为载波频率,ask为调制后输出信号t=0:2*pi/99:2*pi;m1=[];c1=[];forn=1:length(s)ifs(n)==0;m=zeros(1,100);elses(n)==1;m=ones(1,100);endc=sin(f*t);m1=[m1m];c1=[c1c]endask=c1.*m1;subplot(211);plot(m1)title('原始信号');axis([0100*length(s)-0.11.1]);subplot(212);plot(ask)title('ASK信号');1/5/202325为变量赋初值生成2ASK信号开始结束画出原始二进制代码波形画2ASK信号波形在命令窗口中键入s的二进制代码和载波频率f,再输入函数名,就可以得到所对应的ask信号输出,其中载波频率与码元速率相同。1/5/2023262ASK信号波形在命令窗口中键入s的二进制代码和载波频functionfskdigital(s,f1,f2)%本函数fskdigital.m实现将输入的一段二进制代码调制成相应的fsk信号输出%s为输入二进制码,f1、f2分别为代码0、1对应的载波频率,fsk为调制后输出信号t=0:2*pi/99:2*pi;m1=[];c1=[];b1=[];forn=1:length(s)ifs(n)==0;m=ones(1,100);c=sin(f2*t);b=zeros(1,100)2FSK1/5/202327functionfskdigital(s,f1,f2)2Felses(n)==1;m=ones(1,100);c=sin(f1*t);b=ones(1,100)endm1=[m1m];c1=[c1c];b1=[b1b];endfsk=c1.*m1;subplot(211);plot(b1,'r')title('原始信号');axis([0100*length(s)-0.11.1]);gridon;subplot(212);plot(fsk)1/5/202328elses(n)==1;12/30/2022282FSK信号波形在命令窗口中键入s的二进制代码和载波频率f1、f2,再输入函数名,就可以得到所对应的fsk信号输出,如输入以下指令:s=[10110010];f1=200;f2=100;fskdigital其中0信号所对应的载波频率与码元速率相同,1信号所对应的载波频率为码元速率的两倍。

1/5/2023292FSK信号波形在命令窗口中键入s的二进制代码和载波频率f1functionpskdigital(s,f)%本函数实现将输入的一段二进制代码调制成相应的psk信号输出%s为输入二进制码,f为载波频率,psk为调制后输出信号t=0:2*pi/99:2*pi;m1=[];c1=[];b1=[];forn=1:length(s)ifs(n)==0;m=-ones(1,100);b=zeros(1,100)elses(n)==1;m=ones(1,100);b=ones(1,100)end2FSK1/5/202330functionpskdigital(s,f)2FSK12c=sin(f*t);m1=[m1m];c1=[c1c]b1=[b1b];endpsk=c1.*m1;subplot(211);plot(b1)title('原始信号');axis([0100*length(s)-0.21.1]);subplot(212);plot(psk);title('PSK信号');gridon;1/5/202331c=sin(f*t);12/30/202231在命令窗口中键入s的二进制代码和载波频率f,再输入函数名,就可以得到所对应的psk信号输出,如输入以下指令:s=[10110010];f=100;pskdigital其中载波频率与码元速率相同。图8-172PSK信号波形1/5/202332在命令窗口中键入s的二进制代码和载波频率f,再输入函数名,就QPSK(4PSK)性能%QPSK(4PSK)clearallfigureM=4;snrdB=3:0.5:10;snr=10.^(snrdB/10);E0=1;sigma=sqrt(1./(2*snr));error=zeros(1,length(snrdB));N=10000;1/5/202333QPSK(4PSK)性能%QPSK(4PSK)12/30/fork=1:length(snrdB)error(k)=0;d=ceil(rand(1,N)*M);s=sqrt(E0)*exp(j*2*pi/M*(d-1));r=s+sigma(k)*(randn(1,length(d))+j*randn(1,length(d)));

form=1:Mrd(m,:)=abs(r-sqrt(E0)*exp(j*2*pi/M*(m-1)));end

forn=1:length(s)dd1=find(rd(:,n)==min(rd(:,n)));dd(n)=dd1(1);ifdd(n)~=d(n)error(k)=error(k)+1;endendenderrorPe=error/N;plot(snrdB,log10(Pe),'rs')holdonPet=erfc(sqrt(snr)*sin(pi/M));plot(snrdB,log10(Pet))1/5/202334fork=1:length(snrdB)Pe=er通信原理课程设计2012年12月1/5/202335通信原理课程设计2012年12月12/30/20221通信MATLAB仿真基础信号>>symsabc>>solve('a*x^2+b*x+c=0','x')ans=1/2/a*(-b+(b^2-4*a*c)^(1/2))1/2/a*(-b-(b^2-4*a*c)^(1/2))%%%waveformandspectrumofsinsignalcloseallK=10;f1=1;f2=2;N=2^k;dt=0.01;%msdf=1/(N*dt);%KHzT=N*dt;%截短时间Bs=N*df/2;%系统带宽f=[-Bs:df:Bs-df];%频域横坐标t=[-T/2:dt:T/2-dt];%时域横坐标1/5/202336通信MATLAB仿真基础信号>>symsabc%%%s=2*sin(2*pi*f1*t)+3*sin(2*pi*f2*t);[f,S]=T2F(t,s);%S是s的傅氏变换[t,a]=F2T(f,S);%a是S的傅氏反变换a=real(a);as=abs(S);f0=max(f1,f2);figuresubplot(2,1,1)%输出的频谱plot(f,as,'b');gridaxis([-2*f0,+2*f0,min(as),max(as)])xlabel('f(KHz)');ylabel('|S(f)|(V/KHz)')subplot(2,1,2)plot(t,a,'black')%输出信号波形画图gridaxis([-2/f0,+2/f0,-5,5])xlabel('t(ms)');ylabel('a(t)(V)')1/5/202337s=2*sin(2*pi*f1*t)+3*sin(2*pi*傅里叶变换function[f,sf]=T2F(t,st)%calculateasignal'sFouriertransilationdt=t(2)-t(1);T=(t(end)-t(1)+dt);df=1/T;N=length(st);f=(-N/2:N/2-1)*df;sf=fft(st);sf=T/N*fftshift(sf);function[t,st]=F2T(f,sf);%calculatethetimesignalusingifftdf=f(2)-f(1);Fmx=(f(end)-f(1)+df);dt=1/Fmx;N=length(sf);T=dt*N;t=(-N/2:N/2-1)*dt;sff=fftshift(sf);st=Fmx*ifft(sff);噪声dt=0.001;nt=4096;t=(-nt/2:nt/2-1)*dt;n0=0.01;B=2*fm;Pn=n0*B;noise=sqrt(Pn)*randn(1,length(t));1/5/202338傅里叶变换function[f,sf]=T2F(t,sfunction[tst]=lpf(f,sf,B)%filteraninputsignalusingalowpassfilterdf=f(2)-f(1);T=1/df;hf=zeros(1,length(f));bf=[-floor(B/df):floor(B/df)]+floor(length(f)/2);hf(bf)=1;yf=hf.*sf;[t,st]=F2T(f,yf);st=real(st);低通滤波器1/5/202339function[tst]=lpf(f,sf,B)低%显示模拟调制的波形方法AM,文件S_AM.m%Signaldt=0.001;%时间采样间隔fmax=1;%信源最高频率fc=10;%载波中心频率T=5;%信号时长N=T/dt;t=[0:N-1]*dt;mt=sqrt(2)*cos(2*pi*fmax*t);%信源%AMmodulationA=2;s_am=(A+mt).*cos(2*pi*fc*t);%PowerSpectrumDensity[f,Xf]=F2T(t,s_am);%调制信号频谱PSD=(abs(Xf).^2)/T;%调制信号功率谱密度figure(1)subplot(211);plot(t,s_am);holdon;%画出AM信号波形plot(t,A+mt,'r--');%标示AM的包络

图5-4AM调制流图AM调制1/5/202340%显示模拟调制的波形方法AM,文件S_AM.m图5-4AMtitle('AM调制信号及其包络');xlabel('t');subplot(212);%画出功率谱图形plot(f,PSD);axis([-2*fc2*fc01.5*max(PSD)]);title('AM信号功率谱');xlabel('f');1/5/202341title('AM调制信号及其包络');DSB调制与解调%%%DSBmodulationanddemodulationcloseallclearall%signalsourcedt=0.001;fm=1;fc=10;%nt=4096;nt=5000;t=(-nt/2:nt/2-1)*dt;T=(t(end)-t(1)+dt)%T=5;%t=0:dt:T;mt=sqrt(2)*cos(2*pi*fm*t);%inputsignalm(t),meanofm(t)iszero%DSBmodulations_dsb=mt.*cos(2*pi*fc*t);%noiseN0=0.01;B=2*fm;Pn=N0*B;noise=sqrt(Pn)*randn(1,length(t));s_dsb=s_dsb+noise;figure(1)subplot(311)plot(t,s_dsb)holdonplot(t,mt,'r')1/5/202342DSB调制与解调%%%DSBmodulationand%DSBdemodulationrt=s_dsb.*cos(2*pi*fc*t);rt=rt-mean(rt);subplot(312)plot(t,rt)holdon[f,rf]=T2F(t,rt);[t,rt]=lpf(f,rf,2*fm);subplot(313)plot(t,rt)holdonplot(t,mt/2,'r')figure(2)[f,sf]=T2F(t,s_dsb);psf=(abs(sf).^2)/T;plot(f,psf)1/5/202343%DSBdemodulation12/30/20229

单极性非归零码是一种最简单、最常用的基带信号形式。这种信号脉冲的零电平和正电平分别对应着二进制代码0和1,或者说,它在一个码元时间内用脉冲的有或无来对应表示0或1码。其特点是极性单一,有直流分量,脉冲之间无间隔。另外位同步信息包含在电平的转换之中,但是当出现连0或连1序列时没有位同步信息。生成单极性非归零码的流程图如图所示。为变量赋初值生成snrz信号画出snrz信号的波形结束开始1/5/202344单极性非归零码是一种最简单、最常用的基带信MATLAB实现程序如下:

functiony=snrz(x)

%本函数实现将输入的一段二进制代码编为相应的单极性不归零码输出%输入x为二进制码,输出y为编好的码t0=200;t=0:1/t0:length(x);%给出相应的时间序列fori=1:length(x)%计算码元的值ifx(i)==1%如果输入信息为1forj=1:t0%该码元对应的点值取1y((i-1)*t0+j)=1;endelseforj=1:t0%如果输入信息为0,码元对应的点值取0y((i-1)*t0+j)=0;endendendy=[y,x(i)];plot(t,y);单极性非归零码

为变量赋初值生成snrz信号画出snrz信号的波形结束开始1/5/202345MATLAB实现程序如下:functiony=snrz(在命令窗口中键入x的二进制代码和函数名,就可以得到所对应的单极性不归零码输出,如输入以下指令,将出现图示结果。x=[10110010];snrz(x)单极性非归零码

1/5/202346在命令窗口中键入x的二进制代码和函数名,就可以得到所对应单极双极性非归零码的实现同单极性基本一样,只需将snrz.m中的判断得到0信息后的语句y((i-1)*t0+j)=0;中的0改为-1即可,波形图如图所示。

双极性非归零码

双极性非归零码

1/5/202347双极性非归零码的实现同单极性基本一样,只需将snrz.m中的其MATLAB实现如下:(函数文件srz.m)functiony=srz(x)%本函数实现将输入的一段二进制代码编为相应的单极性归零码输出%输入x为二进制码,输出y为编好的码t0=200;t=0:1/t0:length(x);%给出相应的时间序列fori=1:length(x)%计算码元的值ifx(i)==1%如果输入信息为1forj=1:t0/2y((2*i-2)*t0/2+j)=1;%定义前半段时间值为1y((2*i-1)*t0/2+j)=0;%定义后半段时间值为0endelseforj=1:t0%如果输入信息为0y((i-1)*t0+j)=0;%定义所有时间值为0endendendy=[y,x(i)];plot(t,y);单极性归零码

1/5/202348其MATLAB实现如下:(函数文件srz.m)functi

同理,在命令窗口中键入x的二进制代码和函数名,就可以得到所对应的单极性归零码输出,如输入以下指令,将出现图示结果。x=[10110010];srz(x)单极性归零码

1/5/202349同理,在命令窗口中键入x的二进制代码和函数名

双极性归零码的MATLAB实现同单极性也基本一样,只需将srz.m中的判断得到0信息后的语句forj=1:t0y((i-1)*t0+j)=0;改为forj=1:t0/2y((2*i-2)*t0/2+j)=-1;y((2*i-1)*t0/2+j)=0;即可,其波形图如图示。双极性归零码

1/5/202350双极性归零码的MATLAB实现同单极性也基本一样,只设发送的数字基带信号为,其中,,独立同分布,+1和-1的发送概率相同,信道中加性高斯白噪声的双边功率谱密度为,接收滤波器为的匹配滤波器。通过MATLAB仿真该通信系统的性能,并与理论结果对比解:通过MATLAB采用蒙特卡罗方法仿真该通信系统误码性能的程序如下,流程图如图所示。1/5/202351设发送的数字基带信号为EbN0dB=0:0.5:10;N0=10.^(-EbN0dB/10);sigma=sqrt(N0/2);%理论计算的误码率Pb=0.5*erfc(sqrt(1./N0));%仿真误码率forn=1:length(EbN0dB)%产生等概信源a=sign(randn(1,100000));%离散等效接收模型rk=a+sigma(n)*randn(1,100000);dec_a=sign(rk);%判决%计算误码率ber(n)=sum(abs(a-dec_a)/2)/length(a);

end为变量赋初值计算理论误码率画出理论误码率曲线结束开始计算仿真误码率画出仿真误码率曲线semilogy(EbN0dB,Pb);hold;semilogy(EbN0dB,ber,'rd-');legend('理论值','仿真结果');xlabel('Eb/N0(dB)');ylabel('Pb');1/5/202352EbN0dB=0:0.5:10;为变量赋初值计算理论误码率画1/5/20235312/30/202219%BERofdigitalbasebandcommunicationsystemcloseallSNRdB=[0:0.5:10];snr=10.^(SNRdB/10);N=100000;%%%TheoreticalBERBERt=0.5*erfc(sqrt(snr));sigma=sqrt(0.5./snr);%%%SimulatedBERforn=1:length(SNRdB);sig=sign(randn(1,N));noise=sigma(n)*randn(1,N);rs=sig+noise;rd=sign(rs);BERs(n)=sum(abs(sig-rd)/2)/N;endfigureplot(SNRdB,log10(BERt))holdonplot(SNRdB,log10(BERs),'rs')基带系统误码率1/5/202354%BERofdigitalbasebandcommTs=1;N=15;eye_num=6;a=1;N_data=1000;dt=Ts/N;t=-3*Ts:dt:3*Ts;%产生双极性数字信号d=sign(randn(1,N_data));dd=sigexpand(d,N);%基带系统冲击响应(升余弦)ht=sinc(t/Ts).*(cos(a*pi*t/Ts))./(1-4*a^2*t.^2/Ts^2+eps);st=conv(dd,ht);tt=-3*Ts:dt:(N_data+3)*N*dt-dt;subplot(211)为变量赋初值生成双极性数字信号画出基带信号波形结束开始计算升余弦基带系统冲击响应画眼图眼图(升余弦)1/5/202355Ts=1;为变量赋初值生成双极性数字信号画出基带信号波形结束plot(tt,st);axis([020-1.21.2]);xlabel('t/Ts');ylabel('基带信号');subplot(212)%画眼图ss=zeros(1,eye_num*N);ttt=0:dt:eye_num*N*dt-dt;fork=3:50ss=st(k*N+1:(k+eye_num)*N);drawnow;plot(ttt,ss);holdon;end;xlabel(t/Ts');ylabel('基带信号眼图');

1/5/202356plot(tt,st);12/30/202222(a)接收端基带信号(b)基带信号眼图1/5/202357(a)接收端基带信号(b)基带信号眼图12/30/20222眼图(理想低通)%%%eyeofLowPassclearallTs=1;N_sample=8;N=1000;dt=Ts/N_sample;t=0:dt:(N*N_sample-1)*dt;gt=ones(1,N_sample);d=sign(randn(1,N));a=sigexpand(d,N_sample);st=conv(a,gt);ht1=2.5*sinc(2.5*(t-5)/Ts);rt1=conv(st,ht1);ht2=sinc((t-5)/Ts);rt2=conv(st,ht2);eyediagram(rt1,40,5)eyediagram(rt2,40,5)1/5/202358眼图(理想低通)%%%eyeofLowPass12/3为变量赋初值生成2ASK信号开始结束画出原始二进制代码波形画出2ASK信号波形2ASK%本函数fskdigital.m实现将输入的一段二进制代码调制成相应的ask信号输出

%s为输入二进制码,f为载波频率,ask为调制后输出信号t=0:2*pi/99:2*pi;m1=[];c1=[];forn=1:length(s)ifs(n)==0;m=zeros(1,100);elses(n)==1;m=ones(1,100);endc=sin(f*t);m1=[m1m];c1=[c1c]endask=c1.*m1;subplot(211);plot(m1)title('原始信号');axis([0100*length(s)-0.11.1]);subplot(212);plot(ask)title('ASK信号');1/5/202359为变量赋初值生成2ASK信号开始结束画出原始二进制代码波形画2ASK信号波形在命令窗口中键入s的二进制代码和载波频率f,再输入函数名,就可以得到所对应的ask信号输出,其中载波频率与码元速率相同。1/5/2023602ASK信号波形在命令窗口中键入s的二进制代码和载波频functionfskdigital(s,f1,f2)%本函数fskdigital.m实现将输入的一段二进制代码调制成相应的fsk信号输出%s为输入二进制码,f1、f2分别为代码0、1对应的载波频率,fsk为调制后输出信号t=0:2*pi/99:2*pi;m1=[];c1=[];b1=[];forn=1:length(s)ifs(n)==0;m=ones(1,100);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论