ASK信号的仿真分析_第1页
ASK信号的仿真分析_第2页
ASK信号的仿真分析_第3页
ASK信号的仿真分析_第4页
ASK信号的仿真分析_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、学号:武模理7人孚课程设计题 目ASK信号的仿真分析学院信息工程学院专业通信工程班级1405班姓名指导教师周建新2017 年 1 月 5 日Matlab原理与应用课程设计任务书学生姓名: 专业班级: 通信1405班指导教师:周建新工作单位:信息工程学院题目:ASK信号的仿真分析初始条件:理论方面一一电路分析基础、模拟电子、高频电子线路、通信原理、数字信号处理等专业知识设备方面一一微型计算机软件方面 Matlab仿真平台场地方面一一鉴主15楼通信实验室一要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明 书撰写等具体要求)1 .理论设计与分析,包括理论的推导和计算过程。2 .制作相应

2、的Matlab编制仿真程序,并与理论结果对比,最后得出结论。3 .完成课程设计报告,包括必要的公式、文字/图表说明和仿真结果。时间安排:本课程设计自任务书发布之日开始,分散进行,答辩时间统一。指导教师签名:2016年12月6日系主任(或责任教师)签名:2016年12月6日摘要 IAbstract II1 绪论 12 方案设计 22.1 编程产生2ASK信号 22.1.1 PCM编码原理 22.1.2 PCM编程函数 22.2 信号调制 52.2.1 ASK调制原理 52.2.2 ASK调制程序设计 62.3 解调 62.3.1 ASK 同步解调原理 62.3.2 ASK解调程序设计 63 方案

3、实现 83.1 2ASK信号产生仿真 83.2 调制方案的实现 103.3 同步解调方案的实现 114 结果测试 154.1 2ASK信号产生的结果分析 154.2 调制结果分析 164.3 解调结果分析 174.4 误码率与输入信噪比的关系 205 总结 21参考文献 23附录1 24附录2 27武汉理工大学Matlab原理与应用课程设计报告摘要MATLAB和Mathematica、Maple并称为三大数学软件,它可以进行矩阵运 算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等。 本文主要介绍PCM编码、ASK信号的调制和解调原理及 MATLAB仿真,以信 号与系统、通信

4、原理等专业知识作为支撑,以编程语言为工具在MATLAB平台通过调用其自带函数和编写主程序输出波形及频谱,通过参数的调整和图像分析进一步解释振幅键控的过程与特性并由误码率随信噪比变化曲线解读两者在调 制解调中的关系。关键词:MATLAB 编程 ASK 调制解调键入文字AbstractMATLAB and Mathematica, Maple, and known as the three major mathematical software, it can undertake matrix operations, drawing functions and data and realize t

5、he algorithm, to create the user interface, connecting other programming languages, etc., this paper mainly introduces the PCM coding, ASK the signal modulation and demodulation principle and the MATLAB simulation, signal and system, communication principle and other professional knowledge, with pro

6、gramming language as tools in the MATLAB platform by calling its own function and write the main program, output waveform and spectrum by parameters adjustment and the process of image analysis to further explain the amplitude keying and characteristics and the bit error rate change with SNR curve i

7、nterpretation both in the modem.Keywords: MATLAB programming ASK modulation demodulation1绪论ASK信号的matlab仿真分析课程设计目的是让学生熟悉 matlab语言,掌握 用键控法产生2ASKJ号的方法,并且能够利用matlab语言或者函数族进行专业 课程理论知识的再现,更深入得了解 2ASK信号的频谱特性及其与数字基带信号 频谱之间的关系,让学生体会matlab的强大功能,为今后使用matlab语言奠定 基础。ASK信号的仿真分析内容和要求:调制信号:300Hz正弦信号,经过以律PCM®码;

