版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用Matlabsimulink实现DPSK通信刘易2011001010010工作简介此次工作完成了以下几个任务:l.Simulink的DPSK实现:利用MATLABsimulink模块实现了自定义的DPSK信号的调制和解调,其中通信是利用simulink的UDPsend和UDPreceive来实现的,将两台电脑直接用网线连接起来,便可在两边分别运行UDPsend和UDPreceive实现通信,其中目的IP用“255.255.255.255”以进行广播。考虑噪声的通信:在考虑噪声的情况下传输自定义信号,并成功复原原信号。语音信号的传输:在实现任意信号的通信后,用一段语音信号进行DPSK通信。先对语音信号进行量化,然后通过DPSK调制,再用相干解调得到原传输信号,最后复原语音信号并进行播放。信号的传输是在有噪声的情况下进行的。下面分别介绍上述工作:Simulink的DPSK实现1.1首先展示simulink的发送方的模块:1.2定义需要传输的信号:{1010101011)
1.3生成需要传输的信号:题目中要求:Tc=1800HZ,Rb=1200bps,但是为了模拟显示得更方便直观,我仅保持了这两个量的比例,将两个量改为了:Tc=3HZ,Rb=2bps。(消息信号生成的代码参考附录/:产生消息信号)1.4将消息信号与载波信号相乘得到需要传输的信号:需要指出,我只定义了10个需要传输的信号,即需要传输5秒,但我都是以6秒来发送后的,后面的5-6秒的两个信号用0填充了,其原因是后面接收方的低通滤波器有延迟,需要留足够的空间来显示完整信号。下面给出传输信号的功率谱密度,这里的计算是利用离散信号做FFT再除以信号长度得到的(由于主要集中在某一范围因此仅给出部分范围的频谱):1.5然后UDPsend模块需要将小心信号发送到接收端。
2.1接收方的Simulink模块2.2接收方的接收信号(由scope6显示):从接收模块可以看到,在直接接收的信号到scope6之间有一个我自己定义的模块。其原因是在直接接收到的信号中,有许多不相关的信号,且一般都比需要的信号要小。如果将直接接收的信号存下来观察,可以得到的是255X1X6001的信号,但我们所需要的只是1X6001的信号,因此我添加了一个模块来滤去其他无关信号。(该模块代码参考附录:接收信号的提取下面是处理过后的接收信号:2.3将接收信号再乘一个与载波信号同频率的正弦信号(由scope8显示):5 I | I I |0 12 3 4 5 6
2.4将信号通过低通滤波器,得到如下信号(由scope5显示):可以看到这个低通滤波器在时间上延迟了大概0.75秒,这就是为什么一开始要以6秒的长度来传输数据。2.5接着通过一个自定义的模块,进行抽样判决,大于0记为1,小于0为0,这样便复原了原信号:(抽样判决模块代码参考附录:抽样判决)考虑时延后,抽样判决输出的序列为{10101011},和原序列相同。以上便完成了DPSK调制通信的全部过程,成功地复原了原信号。其实这个系统可以跑在两台电脑上,通过网线连接,用UDP通信,但在实行的时候出现了些问题,我在报告最后再来说说两台电脑的通信问题。以上虽然成功地完成了DPSK的通信,但是很重要的是没有考虑噪声,在实际生活中是不可能不考虑噪声的,因此下面在考虑噪声的情况下实现DPSK通信。考虑噪声的通信只需在发送方的模块中添加一个产生噪声的模块即可模拟有噪声的通信:Generator下面依次给出接收方收到的信号以及处理之后的信号波形:
1.接收的信号:2.乘cos(2nfct)后的信号:3.经过低通滤波器后的信号:抽样判决输出:看到这个信号,我的确有点吃惊,滤波出来的波形居然会这么好,但仔细想想,我发送的信号的波特率很低,也就很靠近0频,而带宽也很小。而且我把滤波器的通带调得很小,因此噪声的大部分能量都被滤去了。因此结果能够达到这么好。语音信号的传输语音信号这个部分我就没用使用simulink来模拟了,主要原因是语音信号较长,而且一面simulink模块中,运行低通滤波器需要很大消耗,因此我考虑编程来模拟语音信号的量化,调制,以及解调。其中的滤波器我需要重新设计,以减
少程序运行时间。下面是一段自己录制的语音信号(大概1秒左右,内容是“你好”):当前语音信号的最大值为0.1290,最小值为-0.1333。因此我将其进行从-0.15到0.15的均匀量化,并采用格雷码进行编码(量化代码参考附录/:语音信号的量化,以及格雷码的生成代码,参考附录:格雷码的产生。之所以采用格雷码进行编码,是因为如果接收产生误码,可以不至于声音差得太多。下面是量化后的语音信号,是采用8位二进制数进行量化,即将-0.15到0.15均匀分成了256份。试听以后效果不错,声音基本没有失真。通过以上处理可以得到一串语音的二进制码,采用与上文中相同的DPSK传输方法,将语音信号调制并传送出去(代码参考附录6:语音信号的调制)。由于信号量化后序列较长,因此仅给出一小部分波形:给信号添加噪声,以模拟真实的噪声信道,添加噪声后信号的部分波形如下:
牛I I I I I I I」: I I I I I I ! C ! 0 100 200 300 400 500 500 70DSOD90D1D00给信号乘上与载波同频的正弦信号,得到如下波形:这里自行设计了滤波器,采用切比雪夫2型滤波器,阶数为9,阻带为80dB,阻带频为0.07(代码参考附录7:切比雪夫低通滤波器)通过低通滤波器后得到如下波形(对应序列为000000100):由于有噪声影响,滤除的效果并不算特别好,但仍然能进行较准确的抽样判决了。接下来就通过抽样判决的函数输出原量化后的语音信号的序列(代码参考附录8:抽样判决,接着就根据格雷码对信号进行复原了(代码参考附录9:语音信号的复原。下面给出抽样判决后的部分序列,和格雷码复原后的信号波形:通过上面的操作,便完成了语音信号的量化、调制、加噪、解调,成功的,模拟了语音信号利用DPSK的通信过程,最后播放得到的语音信号,声音辨识度很高,基本没有失真。
最后的一点话:其实本次工作一开始我是希望能够在两台电脑上实现通信的,由于没有串口线,我想我们都有网线,就可以直接把两台电脑用网线相连,利用运输层的协议就可以实现通信了,如下图一样:之后我就分别在两台电脑上运行下面两个Simulink模块:F之后我就分别在两台电脑上运行下面两个Simulink模块:Fcn可以说,和我预想的一样,可以接收到发送的信号,但是接收到的信号却让人琢磨不透,如下图(是多维的信号,第一个模块接收到的信号,其余三个是部分信号的部分波形):和在本机模拟的一样,接收到的都是255X1X6001的信号,但是不同的是本机接收到的信号中,只需通过能量最大就可以找出需要的信号,而在两台电脑上通信时,接收方接收到的就是一些有规律但完全看不出什么的信号,我在这个问题上困扰了很久,最终也没有解决。后来又想通过互联网来传送,但是在simulink的UDP模块中设置好目的小,和目的端口号后,接收方却没有收到任何信号,也没有解决这个问题。于是最后只好折中,采用本机模拟两电脑基于UDP的通信。但好在的是,除了上面的问题,其他方面虽然遇到的问题,都被一一解决了,比如滤波器始终不理想的问题。总的来说我觉得这次工作对我帮助还是挺大的,至少我在simulink仿真方面有了很大进步。程序附录:附录1:产生消息信号(simulink模块)functiony=fcn2(t)a=[1-11-11-11-11100];ift==6y=a(10);return;endy=a(floor(t/0.5)+1);附录2:接收信号的提取(simulink模块)functiony=fun2(u)[n,m,c]=size(u);sum1=0;index=1;fori=1:nsum2=sum(abs(u(i,:,:)));ifsum2>sum1sum1=sum2;index=i;endendy=zeros(1,c);y(1:c)=u(index,1,1:c);附录3:抽样判决(simulink模块)functiony=funpanjue(u)ifu>=0y=1;elsey=0;end附录4:语音信号的量化function[out_voice_seq,out_voice_signal]=voice_signal_quantization(voice_seq)n=length(voice_seq);m=8;out_voice_seq=zeros(n*m,1);out_voice_signal=zeros(n,1);interval=0.3/(2Am);code1=grey_code(m);fori=1:nforj=1:2Amifvoice_seq(i)<=(-0.15+j*interval)out_voice_seq((i-1)*m+1:i*m)=code1(:,j);out_voice_signal(i)=-0.15+j*interval-interval/2;break;endendend附录5:格雷码的产生functioncode=grey_code(m)code=zeros(m,2Am);code(1,2)=1;fori=2:mcode(i,2A(i-1)+1:2Ai)=1;forj=1:2A(i-1)code(1:i-1,2A(i-1)+j)=code(1:i-1,2A(i-1)-j+1);endendend附录6:语音信号的调制function[modulated_signal,cos_sample]=voice_signal_modulation(voice_signal)n=length(voice_signal);modulated_signal=zeros(n*100,1);cos_sample=zeros(n*100,1);fori=1:nforj=1:100t=(i-1)+(j-1)*1/100;cos_sample((i-1)*100+j)=cos(3*pi*t);modulated_signal((i-1)*100+j)=cos(3*pi*t)*voice_signal(i);endendend附录7:切比雪夫低通滤波器functionoutput_signal=lowpassdesign(input_signal,p1,p2,p3)[A,B]=cheby2(p1,p2,p3);output_signal=filter(A,B,input_signal);end附录8:抽样判决functionoutput_seq=sample_judge(input)n=length(input);m=n/100;output_seq=zeros(m,1);fori=1:mifinput(i*100)>=0output_seq(i)=1;elseoutput_seq(i)=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年电力设备运行与维护知识测试卷及答案
- 2026年五方面人员选拔乡镇班子能力测试模拟卷二试题附答案
- 2026年高级社会工作师岗位测试考试题及答案解析
- 2025年妇幼保健院临床岗招聘真题及答案解析
- 物流园区调度智能化管理平台建设方案
- 排水管道闭水试验防渗专项施工方案
- 油墨着色力试样配制与制备方法
- 销售谈判技能培训
- 施工缝处理专项施工方案
- 重庆AI培训标准化课程教学建设方案
- 中国慢性乙型肝炎功能性(临床)治愈临床实践专家共识课件
- 苏少版美术四年级上册第三课《精彩的表达》教学课件
- 航空文化考试题及答案解析
- 2027物理步步高 大一轮复习第六章 微点突破3 机车启动问题
- 2026年辽宁省中考数学试卷(含答案及解析)
- GB/T 24002.2-2026环境管理体系针对环境主题领域应用GB/T 24001管理环境因素和应对环境状况的指南第2部分:水
- 聚变装置-氚聚变设施和聚变燃料处理设施的密封和通风系统的设计和操作标准标准立项发展报告
- 家装水电施工工艺标准
- 2026中国气象量子计算技术研发进展与产业化前景
- 赣州市属国企招聘笔试题库2026
- 自动识别系统(AIS)检验指南
评论
0/150
提交评论