MATLAB程序仿真FSK.doc_第1页
MATLAB程序仿真FSK.doc_第2页
MATLAB程序仿真FSK.doc_第3页
MATLAB程序仿真FSK.doc_第4页
MATLAB程序仿真FSK.doc_第5页
免费预览已结束,剩余13页可下载查看

下载本文档

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

文档简介

武汉理工大学Matlab课程设计报告目录目录1中文摘要IAbstractII1 引言11.1 MATLAB软件简介11.2 课程设计的目的11.3 课程设计的步骤12 设计原理32.1 正弦信号的律PCM编码32.2 FSK信号的调制32.3 FSK信号的解调43 FSK调制解调的具体实现53.1信号律PCM编码的实现53.2 FSK调制的实现64 个人体会14参考文献1515中文摘要本设计主要是利用MATLAB集成环境下的M文件,编写程序来实现FSK解调实现对正弦信号的律PCM编码、FSK调制以及解调等操作,并绘制出各种载波频率下解调前后的0-1序列波形图及其频谱分析图。在此基础上还对FSK调制的误码率和信噪比的关系进行了理论分析和实际验证,得出了误码率关于信噪比的关系曲线。关键词 PCM编码 FSK调制 误码率 信噪比AbstractThis design uses the M-files in the MATLAB software to realize the signals muon law pulse code modulation (PCM), FSK modulation and demodulation. And mapping out the 0-1 Sequence waveform in the process of the modulation and demodulation. Based on the operation mentioned above we analysis and compare the theoretical results and practical results of the relation curves between the FSK modulations error code ratio and its input SNR.Keywords: PCM coding FSK modulation error code ratio SNR武汉理工大学Matlab课程设计报告1 引言1.1 MATLAB软件简介MATLAB(Matrix Laboratory,矩阵实验室)是Mathwork公司推出的一套高效率的数值计算和可视化软件。它以及其强大的数值分析、矩阵运算、信号处理和图形显示功能以及一个方便的、界面友好的用户环境吸引了广大专家学者的关注。MATLAB系统共有5个主要部分构成:1)MATLAB语言;2)MATLAB工作环境;3)MATLAB数学函数库;4)MATLAB图形处理系统;5)MATLAB应用程序接口。在MATLAB的命令窗口中逐条输入指令,可以运行得到相应的计算结果。但是当指令较为复杂时则要建立M文件,将指令写入M文件中,然后运行得到结果,这样可使程序简洁明了,同时又便于对程序的修改和维护。本次课程设计则是运用MATLAB进行FSK信号的仿真,通过MATLAB编程输出与该信号的调制解调有关的波形极其频谱。1.2 课程设计的目的本课程设计是实现FSK的PCM编码及其调制与解调。在此次课程设计中,我将通过多方搜集资料与分析,来理解FSK调制解调的具体过程和它在MATLAB中的实现方法。预期通过这个阶段的研习,更清晰地认识FSK的解调原理,同时加深对MATLAB这个通信仿真软件操作的熟练度,并在使用中去感受MATLAB的应用方式与特色。利用自主的设计过程来锻炼自己独立思考,分析和解决问题的能力,为我今后的自主学习研究提供具有实用性的经验。1.3 课程设计的步骤根据课程设计任务书的要求,本课程设计步骤如下:(1) 产生300Hz正弦信号,并对其进行律PCM编码;(2) 在第一种情况(载波频率为100k和150kHz)的载波频率下对正弦信号进行FSK调制,并绘制出调制信号、已调信号、波形、频谱。(3) 然后对已调信号进行解调,并绘制出解调信号的波形、频谱,及其误码率与输入信噪比关系曲线。(4) 分析仿真结果并撰写MATLAB课程设计的报告。2 设计原理2.1 正弦信号的律PCM编码模拟信号抽样后变成时间上离散的信号,但仍然是模拟信号,它必须要经过量化才成为数字信号。量化包括均匀量化和非均匀量化两种。而律压缩就是非均匀量化中的一种较为常用的方法。它根据,的规律进行量化。量化后通过编码器变换成二进制符号0和1即完成PCM编码。其原理框图如下: 模拟信号输入抽样保持量化器编码器PCM信号输出冲击脉冲 图2-1 PCM编码原理框图2.2 FSK信号的调制在频移键控的调制解调中,我们将源数字信号1和0分别进行不同频率调制,载波的频率随二进制基带信号在和两个频率点间切换。其表达式为(2-1)频移键控常采用调制方式需要两个不同频率断的载波信号,码元为“1”和码元为“0”时的载波频率不同,其数学表达式为(2-2)其中(2-3)(2-4)(2-5)(2-6)FSK调制的原理框图如图2-2所示:图2-2 频移键控调制原理框图2.3 FSK信号的解调在解调时可采用相干解调,同步检测的方式。其原理是将2FSK信号分解为上下两路2ASK信号分别进行解调,然后进行判决。这里的抽样判决是直接比较两路信号的抽样值大小,可以不专门设置门限。相干解调的原理框图如图2-3所示:图2-3 同步检测解调原理框图3 FSK调制解调的具体实现3.1信号律PCM编码的实现产生300Hz正弦信号,并对其进行律PCM编码;Matlab程序如下:%=% 产生300Hz正弦信号律PCM编码%=a=Signal_m;n=8;%u律非线性u = 100; amax=max(abs(a); c = zeros(size(a); for i = 1:length(a); c(i) = log(1+u*a(i)/log(1+u); end %均匀量化 c_quan=c; b_quan=c_quan; d=1/n;%量化间隔 q=d.*1:n; q=q-d/2;%量化电平 for i=1:n %定位第i个量化间隔码子 c_quan(find(q(i)-d/2=c_quan) & (c_quan=q(i)+d/2)=. q(i).*ones(1,length(find(q(i)-d/2=c_quan)&(c_quan绘制时域图形%=subplot(2,2,1);stairs(BitStream(1:20);title(调制信号);axis(0 20 -0.2 1.2); rand(state,sum(100*clock); randn(state,sum(100*clock); minTestLength=1000; maxTestLength=1000; A=1;Eb=A*A;EbN0=10; index=1; %作为每个信噪比的下标for EbN0=0:1:10 %信噪比由1到10 disp(程序在运行,请稍等。) N0=Eb*10(-EbN0/10); noiseVar=N0/2; %noise density 噪声密度 noiseRoot=sqrt(noiseVar); % square root of the noise噪声的均方差 errorCount=0; %误码的符号个数 testCount=0; %测试次数 w1=314000 ; %信号1载波角频率 w2=471000 ; %信号0载波角频率 mm=0:0.001:0.4; %抽样判决在t轴上的抽样矩阵 i=0; DemoFSK=zeros(1,minTestLength); FSK=zeros(1,4010); Noise_FSK=zeros(1,4010); while(1) i=i+1;%=以下为源信号经过FSK调制解调= src=BitStream(i); %产生随机数字信号scrsrc1=src; src2=1-src; %src1储存原始信号和src2储存与之相反的信号 noise=noiseRoot.*randn(1,length(mm);%高斯白噪声矩阵 fsk=cos(w1*mm)*src1+cos(w2*mm)*src2; Noise_fsk=fsk+noise;%对应矩阵mm的Noise_fsk矩阵 if i=1/2 DemoFSK(i)=1; else DemoFSK(i)=0; end if ave11/2&ave21/2 errorCount=errorCount+1; %对解调后信号错误的判断 elseif ave11/2&ave21/2 errorCount=errorCount+1; end testCount=testCount+1;%测试的长度 if(testCount0) thresholdTestLength=1/(tempBER);%根据计算出来的误码率来计算实际需要的测试次数下限(thresholdTestLength) else thresholdTestLength=maxTestLength;%当没有产生误码的时候,则实际的测试次数用最大的测试次数作为下限 end if(testCount=thresholdTestLength)%如果已经进行的测试次数大于测试下限,则停止while循环,否则,继续进行测试 myTestLength(index)=testCount; myBER(index)=tempBER myEbN0(index)=EbN0 index=index+1; break;%和while连用 end endendsubplot(2,2,2),plot(FSK(1:300);title(FSK信号);subplot(2,2,3),plot(Noise_FSK(1:300);title(加入噪声的FSK信号);subplot(2,2,4),Stairs(DemoFSK(1:20),axis(0 20 -0.2 1.2);title(解调后的信号);%=% 绘制频域图形%=figure,subplot(2,2,1);plot(abs(fft(BitStream);title(调制信号频谱);subplot(2,2,2),plot(abs(fft(FSK);title(FSK信号频谱);subplot(2,2,3),plot(abs(fft(Noise_FSK);title(加入噪声的FSK信号频谱);subplot(2,2,4),plot(abs(fft(DemoFSK);title(解调后的信号频谱); figure,semilogy(myEbN0,myBER,r+-); %Draw curves for the resultsxlabel(信噪比(dB));ylabel(误码率);hold onf EbN0_R=10.(myEbN0/10); %信噪比thBER=0.5*erfc(sqrt(EbN0_R/2);semilogy(myEbN0,thBER,*-);%绘制关系曲线legend(仿真结果,理论结果); grid;运行结果:图3-1 Figure1图形图3-2 Figure2图形图3-3 Figure3图形然后在第二种(载波频率为100k和180kHz)和第三种情况(载波频率为100k和220kHz)的载波频率下分别重复(2)、(3)并得出结果。第二种情况:图3-4 Figure1图形图3-5 Figure2图形图3-6 Figure3图形第三种情况:图3-7 Figure1图形图3-8 Figure2图形图3-9 Figure3图形4 个人体会在这次课程设计过程中,我获益匪浅。实现了所学FSK调制解调的仿真,对FSK的原理更加熟悉了,体会到理论和实际是有好大不同的,实践离不开理论,理论只有应用于实践才能发挥其作用。学过的东西,只有自己实际去做了才能更熟悉,才能对其本质更了解。在将理论用各种方法实现的同时,我们也在不断的搜集资料,不断的学习,获得更多的相关知识。在对MATLAB的应用中和学习别人的程序时,我体会到MATLAB

温馨提示

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

评论

0/150

提交评论