8、载波频率:100kHz;解调 方式:同步解调。要求:画出调制信号、已调信号、解调信号的波形、频谱以及误码率与输入 信噪比的关系曲线。2方案设计数字幅度调制又称幅度键控,二进制幅度键控记作2ASK。2ASK是利用代表数字信息“ 0”或“1”的基带矩形脉冲去键控一个连续的载波,使载波时断时 续得输出。有载波输出时表示发送“ 1”,无载波输出时表示发送“ 0”。本设计 主要采用相乘法来产生2ASK信号,实现2ASK的数字调制,采用相干解调法对 2ASK信号进行解调。2.1 编程产生2ASK信号本设计采用300Hz的正弦信号,通过以律PCM编码。2.1.1 PCM编码原理通常把从模拟信号抽样,量化,直

9、到变换成为二进制符号的基本过程称为脉 冲编码调制(PCM)。其原理框图如图2-1所示。PCM信号输出冲激脉冲图2-1 PCM编码原理框图2.1.2 PCM编程函数由于要产生信号,因此要调用 matlab自带正弦函数sin(),为了便于对比观 测,也将用到将多个图画到一个平面上的工具subplot()函数以及画图函数plot()。pcm编码采用15折线法,借助abs()函数返回一个数的绝对值,需要注意 的是:如果参数x是float,则返回的类型也是float,否则返回integer(因为float 通常比integer有更大的取值范围)。运用 max ()函数求出输入信号的最大值 后再用abs

10、()函数进行归一化处理,量化后将其存入一个矩阵中,这就需要用到 全零矩阵zeros(),由于15折线法由9位编码组成,因此矩阵应设计为length(S) 行,9列。段落码和段内码的程序编写相对简单,只需逐一判断量化后的数值段落位置和段内位置,再利用str2double()函数将字符由转换成数值存入矩阵得到数字信号输出。由于subplot()函数、plot()函数、全零矩阵zeros ()和全1矩P$ ones ()在 后续的设计中经常用到,这里我们先具体说明一下这几个函数的用法。ubplot()函数:使用方法:subplot (m,n,p)或者 subplot (m n p)。subplot是

11、将多个图画到一个平面上的工具。其中,m表示是图排成m行,n表示图排成n歹I,也就是整个figure中有n个图是排成一行的,一共 m行,如 果m=2就是表示2行图。p表示图所在的位置,p=1表示从左到右从上到下的第 一个位置。简单的例子:把绘图窗口分成两行两列四块区域,然后在每个区域分别作图基本步骤:subplot(2,2,1); % 2、2、1之间没有空格也可以在第一块绘图subplot(2,2,2);在第二块绘图subplot(2,2,3);在第三块绘图subplot(2,2,4);在第四块绘图编程示例:在MATLAB的命令窗口依次输入以下命令:(>> 不用输入)> >

12、; t=0:0.001:1;> > y1=sin(10*t);> > y2=sin(15*t);> > subplot(2,1,1)> > plot(t,y1)> > subplot(2,1,2)> > plot(t,y2)也可以将上述命令写成一个程序段:function subplot_sample1()close allfiguregrid ont=0:0.001:1;y1=sin(10*t);y2=sin(15*t);subplot(2,1,1)Plot(t,y1)subplot(2,1,2)Plot(t,y2)&l

13、t;plot()函数:plot函数是matlab中二维线画图函数。基本调用格式为:1、plot(y)当y为向量时,是以y的分量为纵坐标,以元素序号为横坐标,用直线依次连接数据点,绘制曲线。若y为实矩阵,则按列绘制每列对应的曲线。2、plot(x,y)若y和x为同维向量,则以x为横坐标,y为纵坐标绘制连线图。若x是向量, y是行数或列数与x长度相等的矩阵,则绘制多条不同色彩的连线图,x被作为这些曲线的共同横坐标。若x和y为同型矩阵,则以x,y对应元素分别绘制曲线, 曲线条数等于矩阵列数。3、plot(x1,y1,x2,y2,)在此格式中,每对x,y必须符合plot(x,y)中的要求,不同对之间没

14、有影响, 命令将对每一对x,y绘制曲线。以上三种格式中的x,y都可以是表达式。plot是绘制一维曲线的基本函数,但在使用此函数之前,须先定义曲线上每一点的x以及y坐标。简单的例子:在00x02兀区间内,绘制曲线 y=2e-0.5xcos(4兀x)编程示例:x=0:pi/100:2*pi;y=2*exp(-0.5*x).*cos(4*pi*x);plot(x,y)plot函数还可以同时输出多个曲线,由于本次课程设计无需用到此功能,因 此这里不再举例。全零夕!阵zeros ()zeros功能是返回一个 mXnXpX的double类零矩阵。注意:m, n, p,必 须是非负整数,负整数将被当做 0看

