《2FSK信号的调制与解调matlab程序.docx》由会员分享,可在线阅读,更多相关《2FSK信号的调制与解调matlab程序.docx(4页珍藏版)》请在第壹文秘上搜索。
1、clearall;closeall;f=300;t=2*(0:0.001:1-0.01)f;x=t;singal=sin(2*pi*f*x)+l;%U率PCM编码%a=singal;n=8;%u率非线性u=255;%待考察,应当是255%c=zeros(size(八));fori=l:length(八)c(i)=log(1+u*a(i)log(1+u);%在PCM中要求X应当大于0endcmax=max(c);cmin=min(c);%匀称量化c_quan=c;b_quan=c_quan;d=(cmax-cmin)n;%此处有问题%自己写的量化代码%forj=l:n+lkk(j)=cmin+j
2、*d;endfork=l:nq(k)=(kk(k)+kk(k1)/2;end%fori=l:nm=find(q(i)-d2=c_quan);c_quan(m)=q(i).*ones(1,length(m);b_quan(find(c_quan=q(i)=(i-l).*ones(1,length(find(c_quan=q(i);end%编码nu=ceil(log2(n);code=zeros(length(八),nu);fori=l:length(八)forj=(nu-l):-l:0if(fix(b-quan(i)(2j)=1)code(i,(nu-j)=1;b_quan(i)=b-quan(
3、i)-2j;endendendbitstorm=U;fori=1.length(COde)bitstorm=bitstorm,code(i,:);end%FSK调制的实现%figuresubplot(221);stairs(bitstorm(1:20);title(调制信号);axis(0,20,-0.1,1.2);gridon%这是设置随机数值%rand(statesum(100*clock);randn(state,sum(100*clock);mintestlongth=1000;maxtestlongth=1000;A=1;Eb=A*A;SNR=10;%信噪比index=1;%forS
4、NRl=0:10dispC程序在运行,请稍等.,);NO=Eb*10N-SNR/10);%待解决noiseVar=NO/2;%噪声密度noiseRoot=sqrt(noiseVar)%噪声的均方差errorCount=0;testCount=0;fl=1;f2=2;mm=0:0.02:1-0.02;%抽样判决在t轴上的抽样矩阵i=0;DemoFSK=zeros(1,mintestlongth);FSK=zeros(lJ0*length(mm);%这是为什么noise_FSK=zeros(1,10*length(mm);while(1)i=i+l;%调制解调src=bitstorm(i);src
5、l=src;src2=I-src;noise=noiseRoot.*randn(lJength(noiseRoot);%高斯白噪声矩阵fsk=cos(2*pi*fl*mm)*srcl+cos(2*pi*f2*mm)*src2;noise_fsk=fsk+noise;ifi=1/2DemoFSK(i)=1;elseDemoFSK(i)=0;endifavol1/2&avo21/2errorCount=errorCount+I;elseifavo11/2&avo21/2errorCount=errorCount+I;endtestCount=testCount+1;%测试的长度if(testCou
6、ntO)IhreshoIdTest1.ongth=1/tenipBER;%依据误码率来确定测试的长度elseIhresholdTest1.ongth=maxtestlongth;endif(testCount=thresholdTest1.ongth)myTest1.ength(index)=testCount;myBER(index)=tempBER;mySNR(index)=SNR;index=index+1;breakendend%endsubplot(222),Plot(FSK)UitleCFSK信号);subplot(223),plot(noise_FSK);titleC加入噪声的F
7、SK信号);SUbPlOt(224),StairS(DemOFSK(1:20),axis(0,20,-0.2.解调后的信号);figure(2);SUbPlot(221),PIot(O4ength(bitstorm)-l),10*loglO(abs(fft(bitstorm);title(调制信号频谱);SUbPlOt(222),PIot(OUength(FSK)-1),10*log10(abs(fft(FSK);title(FSK信号频谱);subplot(223),plot(0:length(noise_FSK)-1),10*log10(abs(fft(noiseJFSK);title(加入噪声的FSK信号频谱);SUbPIOt(224),Plot(OJength(DemoFSK)-1),10*log10(abs(fft(DemoFSK);title(解调后的信号频谱);figureSemilogy(mySNR,myBER;r+,);XlabeIC信噪比XylabelC误码率holdon;SNR-R=10(mySNR10);thBER=0.5*erfc(sqrt(SNR.R2);SemiIOgy(mySNR,thBER,*-);IegendC仿真结果理论结果;gridon;