15、待。当没有参数classname时,产生的是标 量零矩阵,有参数时产生指定类型的零矩阵,例如 zeros(3,2,'uint8')。二维用法:zeros(m,n)或 zeros(n)功能:zeros(m,n)产生 mXn的double类零矩阵,zeros(n)产生nx n的全0 方阵。n 维用法:zeros(m,n,p,)或 zeros(m n p )或 zeros (m,n,p,classname 相关函数:ones、rand、randn、magic、eye编程示例:>> A=zeros(2,3)A =0 0 00 0 0>> B=zeros(3)B

16、=0 0 00 0 00 0 0全1矩阵ones ()ones()的用法与zeros ()的使用方法类似,这里不再赘述。2.2 信号调制2.2.1 ASK调制原理图2-2 ASK调制原理框图ASK基带信号经过电压比较器(LM339),输出高/低电平驱动模拟开关 (74HC4066)导通/关闭,ASK载波通过电压跟随电路(TL082)提高带负载能 力,然后通过模拟开关电路选择通过/截止,最后得到ASK调制信号输出。2.2.2 ASK调制程序设计为了所得波形的清晰与美观,我们选择抽样频率为3000Hz,那么在设置时问t的参数时,步长应为1/3000,坐标初值为0,终值为0.01,即t=0:1/30

17、00:0.01 由载波频率fc=100kHz可以大致设定载波时间t=0:40000*pi/199:40000*pi。若某 一位编码的数值为1则使用ones()函数产生1行200列的全1矩阵并将载波信 号输入为cos(f*t),即B=ones(1,200);cos(f*t),之所以将列数设为200,是为了观 测到连续的波形。同理,若某一位编码数值为0则同样使用ones()函数产生1行200列的全1矩阵,但是需要将载波信号设置为sin(0*t),因为输入信号为0时无载波输出,即 B=ones(1,200);c=sin(0*t)。最后利用subplot ()函数和 plot ()函数输出2ASK信号

18、调制波形和原始信号的频谱。2.3 解调2.3.1 ASK同步解调原理ASK信号的解调方法有非相干解调、相干解调和匹配滤波器三种,采用不 同解调方案的系统其抗噪性能有所不同。本次ASK课程设计我们采用相干解调(同步检测法)的方案,需要载波提取电路。相干解调框图如图2-3所示。2.3.2 ASK解调程序设计解调过程最重要的是选择合适的滤波器带宽。matlab自带巴特沃斯滤波器函数,通过调用语句n,wn=buttord(wp,ws,rp,rs)得到滤波后的波形。式中n代表滤 波器阶数,Wn代表滤波器的截止频率,语句功能可简述为:在wp处通带内波纹系数达到最大衰减rp,而在ws处阻带达到最小衰减rs,

19、默认求得的wn是在 (-3dB)时的频率。使用buttord函数需先求得最小阶数和截止频率,一般情况 下,截止频率不是计算的,而是根据信号选定的,本次选定fp=500;fs=700,根 据公式2*fs/fn和2*fp/fn计算出归一化的角频率,同时设定最大衰减 rp=3dB,rs=20dB。至于抽样判决程序,运用判断语句和循环语句即可实现。3方案实现3.1 2ASK信号产生仿真产生300Hz正弦信号,祖律PCM编码。为了窗口的美观,我们取 200为单位画出坐标,同时,当遇到 1时,输出 200个值为1的点,当遇到0时,输出200个值为0的点,并让这些点相连,使 之连续,形成直线。1将抽样频率设

20、为3000Hz,即每个正弦信号周期内均匀选取10(二00)个抽样13000点,然后根据输入信号S的数值求S的最大值,完成归一化后产生量化信号。至 于编码程序,则可根据2.1.4节编码原理分别完成符号位、段落码和段内码的判 断与编码。程序设计如下:function code2=pcm(S) %S 为输入信号t = 0:0.0001:0.01;fs = 3000;ts = 0:1/fs:0.01;Signal = sin(2*pi*300*t);Sign_m = sin(2*pi*300*ts);figuresubplot(2,1,1) plot(t,Signal);title(' sin

21、(2*pi*300*t)');subplot(2,1,2)%抽样stem(ts,Sign_m);title('3000HZ抽样波形');%量化%判断S的正负;%求$的最大值%归一化%量化z=sign(S);'MaxS=max(abs(S); S=abs(S/MaxS);Q=8160*S;code=zeros(length(S),9);%代码存储矩阵(全零)%段落码判断程序for i=1:length(S)if (Q(i)>=480)&&(Q(i)<=8160)code(i,2)=1;%在第五段与第八段之间,段位码第一位都为“1”end

22、if (Q(i)>96)&&(Q(i)<480)|(Q(i)>=2016)&&(Q(i)<=8160)code(i,3)=1;%在第三四七八段内,段位码第二位为“ 1”end if(Q(i)>=32)&&(Q(i)<96)|(Q(i)>=224)&&(Q(i)<480)|(Q(i)>=992)&&(Q(i)<2016)|(Q (i)>=4064)&&(Q(i)<=8160)code(i,4)=1;%在二四六八段内,段位码第三位为

23、“ 1”end end%段内码判断程序N=zeros(length(S);for i=1:length(S)N(i)=bin2dec(num2str(code(i,2:4)+1; %找到 code位于第几段enda=0,32,96,224,480,992,2016,4064;%量化间隔b=1,2,4,8,16,32,64,128;%除以16,得到每段的最小量化间隔for i=1:length(S)q=ceil(Q(i)-a(N(i)/b(N(i);% 求出在段内的位置if q=0code(i,(5:9)=0,0,0,0,0;%如果输入为零则输出 “ 0”else k=num2str(dec2b

24、in(q-1,5);% 编码段内码为二进制code(i,5)=str2double(k(1);code(i,6)=str2double(k(2);code(i,7)=str2double(k(3);code(i,8)=str2double(k(4);code(i,9)=str2double(k(5);武汉理工大学Matlab原理与应用课程设计报告endif z(i)>0code(i,1)=1;elseif z(i)<0code(i,1)=0;end%符号位的判断endfor i=1:length(S)for j=1:9code2(9*(i-1)+j)=code(i,j);enden

25、d3.2 调制方案的实现根据ASK调制原理,由于不可能将每个二进制序列都进行调制,因此,本 文选用随机的二进制序列作为测试用例。由于各种因素的干扰,为了具有更好的仿真效果,载波模块中的抽样时间参数设为1/3000,取每个值200个点也会方便 后面解调时的波形观测。clear all;close all;clf;%消除窗口中的图形max=50%定义max长度t=0:1/3000:0.01;g=pcm(sin(2*pi*300*t);cp电mod1=;f=2*100000*pi;t=0:40000*pi/199:40000*pi;for n=1:length(g);if g(n)=0;A=zero

26、s(1,200);% 每个值 200个点else g(n)=1;A=ones(1,200);endcp=cp A; %s(t),码元宽度 200c=cos(f*t); %载波信号mod1=mod1 c;%与s(t)等长的载波信号,变为矩阵形式 endfigure(1);subplot(3,2,1);plot(cp);grid on;axis(0 20*length(g) -2 2);title( 'PCM编码信号序列);键入文字武汉理工大学Matlab原理与应用课程设计报告cm=;mod=;for n=1:length(g);if g(n)=0;B=ones(1,200);% 每个值

27、200个点c=sin(0*t);%载波信号else g(n)=1;B=ones(1,200);c=cos(f*t);%载波信号endcm=cm B; %s(t),码元宽度 200mod=mod c; %与$(。等长的载波信号endtiaoz=cm.*mod; %e(t)调制figure(1);subplot(3,2,2);plot(tiaoz);grid on;axis(0 20*length(g) -2 2);title( '2ASK调制信号');figure(2);subplot(3,2,1);plot(abs(fft(cp);axis(0 20*length(g) 0 1

28、000);title('原始信号频谱');figure(2);subplot(3,2,2);plot(abs(fft(tiaoz);axis(0 20*length(g) 0 1000);title('2ASK信号频谱');3.3 同步解调方案的实现在调制后的信号中加入白噪声并画出通过高斯白噪声信道后的2ASK信号波形和频谱,观察解调输入端噪声对信号的影响。考虑误差影响,通过粗略计算, 这里暂时将信噪比设为10。tz=awgn(tiaoz,10);%信号调制中加入白噪声,信噪比为 10figure(1);subplot(3,2,3);plot(tz);grid

29、onaxis(0 20*length(g) -2 2);title('通过高斯白噪声信道后的2ASK信号');figure(2);subplot(3,2,3);plot(abs(fft(tz);axis(0 20*length(g) 0 1000);title('加入白噪声的2ASK信号频谱');根据2.3节所述ASK相干解调原理:调制信号先经过带通滤波器,然后与 载波提取信号相乘,再经低通滤波器,最后抽样判决得到同步解调波形。我们先对信号进行频域分析,主要目的是要确定信号的带宽,进而才能设计相应的滤波 器一一用本地产生一个频率、相位都与载波相同的余弦信号与接收

30、到的信号相 乘,其他部分相同,然后设计低通滤波器进行解调。为了更好得理解解调原理,更清晰得看到解调过程,matlab程序设计输出各阶段波形和频谱:jiet=2*mod1.*tz; %同步解调figure(1);subplot(3,2,4);plot(jiet);grid onaxis(0 20*length(g) -2 2);title('相乘后信号波形')figure(2);subplot(3,2,4);plot(abs(fft(jiet);axis(0 20*length(g) 0 1000);title('相乘后信号频谱');%低通滤波器fp=500;fs

31、=700;rp=3;rs=20;fn=11025;ws=fs/(fn/2); wp=fp/(fn/2); %计算归一化角频率 n,wn=buttord(wp,ws,rp,rs); %计算阶数和截止频率 b,a=butter(n,wn);%计算 H(z)jt=filter(b,a,jiet);figure(1);subplot(3,2,5);plot(jt);grid onaxis(0 20*length(g) -2 2);title('经低通滤波器后信号波形')键入文字武汉理工大学Matlab原理与应用课程设计报告figure(2);subplot(3,2,5);plot(ab

32、s(fft(jt);axis(0 20*length(g) 0 1000);title('经低通滤波器后信号频谱');%抽样判决for m=1:200*length(g);if jt(m)<0;jt(m)=0;else jt(m)>=0;jt(m)=1;endendfigure(1);subplot(3,2,6);plot(jt);grid onaxis(0 20*length(g) -2 2);title('经抽样判决后信号波形')figure(2);subplot(3,2,6);plot(abs(fft(jt);axis(0 20*length(

33、g) 0 1000);title('经抽样判决后信号频谱');在ASK的解调方式中,在相同输入信噪比的条件下,相干解调的性能优于 非相干解调,判决“ 0”、“1”等概时系统统计平均误码率为1Pe=- (Pe1+Pe0)误码率随着信噪比的增大而呈减小趋势。snr = 0 : 2: 20%信噪比范围len_snr = length(snr);for i = 1:len_snrSNR_eb = exp(snr(i)*log(10)/10);theo_err_prb(i) = (1/2)*erfc(sqrt(SNR_eb);%ASK 系统的误码率与信噪比的关系 end键入文字武汉理工大

34、学Matlab原理与应用课程设计报告figure(3);semilogy(snr,theo_err_prb'ko-');grid on;title('误码率随信噪比的变化曲线);键入文字4结果测试本课程设计的结果可以通过连接电路图或编写代码实现,为了达到更好得熟悉matlab软件、自主学习编程语言的目的,本文采用纯代码实现的方式给出各 参量图形。在文章第3节,我们已经根据第2节的原理基础给出部分代码,只需整合起 来在matlab仿真平台运行调试得出结果。4.1 2ASK信号产生的结果分析 Figure 1File Edit View Insert Took Deskto

35、p Window Help 口片口氢 c ® i 要 i 口层11W口sin(2*pi*300*t)图4-1 2ASK信号产生波形根据题目要求产生300Hz的正弦信号(如图4-1sin(2*pi*300t)所示),由于我们在设计时采用了 3000Hz的抽样频率,因此一个正弦周期内均匀选取了10个抽样点,对应于图4-1中3000Hz抽样波形图。4.2 调制结果分析 File Edit View Insert Tools Desktop Window Help图4-2 2ASK信号调制结果图图4-3 2ASK信号调制频谱图采用键控法对2ASK信号调制,其调制模型如图4-4所示:cos?c

36、t图4-4数字键控法2ASK信号的调制模型开关K受数字基带信号S的控制,当S= "1”时,K接1端,有载波输出; 当S= "0”时,K接0端,无信号输出。根据2ASK信号的功率谱密度特性:属于线性调制,将单极性基带序列的功 率谱密度平移至中心频率f=fc处。理论上原始信号只有一根最突出谱线,因为 原始信号的频率为300Hz,在未调制之前频谱图中不存在其它频率,当然,要除 去噪声的影响。在2ASK的信号频谱中,由于进行了调制,加入了高频载频,这 时应能够看到三条突出谱线,分别为 fc, fc-RB, fc+RB。观察仿真图形,虽然频 谱轮廓很精确,但频谱取值却有误差,这是系统

37、和软件误差,不可避免。武汉理工大学Matlab原理与应用课程设计报告4.3解调结果分析将第3章设计的程序在matlab平台运行得到如图4-5和图4-6所示波形和频 谱图:File Edit View llnsert Took Desktop Window Help图4-5调制解调输出波形键入文字武汉理工大学Matlab原理与应用课程设计报告键入文字File Edit View Insert Tools Desktop Window Help口自口膏fe吹06与夏口国日口600040002000原始信号频谱60002ASK信号频谱400020001I 山 I I I 1 LJ020004000加

38、入日噪声的2 AS K信号频谱5000LJ-L11XI ljli. jJ002000 4000 6000 8000经低通滤波器后信号频谱02000 4000 6000 8000 相乘后信号频谱经抽样判决后信号频谱图4-6调制解调频谱图通过观察,我们发现抽样判决后的波形图和 pcm编码信号波形有很大区别, 并且最终解调出的频谱与原始信号的频谱也有较大区别,但通过理论分析,加噪、相乘和低通滤波的结果除了些许误差并没有太大错误。那么很明显信噪比的参数需要重新设定,并且抽样判决程序也需要稍作修改。将信噪比调整为18,考虑经过解调各阶段积累的误差,将抽样判决阈值设 为“0.5”而非“0”或“1”。修改后

39、解调过程各阶段波型如图 4-7所示:通过高斯白噪声信道后的2ASK信号相乘后信号波形0020004000200040002经低通滤波器后信号波形220004000经抽样判决后信号波形2i-2L0-2L020004000图4-7解调波形加入高斯白噪声后波形出现很多毛刺,可见在解调输入端噪声对信号的影响。调制信号与载波相乘后,同号得正,异号得负,波形如图4-7中“相乘后信号波形”所示。经巴特沃斯低通滤波器滤除多余的分量后波形轮廓已经反映出 pcm调制信号,但还不是很规整,再经抽样判决即得出解调波形。解调过程各阶段频谱图如图4-8所示:经低通滤波器后信号频谱经抽样判决后信号频谱图4-8解调频谱图调制

40、信号与载波相乘后,中心频率为原载频的2倍,频谱图中依然可以观察 到三根最突出谱线。经过低通滤波器的滤波, 滤除了我们不需要的成分,保留了 有用成分。抽样判决以后的频谱和原始信号频谱几乎一样, 证明了设计的合理性 与正确性。4.4误码率与输入信噪比的关系W Figure图4-7误码率随信噪比的变化曲线如图4-7所示,随着信噪比的增大,误码率呈负指数曲线下降,并且误码率 始终是小于1的数值。从图形布局也可以确定我们选择横坐标为20存在其合理性,既能准确反映出二者关系又可以让图形更加美观。当信噪比为 15dB,误码 率约为10-25;当信噪比为20dB,误码率约为10-45。因此,我们在加入高斯白噪

41、 声阶段刚开始选取的信噪比(10)并不是很理想,当调整至 18,判决后的波形 和频谱符合理论推导。武汉理工大学Matlab原理与应用课程设计报告5总结通过本次 matlab仿真课程设计,我对 matlab软件有了更多的认识,比如 matlab有很多自带的函数,支持很多的复杂计算。虽然之前学习信号与系统 这门课程时使用matlab编写过一些简单的程序,其中有一些程序语句在本次仿 真中也有用到,但由于对编程语言的理解与运用还不成熟, 要想一个人完成ASK 信号仿真所有程序的编写还是有很大难度的。所以我将课题分成几个模块一一 pcm编码模块、调制模块、解调模块、误码率分析模块,将复杂的问题简单化。对

42、于时间连续的信号,利用傅里叶变换可以把信号从时域转换到频域,能在频域上进行分析,对于时间离散的信号, 信号是用序列表示的,相应的用离散傅 里叶变换算法,经过变换后的结果也是一个序列。2ASK的调制方法有模拟相乘法和数字键控法。2ASK 信号的解调,总的来说也是有两种基本方法一一相干解 调和非相干解调,本次课程设计的要求是相干解调法。因此,设计中的关键问题是如何选择合适的滤波器带宽等参数, 才能准确的滤出信号,这也是我在设计过 程中遇到的最大问题。前几次编程调试正是由于没有选择合适的参数,导致无法准确滤波。编写pcm编码程序时虽然也遇到一些麻烦,但由于可以使用matlab自带函数产生正弦信号,抽

43、样和量化的程序也可通过参考书的详解理解并编程,所以通过不多次的修改和调试便能运行出正确波形。当编写调写模块时,我深深得感受 到“书到用时方恨少”,因此我打算请教同学并上网查找参考程序,在看懂别人 所编写的程序的基础上加入自己的元素。通过通信原理理论课的学习,我已 经能够抽象得去理解数字键控法实现2ASK信号的调制和相干解调法实现 ASK 信号的解调,因此,编程思路清晰,在运行出错时也能很快锁定问题所在。这让 我明白:编程语言只是一种工具,最重要最基础的还是要明晰事物的原理。 为了 使课题内容丰满,我将解调过程中每一阶段的图像输出,以便观察分析整个解调过程。经过这一次的matlab课程设计,我收

44、获颇多。首先,它让我意识到合理安 排时间的重要性。在考试周的时候便接到课程设计任务, 我一直以为时间还很充 足,因此在一周之前从未真正开始思考本次课设的问题,当编写的程序屡屡出错需要边学习边完成任务时我也开始后悔没有早些准备。虽然最后也是保质保量的完成了仿真课设,但是如果回头去看,若是能早两天认识到自己编程方面的欠缺 并且提早学习,也不至于后来的加班加点。合理的时间安排和明晰的目标追求可 以提高做事效率,我相信,有了这一次的教训,在以后的学习和生活中我可以做 到更好地规划时间。本次课程设计过程教会我的第二点便是要形成自己的一套思 键入文字武汉理工大学Matlab原理与应用课程设计报告路。在遇到

45、问题请教同学的过程中, 我始终坚持自己的设计思路,遇到问题可以 想办法解决,但轻易膜拜别人的成果、否定自己的努力一般不会有很成功的结果。努力后的结果也证实了一件事情一一一个问题的解决方法不只一种,也不存在某个人的方案好某个人的方案不好问题,根据自身条件选择适合自己的方法才最重 要。最后,结合之前学过的 C、java、汇编语言等编程常用语言,我意识到编程 是需要一点点积累的,正所谓“冰冻三尺非一日之寒”,越是急于学成一项本领 越是很难取得成效。键入文字参考文献1刘泉,江雪梅.信号与系统.高等教育出版社.2010.2王虹.通信系统原理.国防工业出版社.2014.3樊昌信.通信原理.国防工业出版社.

46、2001.4郭文彬.通信原理:基于Matlab的计算机仿真.北京邮电大学出版社.2006.5赵鸿图.通信原理MATLAB仿真教程.人民邮电出版社.2010.武汉理工大学Matlab原理与应用课程设计报告附录1pcm编码程序:function code2=pcm(S) %S 为输入信号t = 0:0.0001:0.01;fs = 3000;ts = 0:1/fs:0.01;Signal = sin(2*pi*300*t);Sign_m = sin(2*pi*300*ts);figuresubplot(2,1,1)plot(t,Signal);title('sin(2*pi*300*t)&

47、#39;);subplot(2,1,2)%抽样stem(ts,Sign_m);title('3000HZ抽样波形');%量化z=sign(S);%判断S的正负MaxS=max(abs(S);%求$的最大值S=abs(S/MaxS);%归一化Q=8160*S;% 量化code=zeros(length(S),9);%代码存储矩阵(全零)%段落码判断程序for i=1:length(S)if (Q(i)>=480)&&(Q(i)<=8160)code(i,2)=1;%在第五段与第八段之间,段位码第一位都为“1endif (Q(i)>96)&

48、&(Q(i)<480)|(Q(i)>=2016)&&(Q(i)<=8160)code(i,3)=1;%在第三四七八段内,段位码第二位为“ 1”end键入文字武汉理工大学Matlab原理与应用课程设计报告if(Q(i)>=32)&&(Q(i)<96)|(Q(i)>=224)&&(Q(i)<480)|(Q(i)>=992)&&(Q(i)<2016)|(Q (i)>=4064)&&(Q(i)<=8160)code(i,4)=1;%在二四六八段内,段

49、位码第三位为“ 1”endend%段内码判断程序N=zeros(length(S);for i=1:length(S)N(i)=bin2dec(num2str(code(i,2:4)+1;%找到 code位于第几段enda=0,32,96,224,480,992,2016,4064;%量化间隔b=1,2,4,8,16,32,64,128;%除以16,得到每段的最小量化间隔for i=1:length(S)q=ceil(Q(i)-a(N(i)/b(N(i);% 求出在段内的位置if q=0code(i,(5:9)=0,0,0,0,0;%如果输入为零则输出 “ 0”else k=num2str(d

50、ec2bin(q-1,5);% 编码段内码为二进制code(i,5)=str2double(k(1);code(i,6)=str2double(k(2);code(i,7)=str2double(k(3);code(i,8)=str2double(k(4);code(i,9)=str2double(k(5);endif z(i)>0code(i,1)=1;elseif z(i)<0code(i,1)=0;end%符号位的判断endfor i=1:length(S)for j=1:9code2(9*(i-1)+j)=code(i,j);end键入文字end附录2调制解调程序:clea

51、r all;close all;clf;%消除窗口中的图形max=50%定义max长度t=0:1/3000:0.01;g=pcm(sin(2*pi*300*t);cp电mod1=;f=2*100000*pi;t=0:40000*pi/199:40000*pi;for n=1:length(g);if g(n)=0;A=zeros(1,200);%每个值 200 个点else g(n)=1;A=ones(1,200);endcp=cp A; %s(t),码元宽度 200c=cos(f*t);%载波信号mod1=mod1 c;%与s(t)等长的载波信号,变为矩阵形式 endfigure(1);su

52、bplot(3,2,1);plot(cp);grid on;axis(0 20*length(g) -2 2);title('PCM 编码信号序列); cm=;mod=;for n=1:length(g);if g(n)=0;B=ones(1,200);%$个值 200 个点c=sin(0*t); %载波信号else g(n)=1;B=ones(1,200);c=cos(f*t); %载波信号endcm=cm B; %s(t),码元宽度 200mod=mod c; %与s(t)等长的载波信号endtiaoz=cm.*mod;%e(t)调制figure(1);subplot(3,2,2);plot(tiaoz);grid on;axis(0 20*length(g) -2 2);title('2ASK 调制信号');figure(2);subplot(3,2,1);plot(abs(fft(cp);ax

温馨提示

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

评论

0/150

提交评论