计算机仿真-Matlab通信系统链路级仿真

合集下载

MATLAB实现通信系统仿真实例

MATLAB实现通信系统仿真实例

补充内容:模拟调制系统的MATLAB 仿真1.抽样定理为了用实验的手段对连续信号分析,需要先对信号进行抽样(时间上的离散化),把连续数据转变为离散数据分析。

抽样(时间离散化)是模拟信号数字化的第一步。

Nyquist 抽样定律:要无失真地恢复出抽样前的信号,要求抽样频率要大于等于两倍基带信号带宽。

抽样定理建立了模拟信号和离散信号之间的关系,在Matlab 中对模拟信号的实验仿真都是通过先抽样,转变成离散信号,然后用该离散信号近似替代原来的模拟信号进行分析的。

【例1】用图形表示DSB 调制波形)4cos()2cos(t t y ππ= 及其包络线。

clf%%计算抽样时间间隔fh=1;%%调制信号带宽(Hz)fs=100*fh;%%一般选取的抽样频率要远大于基带信号频率,即抽样时间间隔要尽可能短。

ts=1/fs;%%根据抽样时间间隔进行抽样,并计算出信号和包络t=(0:ts:pi/2)';%抽样时间间隔要足够小,要满足抽样定理。

envelop=cos(2*pi*t);%%DSB 信号包络y=cos(2*pi*t).*cos(4*pi*t);%已调信号%画出已调信号包络线plot(t,envelop,'r:','LineWidth',3);hold onplot(t,-envelop,'r:','LineWidth',3);%画出已调信号波形plot(t,y,'b','LineWidth',3);axis([0,pi/2,-1,1])%hold off%xlabel('t');%写出图例【例2】用图形表示DSB 调制波形)6cos()2cos(t t y ππ= 及其包络线。

clf%%计算抽样时间间隔fh=1;%%调制信号带宽(Hz)fs=100*fh;%抽样时间间隔要足够小,要满足抽样定理。

基于matlab的通信系统仿真

基于matlab的通信系统仿真

创新实践报告报告题目:基于matlab的通信系统仿真学院名称:信息工程学院姓名:班级学号:指导老师:二O一四年十月十五日一、引言现代社会发展要求通信系统功能越来越强,性能越来越高,构成越来越复杂;另一方面,要求通信系统技术研究和产品开发缩短周期,降低成本,提高水平。

这样尖锐对立的两个方面的要求,只有通过使用强大的计算机辅助分析设计技术和工具才能实现。

在这种迫切的需求之下,MATLAB应运而生。

它使得通信系统仿真的设计和分析过程变得相对直观和便捷,由此也使得通信系统仿真技术得到了更快的发展。

通信系统仿真贯穿着通信系统工程设计的全过程,对通信系统的发展起着举足轻重的作用。

通信系统仿真具有广泛的适应性和极好的灵活性,有助于我们更好地研究通信系统性能。

通信系统仿真的基本步骤如下图所示:二、仿真分析与测试(1)随机信号的生成利用Matlab 中自带的函数randsrc 来产生0、1等概分布的随机信号。

源代码如下所示:global NN=300;global pp=0.5;source=randsrc(1,N,[1,0;p,1-p]);(2)信道编译码1、卷积码的原理卷积码(convolutional code)是由伊利亚斯(p.Elias)发明的一种非分组码。

在前向纠错系统中,卷积码在实际应用中的性能优于分组码,并且运算较简单。

卷积码在编码时将k 比特的信息段编成n 个比特的码组,监督码元不仅和当前的k 比特信息段有关,而且还同前面m=(N-1)个信息段有关。

通常将N 称为编码约束长度,将nN 称为编码约束长度。

一般来说,卷积码中k 和n 的值是比较小的整数。

将卷积码记作(n,k,N)。

卷积码的编码流程如下所示。

可以看出:输出的数据位V1,V2和寄存器D0,D1,D2,D3之间的关系。

根据模2加运算特点可以得知奇数个1模2运算后结果仍是1,偶数个1模2运算后结果是0。

2、译码原理卷积码译码方法主要有两类:代数译码和概率译码。

基于matlab的通信系统的仿真与实现

基于matlab的通信系统的仿真与实现
通信系统就是传递信息所需要的一切技术设备和传输媒质的总和,包括信息源、发送设备、信道、接收设备和信宿(受信者),它的一般模型如图1-1所示。

图1-1通信系统一般模型
通信系统可分为数字通信系统和模拟通信系统。数字通信系统是利用数字信号来传递消息的通信系统,其模型如图1-2所示,

图1-2 数字通信系统模型
随着通信系统复杂性的增加,传统的手工分析与电路板试验等分析设计方法已经不能适应发展的需要,通信系统计算机模拟仿真技术日益显示出其巨大的优越性.。计算机仿真是根据被研究的真实系统的模型,利用计算机进行实验研究的一种方法.它具有利用模型进行仿真的一系列优点,如费用低,易于进行真实系统难于实现的各种试验,以及易于实现完全相同条件下的重复试验等。Matlab仿真软件就是分析通信系统常用的工具之一。
1.4 通信技术发展现状和趋势
进入20世纪以来,随着晶体管、集成电路的出现与普及、无线通信迅速发展。特别是在20世纪后半叶,随着人造地球卫星的发射,大规模集成电路、电子计算机和光导纤维等现代技术成果的问世,通信技术在以下几个不同方向都取得了巨大的成功。
1.微波中继通信使长距离、大容量的通信成为了现实。
Matlab是一种交互式的、以矩阵为基础的软件开发环境,它用于科学和工程的计算与可视化。Matlab的编程功能简单,并且很容易扩展和创造新的命令与函数。应用Matlab可方便地解决复杂数值计算问题。Matlab具有强大的Simulink动态仿真环境,可以实现可视化建模和多工作环境间文件互用和数据交换。Simulink支持连续、离散及两者混合的线性和非线性系统,也支持多种采样速率的多速率系统;Simulink为用户提供了用方框图进行建模的图形接口,它与传统的仿真软件包用差分方程和微分方程建模相比,更直观、方便和灵活。用户可以在Matlab和Simulink两种环境下对自己的模型进行仿真、分析和修改。用于实现通信仿真的通信工具包(Communication toolbox,也叫Commlib,通信工具箱)是Matlab语言中的一个科学性工具包,提供通信领域中计算、研究模拟发展、系统设计和分析的功能,可以在Matlab环境下独立使用,也可以配合Simulink使用。另外,Matlab的图形界面功能GUI(Graphical User Interface)能为仿真系统生成一个人机交互界面,便于仿真系统的操作。因此,Matlab在通信系统仿真中得到了广泛应用,本文也选用该工具对数字调制系统进行仿真。

MATLAB2psk通信系统仿真报告

MATLAB2psk通信系统仿真报告

MATLAB2psk通信系统仿真报告自查报告。

标题,MATLAB 2psk通信系统仿真报告。

在本次仿真报告中,我使用MATLAB对2psk通信系统进行了仿真。

在进行仿真过程中,我遇到了一些困难和问题,现在进行自查和总结如下:
1. 仿真参数设置不准确,在设置仿真参数时,我没有仔细考虑信道的噪声和衰落情况,导致仿真结果与实际情况有一定偏差。

在以后的仿真中,我需要更加细致地设置参数,以确保仿真结果的准确性。

2. 代码实现不够高效,在编写仿真代码时,我发现自己的代码实现并不够高效,导致仿真时间过长。

在以后的工作中,我需要学习更多关于MATLAB的优化技巧,以提高代码的运行效率。

3. 结果分析不够深入,在对仿真结果进行分析时,我发现自己的分析并不够深入,没有充分挖掘出结果中的信息。

在以后的工作
中,我需要加强对仿真结果的分析能力,以更好地理解和解释结果。

综上所述,本次自查报告主要总结了在进行MATLAB 2psk通信
系统仿真过程中遇到的困难和问题,并提出了相应的改进措施。


以后的工作中,我将努力改进自己的工作方式,提高仿真的准确性
和效率,以更好地完成相关工作。

【通信系统仿真(MATLAB)】实验指导书YST

【通信系统仿真(MATLAB)】实验指导书YST

通信系统仿真〔MATLAB〕-----实验指导书邮电大学光电工程学院2015年3月目录实验一MATLAB语言概述1-MATLAB安装、根本入门... ... . (2)实验二MATLAB语言概述2-MATLAB的工作环境............ . . (3)实验三MATLAB语法根底1—变量和数组 (4)实验四MATLAB语法根底2—矩阵和关系、逻辑运算 (6)实验五MATLAB语法根底3- MATLAB绘图 (9)实验六MATLAB语法根底4--MATLAB程序设计 (16)实验七MATLAB在电子信息课程中的应用 (19)实验八MATLAB与数学建模 (37)实验九(补充) MATLAB图形用户界面〔GUI〕的设计..... ..... .. (49)提示:Matlab是练出来的,而不是看出来的!实验一MATLAB初步〔安装、根本入门〕一、实验目的1、熟悉MATLAB开发环境;2、在Demos的引导下初识MATLAB。

二、实验根本知识1、初识MATLAB环境2、掌握MATLAB的Demos的应用三、实验容学习使用MATLAB的Demos,在Demos的引导下完成:1、MATLAB的数值计算;2、MATLAB的符号计算;3、MATLAB的二维、三维及四维绘图、特殊图形的绘制,图形的标准、修饰;4、Simulink的使用初步:利用完成正弦图形的仿真。

四、答复以下问题1、与其他计算机语言相比拟,MATLAB语言突出的特点是什么?2、安装MATLAB时,在选择组件窗口中哪些局部必须勾选,没有勾选的局部以后如何补安装?3、什么是工具箱?典型的工具箱有哪些?4、MATLAB系统由那些局部组成?实验二MATLAB的工作环境一、实验目的1、熟悉MATLAB工作环境二、实验根本知识1、熟悉MATLAB环境:MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器文件和搜索路径浏览器。

2、掌握MATLAB常用命令:clc,clear,help,lookfor,who等命令三、实验容1、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye〔其它不会用的指令,依照此方法类推〕2、学习使用clc、clear,观察mand window、mand history和workspace等窗口的变化结果。

通信原理基于matlab的计算机仿真

通信原理基于matlab的计算机仿真

例1-1%周期信号(方波)的展开,fb_jinshi.mclose all;clear all;N=100; %取展开式的项数为2N+1项T=1;fs=1/T;N_sample=128; %为了画出波形,设置每个周期的采样点数dt = T/N_sample;t=0:dt:10*T-dt;n=-N:N;Fn = sinc(n/2).*exp(-j*n*pi/2);Fn(N+1)=0;ft = zeros(1,length(t));for m=-N:Nft = ft + Fn(m+N+1)*exp(j*2*pi*m*fs*t);endplot(t,ft)例 1-2利用FFT计算信号的频谱并与信号的真实频谱的抽样比较。

脚本文件T2F.m定义了函数T2F,计算信号的傅立叶变换。

function [f,sf]= T2F(t,st)%This is a function using the FFT function to calculate a signal's Fourier %Translation%Input is the time and the signal vectors,the length of time must greater %than 2%Output is the frequency and the signal spectrumdt = t(2)-t(1);T=t(end);df = 1/T;N = length(st);f=-N/2*df:df:N/2*df-df;sf = fft(st);sf = T/N*fftshift(sf);脚本文件F2T.m定义了函数F2T,计算信号的反傅立叶变换。

function [t st]=F2T(f,sf)%This function calculate the time signal using ifft function for the input %signal's spectrumdf = f(2)-f(1);Fmx = ( f(end)-f(1) +df);dt = 1/Fmx;N = length(sf);T = dt*N;%t=-T/2:dt:T/2-dt;t = 0:dt:T-dt;sff = fftshift(sf);st = Fmx*ifft(sff);另写脚本文件fb_spec.m如下:%方波的傅氏变换, fb_spec.mclear all;close all;T=1;N_sample = 128;dt=T/N_sample;t=0:dt:T-dt;st=[ones(1,N_sample/2), -ones(1,N_sample/2)]; %方波一个周期subplot(211);plot(t,st);axis([0 1 -2 2]);xlabel('t'); ylabel('s(t)');subplot(212);[f sf]=T2F(t,st); %方波频谱plot(f,abs(sf)); hold on;axis([-10 10 0 1]);xlabel('f');ylabel('|S(f)|');%根据傅氏变换计算得到的信号频谱相应位置的抽样值sff= T^2*j*pi*f*0.5.*exp(-j*2*pi*f*T).*sinc(f*T*0.5).*sinc(f*T*0.5);plot(f,abs(sff),'r-')例1-3%信号的能量计算或功率计算,sig_pow.mclear all;close all;dt = 0.01;t = 0:dt:5;s1 = exp(-5*t).*cos(20*pi*t);s2 = cos(20*pi*t);E1 = sum(s1.*s1)*dt; %s1(t)的信号能量P2 = sum(s2.*s2)*dt/(length(t)*dt); %s2(t)的信号功率s[f1 s1f]= T2F(t,s1);[f2 s2f]= T2F(t,s2);df = f1(2)-f1(1);E1_f = sum(abs(s1f).^2)*df; %s1(t)的能量,用频域方式计算df = f2(2)-f2(1);T = t(end);P2_f = sum(abs(s2f).^2)*df/T; %s2(t)的功率,用频域方式计算figure(1)subplot(211)plot(t,s1);xlabel('t'); ylabel('s1(t)');subplot(212)plot(t,s2)xlabel('t'); ylabel('s2(t)');例1-4%方波的傅氏变换,sig_band.mclear all;close all;T=1;N_sample = 128;dt=1/N_sample;t=0:dt:T-dt;st=[ones(1,N_sample/2) -ones(1,N_sample/2)];df=0.1/T;Fx = 1/dt;f=-Fx:df:Fx-df;%根据傅氏变换计算得到的信号频谱sff= T^2*j*pi*f*0.5.*exp(-j*2*pi*f*T).*sinc(f*T*0.5).*sinc(f*T*0.5);plot(f,abs(sff),'r-')axis([-10 10 0 1]);hold on;sf_max = max(abs(sff));line([f(1) f(end)],[sf_max sf_max]);line([f(1) f(end)],[sf_max/sqrt(2) sf_max/sqrt(2)]); %交点处为信号功率下降3dB处Bw_eq = sum(abs(sff).^2)*df/T/sf_max.^2; %信号的等效带宽例 1-5%带通信号经过带通系统的等效基带表示,sig_bandpass.mclear all;close all;dt = 0.01;t = 0:dt:5;s1 = exp(-t).*cos(20*pi*t); %输入信号[f1 s1f]= T2F(t,s1); %输入信号的频谱s1_lowpass = hilbert(s1).*exp(-j*2*pi*10*t); %输入信号的等效基带信号[f2 s2f]=T2F(t,s1_lowpass); %输入等效基带信号的频谱h2f = zeros(1,length(s2f));[a b]=find( abs(s1f)==max(abs(s1f)) ); %找到带通信号的中心频率h2f( 201-25:201+25 )= 1;h2f( 301-25:301+25) = 1;h2f = h2f.*exp(-j*2*pi*f2); %加入线性相位,[t1 h1] = F2T(f2,h2f); %带通系统的冲激响应h1_lowpass = hilbert(h1).*exp(-j*2*pi*10*t1); %等效基带系统的冲激响应figure(1)subplot(521);plot(t,s1);xlabel('t'); ylabel('s1(t)'); title('带通信号');subplot(523);plot(f1,abs(s1f));xlabel('f'); ylabel('|S1(f)|'); title('带通信号幅度谱');subplot(522)plot(t,real(s1_lowpass));xlabel('t');ylabel('Re[s_l(t)]');title('等效基带信号的实部');subplot(524)plot(f2,abs(s2f));xlabel('f');ylabel('|S_l(f)|');title('等效基带信号的幅度谱');%画带通系统及其等效基带的图subplot(525)plot(f2,abs(h2f));xlabel('f');ylabel('|H(f)|');title('带通系统的传输响应幅度谱'); subplot(527)plot(t1,h1);xlabel('t');ylabel('h(t)');title('带通系统的冲激响应');subplot(526)[f3 hlf]=T2F(t1,h1_lowpass);plot(f3,abs(hlf));xlabel('f');ylabel('|H_l(f)|');title('带通系统的等效基带幅度谱');subplot(528)plot(t1,h1_lowpass);xlabel('t');ylabel('h_l(t)');title('带通系统的等效基带冲激响应');%画出带通信号经过带通系统的响应及等效基带信号经过等效基带系统的响应tt = 0:dt:t1(end)+t(end);yt = conv(s1,h1);subplot(529)plot(tt,yt);xlabel('t');ylabel('y(t)');title('带通信号与带通系统响应的卷积')ytl = conv(s1_lowpass,h1_lowpass).*exp(j*2*pi*10*tt);subplot(5,2,10)plot(tt,real(yt));xlabel('t');ylabel('y_l(t)cos(20*pi*t');title('等效基带与等效基带系统响应的卷积×中心频率载波')例 1-6%例:窄带高斯过程,文件 zdpw.mclear all; close all;N0=1; %双边功率谱密度fc=10; %中心频率B=1; %带宽dt=0.01;T=100;t=0:dt:T-dt;%产生功率为N0*B的高斯白噪声P = N0*B;st = sqrt(P)*randn(1,length(t));%将上述白噪声经过窄带带通系统,[f,sf] = T2F(t,st); %高斯信号频谱figure(1)plot(f,abs(sf)); %高斯信号的幅频特性[tt gt]=bpf(f,sf,fc-B/2,fc+B/2); %高斯信号经过带通系统glt = hilbert(real(gt)); %窄带信号的解析信号,调用hilbert函数得到解析信号glt = glt.*exp(-j*2*pi*fc*tt);[ff,glf]=T2F( tt, glt );figure(2)plot(ff,abs(glf));xlabel('频率(Hz)'); ylabel('窄带高斯过程样本的幅频特性')figure(3)subplot(411);plot(tt,real(gt));title('窄带高斯过程样本')subplot(412)plot(tt,real(glt).*cos(2*pi*fc*tt)-imag(glt).*sin(2*pi*fc*tt))title('由等效基带重构的窄带高斯过程样本')subplot(413)plot(tt,real(glt));title('窄带高斯过程样本的同相分量')subplot(414)plot(tt,imag(glt));xlabel('时间t(秒)'); title('窄带高斯过程样本的正交分量')%求窄带高斯信号功率;注:由于样本的功率近似等于随机过程的功率,因此可能出现一些偏差P_gt=sum(real(gt).^2)/T;P_glt_real = sum(real(glt).^2)/T;P_glt_imag = sum(imag(glt).^2)/T;%验证窄带高斯过程的同相分量、正交分量的正交性a = real(glt)*(imag(glt))'/T;用到的子函数function [t,st]=bpf(f,sf,B1,B2)%This function filter an input at frequency domain by an ideal bandpass filter %Inputs:% f: frequency samples% sf: input data spectrum samples% B1: bandpass's lower frequency% B2: bandpass's higher frequency%Outputs:% t: frequency samples% st: output data's time samplesdf = f(2)-f(1);T = 1/df;hf = zeros(1,length(f));bf = [floor( B1/df ): floor( B2/df )] ;bf1 = floor( length(f)/2 ) + bf;bf2 = floor( length(f)/2 ) - bf;hf(bf1)=1/sqrt(2*(B2-B1));hf(bf2)=1/sqrt(2*(B2-B1));yf=hf.*sf.*exp(-j*2*pi*f*0.1*T);[t,st]=F2T(f,yf);例 1-7%显示模拟调制的波形及解调方法DSB,文件mdsb.m%信源close all;clear all;dt = 0.001; %时间采样间隔fm=1; %信源最高频率fc=10; %载波中心频率T=5; %信号时长t = 0:dt:T;mt = sqrt(2)*cos(2*pi*fm*t); %信源%N0 = 0.01; %白噪单边功率谱密度%DSB modulations_dsb = mt.*cos(2*pi*fc*t);B=2*fm;%noise = noise_nb(fc,B,N0,t);%s_dsb=s_dsb+noise;figure(1)subplot(311)plot(t,s_dsb);hold on; %画出DSB信号波形plot(t,mt,'r--'); %标示mt的波形title('DSB调制信号');xlabel('t');%DSB demodulationrt = s_dsb.*cos(2*pi*fc*t);rt = rt-mean(rt);[f,rf] = T2F(t,rt);[t,rt] = lpf(f,rf,2*fm);subplot(312)plot(t,rt); hold on;plot(t,mt/2,'r--');title('相干解调后的信号波形与输入信号的比较');xlabel('t')subplot(313)[f,sf]=T2F(t,s_dsb);psf = (abs(sf).^2)/T;plot(f,psf);axis([-2*fc 2*fc 0 max(psf)]);title('DSB信号功率谱');xlabel('f');function [t st]=lpf(f,sf,B)%This function filter an input data using a lowpass filter %Inputs: f: frequency samples% sf: input data spectrum samples% B: lowpass's bandwidth with a rectangle lowpass%Outputs: t: time samples% st: output data's time samplesdf = 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-8%显示模拟调制的波形及解调方法AM,文件mam.m%信源close all;clear all;dt = 0.001; %时间采样间隔fm=1; %信源最高频率fc=10; %载波中心频率T=5; %信号时长t = 0:dt:T;mt = sqrt(2)*cos(2*pi*fm*t); %信源%N0 = 0.01; %白噪单边功率谱密度%AM modulationA=2;s_am = (A+mt).*cos(2*pi*fc*t);B = 2*fm; %带通滤波器带宽%noise = noise_nb(fc,B,N0,t); %窄带高斯噪声产生%s_am = s_am + noise;figure(1)subplot(311)plot(t,s_am);hold on; %画出AM信号波形plot(t,A+mt,'r--'); %标示AM的包络title('AM调制信号及其包络');xlabel('t');%AM demodulationrt = s_am.*cos(2*pi*fc*t); %相干解调rt = rt-mean(rt);[f,rf] = T2F(t,rt);[t,rt] = lpf(f,rf,2*fm); %低通滤波subplot(312)plot(t,rt); hold on;plot(t,mt/2,'r--');title('相干解调后的信号波形与输入信号的比较'); xlabel('t')subplot(313)[f,sf]=T2F(t,s_am);psf = (abs(sf).^2)/T;plot(f,psf);axis([-2*fc 2*fc 0 max(psf)]);title('AM信号功率谱');xlabel('f');例 1-9%显示模拟调制的波形及解调方法SSB,文件mssb.m%信源close all;clear all;dt = 0.001; %时间采样间隔fm=1; %信源最高频率fc=10; %载波中心频率T=5; %信号时长t = 0:dt:T;mt = sqrt(2)*cos(2*pi*fm*t); %信源%N0 = 0.01; %白噪单边功率谱密度%SSB modulations_ssb = real( hilbert(mt).*exp(j*2*pi*fc*t) );B=fm;%noise = noise_nb(fc,B,N0,t);%s_ssb=s_ssb+noise;figure(1)subplot(311)plot(t,s_ssb);hold on; %画出SSB信号波形plot(t,mt,'r--'); %标示mt的波形title('SSB调制信号');xlabel('t');%SSB demodulationrt = s_ssb.*cos(2*pi*fc*t);rt = rt-mean(rt);[f,rf] = T2F(t,rt);[t,rt] = lpf(f,rf,2*fm);subplot(312)plot(t,rt); hold on;plot(t,mt/2,'r--');title('相干解调后的信号波形与输入信号的比较');xlabel('t')subplot(313)[f,sf]=T2F(t,s_ssb);psf = (abs(sf).^2)/T;plot(f,psf);axis([-2*fc 2*fc 0 max(psf)]);title('SSB信号功率谱');xlabel('f');例 2-0%显示模拟调制的波形及解调方法VSB,文件mvsb.m%信源close all;clear all;dt = 0.001; %时间采样间隔fm=5; %信源最高频率fc=20; %载波中心频率T=5; %信号时长t = 0:dt:T;mt = sqrt(2)*( cos(2*pi*fm*t)+sin(2*pi*0.5*fm*t) ); %信源%VSB modulations_vsb = mt.*cos(2*pi*fc*t);B=1.2*fm;[f,sf] = T2F(t,s_vsb);[t,s_vsb] = vsbpf(f,sf,0.2*fm,1.2*fm,fc);figure(1)subplot(311)plot(t,s_vsb);hold on; %画出VSB信号波形plot(t,mt,'r--'); %标示mt的波形title('VSB调制信号');xlabel('t');%VSB demodulation[f,rf] = T2F(t,rt);[t,rt] = lpf(f,rf,2*fm);subplot(312)plot(t,rt); hold on;plot(t,mt/2,'r--');title('相干解调后的信号波形与输入信号的比较');xlabel('t')subplot(313)[f,sf]=T2F(t,s_vsb);psf = (abs(sf).^2)/T;plot(f,psf);axis([-2*fc 2*fc 0 max(psf)]);title('VSB信号功率谱');xlabel('f');function [t,st]=vsbpf(f,sf,B1,B2,fc)%This function filter an input by an residual bandpass filter %Inputs: f: frequency samples% sf: input data spectrum samples% B1: residual bandwidth% B2: highest freq of the basedband signal%Outputs: t: frequency samples% st: output data's time samplesdf = f(2)-f(1);T = 1/df;hf = zeros(1,length(f));bf1 = [floor( (fc-B1)/df ): floor( (fc+B1)/df )] ;bf2 = [floor( (fc+B1)/df )+1: floor( (fc+B2)/df )];f1 = bf1 + floor( length(f)/2 ) ;f2 = bf2 + floor( length(f)/2 ) ;stepf = 1/length(f1);hf(f1)=0:stepf:1-stepf;hf(f2)=1;f3 = -bf1 + floor( length(f)/2 ) ;f4 = -bf2 + floor( length(f)/2) ;hf(f3)=0:stepf:(1-stepf);hf(f4)=1;yf=hf.*sf;[t,st]=F2T(f,yf);st = real(st);例 2-1%显示模拟调制的波形及解调方法AM、DSB、SSB,%信源close all;clear all;dt = 0.001;fm=1;fc=10;t = 0:dt:5;N0 = 0.1;%AM modulationA=2;s_am = (A+mt).*cos(2*pi*fc*t);B = 2*fm;noise = noise_nb(fc,B,N0,t); s_am = s_am + noise;figure(1)subplot(321)plot(t,s_am);hold on;plot(t,A+mt,'r--');%AM demodulationrt = s_am.*cos(2*pi*fc*t);rt = rt-mean(rt);[f,rf] = T2F(t,rt);。

基于matlab的数字通信系统仿真

基于matlab的数字通信系统仿真

基于matlab的数字通信系统仿真【摘要】用matlab随机产生单极性和双极性数字基带信号,对单极性信号进行PSK载波相位调制,仿真信号在信道中传输,加入信噪比可变的高斯白噪声,然后在接收端对传输信号进行解调,设定判决电平恢复原始信号,计算误码率。

做出BER-SNR曲线,并且实现单极性和双极性误码率的比较。

1引言1.1数字通信系统传输模型通信系统是传递信息所需的一切技术设备的总和,包括信息源、发送设各、传输介质、信息接收者和接收设备。

“数字通信”是指用数字信号作为载体来传输信息,或者用数字信号对载波进行数字调制后再传输的通信方式。

下图给出一个典型的数字通信系统传输模型。

发送设备噪声接收设备信息源中,离散信息源输出的是离散的符号序列或文字。

或者通过采样和量化把模拟信息转换成为的离散信息。

发送设备的基本功能是使不同种类和速率的信息源与传输媒介相匹配,通常是将信息源产生的信息经过编码,并变换为便于传送的信号形式,送往传输介质。

编码包括信源编码与信道编码两部分。

信源编码把连续消息变换为数字信号,信道编码则使数字信号与传输介质匹配,提高传输的可靠性和有效性。

调制是多种变换方式中最常见的一种。

信道是发送设备到接收设备之间信号传递所经过的媒介。

传输过程中必然会引入热噪声、衰减、脉冲等干扰。

介质的固有特性和干扰特性直接关系到编码方式的选取。

接收设备的基本功能是完成对发送的反变换(解调、译码、解密等),从带有干扰的信号中恢复出正确的原始信息。

1.2数字通信系统的优点数字通信系统的优点有[1]:第一,由于数字信号的可能取值数目有限,所以在失真没有超过给定值的条件下,不影响接收端的正确判决。

第二,抗干扰能力强。

模拟信号在传输过程中和叠加的噪声很难分离,噪声会随着信号被传输、放大、严重影响通信质量。

数字通信中的信息是包含在脉冲的,只要噪声绝对值不超过某一门限值,接收端便可判别脉冲的有无,以保证通信的可靠性。

第三,数字通信系统中,可以采用保密性极高的数字加密技术,从而大大提高系统的保密度。

MATLAB通信仿真要点

MATLAB通信仿真要点

MATLAB通信仿真要点1.通信系统模型建立:在MATLAB中建立通信系统模型是仿真的第一步。

这包括定义传输信道、接收信号处理和误码纠正等各个组成部分。

您可以使用MATLAB提供的信号处理工具箱来实现这些功能。

此外,MATLAB还提供了信号处理函数和工具,可以帮助您构建系统的模型。

2.信道建模:通信系统中的信道是模型中的一个关键组成部分。

信道的特性和行为对系统的性能有重要影响。

在MATLAB中,您可以使用函数和工具箱来模拟各种类型的信道,包括加性高斯白噪声信道(AWGN)、多径衰落信道等。

MATLAB还提供了信道估计和等化方法,可以帮助您处理复杂的信道环境。

3.信号生成和调制:在通信系统仿真中,生成和调制信号是非常重要的步骤。

MATLAB提供了各种工具箱和函数,可以帮助您生成各种类型的信号,包括连续时间信号和离散时间信号。

您可以使用这些工具来调制和解调信号,包括频率调制、相位调制和振幅调制等。

4.物理介质建模:通信系统通常会使用特定的物理介质来传输信号。

在MATLAB中,您可以使用建模工具箱来模拟各种物理介质的特性,包括传输线、射频电路和光纤等。

这些工具可以帮助您更准确地模拟和分析系统的性能。

5.误码纠正和解码:在通信系统中,误码纠正和解码是非常重要的步骤。

MATLAB提供了各种编码和解码算法,包括前向纠错编码(FEC)和纠正编码(ECC)等。

您可以使用MATLAB的编码和解码函数来实现这些功能,并评估系统的误码性能。

6.系统性能评估:在完成通信系统的建模和仿真后,评估系统的性能是非常重要的。

MATLAB提供了各种性能评估工具和函数,包括误码率(BER)、信噪比(SNR)和频谱效率等。

您可以使用这些工具来分析和优化系统的性能,并进行仿真实验。

7.仿真结果可视化:MATLAB提供了丰富的数据可视化工具,可以帮助您对仿真结果进行可视化分析。

您可以使用MATLAB的绘图函数和工具箱来绘制信号波形、频谱图和误码率曲线等。

MATLAB通信系统仿真实验报告

MATLAB通信系统仿真实验报告

MATLAB通信系统仿真实验报告实验一、MATLAB的基本使用与数学运算目的:学习MATLAB的基本操作,实现简单的数学运算程序。

内容:1-1 要求在闭区间[0,2π]上产生具有10个等间距采样点的一维数组。

试用两种不同的指令实现。

运行代码:x=[0:2*pi/9:2*pi]运行结果:1-2 用M文件建立大矩阵xx=[ 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.91.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.92.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.93.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9]代码:x=[ 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.91.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.92.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.93.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9]m_mat运行结果:1-3已知A=[5,6;7,8],B=[9,10;11,12],试用MATLAB分别计算A+B,A*B,A.*B,A^3,A.^3,A/B,A\B.代码:A=[5 6;7 8] B=[9 10;11 12] x1=A+B X2=A-B X3=A*B X4=A.*B X5=A^3 X6=A.^3 X7=A/B X8=A\B运行结果:1-4任意建立矩阵A,然后找出在[10,20]区间的元素位置。

程序代码及运行结果:代码:A=[12 52 22 14 17;11 10 24 03 0;55 23 15 86 5 ] c=A>=10&A<=20运行结果:1-5 总结:实验过程中,因为对软件太过生疏遇到了些许困难,不过最后通过查书与同学交流都解决了。

例如第二题中,将文件保存在了D盘,而导致频频出错,最后发现必须保存在MATLAB文件之下才可以。

计算机仿真Matlab通信系统链路级仿真

计算机仿真Matlab通信系统链路级仿真

– The sum is over all the values of j which lead to legal subscripts for u(j) and v(k+1-j), j = max(1,k+1-n): min(k,m).
其他常用信号处理函数
• filter:滤波
• 30
• 标准差分仿真的直接II型横向滤波器结构
– out = compand(in,param,v)
– out = compand(in,Mu,v,'mu/compressor')
– out = compand(in,Mu,v,'mu/expander')
– out = compand(in,A,v,'A/compressor')
– out = compand(in,A,v,'A/expander')
•7
• 通信系统链路级仿真的一般性假设前提
• Matlab中的通信系统仿真资源
– 信号处理工具箱及常用信号处理函数
– 通信工具箱
通信系统链路级仿真的一般假设前提
• 带通信号的基带等效
•8
• 最佳接收机
带通信号的基带等效表示
z(t ) fL (t )e jct
•9
a(t )e jct (t )
后总功率则减小到原来的1/N。
常用变换函数
• fftshift:作用是将fft之后数据的零频移到• 28 数据的中间,实际上就是将向量的左右 两个半边交换位置。
• ifftshift:注意奇数时的处理 • fftw:能够进一步提高fft的执行效率,在
真正做fft以前先执行一次plan选择最适当 的fft算法。

MATLAB课件·第4章 通信系统的建模与仿真

MATLAB课件·第4章  通信系统的建模与仿真

B 这种典型的情况,带通采样定理所规定的采
样频率近似等于下界 2 B 。 对整个通信系统进行仿真开发时,选择对系统合适的采样频率是要做的一个基本决 定。除考虑上述信号带宽外,有许多因素影响所需的系统采样频率。具有反馈的系统、非 线性系统、多径信道等会导致更高的采样频率要求。对于无反馈的线性系统,必需的采样 频率可由可接受的混叠误差决定的,而这又有赖于发送滤波器成形脉冲的功率谱密度。成 形脉冲是假定时域有限的,因此不可能是带宽有限的,因而会产生在实际中不可能消除混 叠误差。为仿真选择合适的采样频率的一个策略就是在混叠误差和仿真时间之间达成一个 可以接受的折衷。目标是选择一个采样频率,使得混叠误差相对于仿真所考察的系统性能 的降低是可以忽略的。 有些要仿真的系统(如扩频通信系统)包含两个或多个不同信号带宽的子系统。扩频 通信系统同时包括窄带信号和宽带信号。如果使用单一的采样频率,那么这个采样频率必 须与宽带波形相适应,而用宽带信号所需的采样率对窄带信号进行采样,将导致仿真的时 间过大和效率降低。一般最有效的方法是对每个过程用它的奈奎斯特速率采样,对整个系 统而言采用多速率采样。系统中出现两个不同带宽时,可采用两个采样率:在窄带到宽带 的分界处提高采样频率(上采样),而在宽带到窄带的分界处降低采样频率(下采样)。 采样频率的提高是通过对在原始样点之间内插新的样点来完成;采样频率的降低是通过从 原样点每多个样点抽取一个来实现。 采样点的值在计算机中是用有限长的码字来量化,所以在仿真中都会出现量化误差。 计算机处理表示数字的方式可以分为定点和浮点两类。当用定点数表示时,字长每增加一 个比特,量化的信噪比增加 6dB 。在通用计算机上采用浮点数表示进行仿真操作时,由量 化导致的量化误差通常可以忽略不计。然而,这种噪声永远不会为零,在噪声累积的情况 过多时可能会严重地降低仿真结果的精度。 3. 信道编码器和译码器 信道编码器对数码流进行相应的处理,使系统具有一定的纠错能力和抗干扰能力。信 道编码的处理技术有差错控制码、交织编码器等。差错控制码有线性差错控制码(汉明 码、线性循环码等)、Reed-Solomon 码、卷积码、Turbo 码、LDPC 码等。信道译码器完 成信道编码的译码。交织编码技术可离散化并纠正信号衰落引起的突发性差错,改善信道

通信系统的MATLAB仿真(通信实验必看)

通信系统的MATLAB仿真(通信实验必看)

第 6 章 通信系统仿真
6.3 差错控制编/译码方法
在通信系统中,差错控制编/译码技术被广泛地用于检查和纠正信息在传递过程中 发生的错误。在发送端,差错控制编码添加了一定的冗余码元到信源序列;接收时就利 用这些冗余信息来检测和纠正错误。纠错编码主要有分组码和卷积码两种类型。 MATLAB通信工具箱提供了一系列函数用于有限域计算。概率解码中最常用的是 Viterbi解码,用于卷积码解码。常用的纠错编码方法包括线性分组码、海明码、循环码、 BCH码、Reed-Solomon码和卷积码。 1. 纠错编码函数 纠错编码函数encode( )及译码函数decode( ) 格式: 格式:code=encode(msg, N, K, method, opt) 功能:用method指的方法完成纠错编码。其中msg代表信息码元;method是允许的编 码方法,包括hamming 、linear等, opt是一个可选择的优化参数。 格式: 格式:msg=decode(code,n,k,method) 功能:用指定的method方式进行译码。为了正确地复制出信源序列,编码和译码的调 用方式必须相同。
x ∈ Ri = Q ( x) = x i
N
易见,这类量化引入了失真,其均方误差为:
D= ∑ ∫ R ( x x i ) 2 f x ( x ) dx
i =1
1
其中f(x)是信源随机变量的概率密度函数。信号量化噪声比(SQNR)为:
SQNR = 10 log 10
E[ X 2 ] D
第 6 章 通信系统仿真
在MATLAB通信工具箱中提供了两种信源编译码的方法:标量量化和预测量化。 1.标量量化 标量量化 律压扩计算函数compand( ) (1)信源编码中的 律或 律压扩计算函数 信源编码中的 律或A律压扩计算函数 格式: 格式:out=compand(in, param, V, method) 功能:实现 律或A律压扩,其中param为 值,V为峰值。压扩方式由method指定。

Matlab通信系统仿真实验报告

Matlab通信系统仿真实验报告

Matlab通信原理仿真学号: 2142402 姓名:圣斌实验一 Matlab 基本语法与信号系统分析一、 实验目的:1、掌握MATLAB 的基本绘图方法;2、实现绘制复指数信号的时域波形。

二、 实验设备与软件环境:1、实验设备:计算机2、软件环境:MATLAB R2009a三、 实验内容:1、MATLAB 为用户提供了结果可视化功能,只要在命令行窗口输入相应的命令,结果就会用图形直接表示出来。

MATLAB 程序如下:x = -pi::pi;y1 = sin(x); y2 = cos(x); %准备绘图数据 figure(1); %打开图形窗口subplot(2,1,1); %确定第一幅图绘图窗口 plot(x,y1); %以x ,y1绘图title('plot(x,y1)'); %为第一幅图取名为’plot(x,y1)’ grid on; %为第一幅图绘制网格线 subplot(2,1,2) %确定第二幅图绘图窗口 plot(x,y2); %以x ,y2绘图xlabel('time'),ylabel('y')%第二幅图横坐标为’time ’,纵坐标为’y ’运行结果如下图:-1-0.500.51plot(x,y1)-1-0.500.51timey2、上例中的图形使用的是默认的颜色和线型,MATLAB中提供了多种颜色和线型,并且可以绘制出脉冲图、误差条形图等多种形式图:MATLAB程序如下:x=-pi:.1:pi;y1=sin (x);y2=cos (x);figure (1);%subplot (2,1,1);plot (x,y1);title ('plot (x,y1)');grid on%subplot (2,1,2);plot (x,y2);xlabel ('time');ylabel ('y')subplot(1,2,1),stem(x,y1,'r') %绘制红色的脉冲图subplot(1,2,2),stem(x,y1,'g') %绘制绿色的误差条形图运行结果如下图:3、一个复指数信号可以分解为实部和虚部两部分。

matlab 通信仿真案例

matlab 通信仿真案例

matlab 通信仿真案例MATLAB是一种常用的科学计算软件,被广泛应用于各个领域的仿真和模拟中。

在通信领域,MATLAB也是一个非常强大的工具,可以用来进行通信系统的仿真和设计。

下面我将通过一个简单的通信仿真案例来展示MATLAB在通信领域的应用。

假设我们要设计一个基本的数字通信系统,包括信号的生成、调制、传输、解调和接收等过程。

首先,我们需要生成一个信号源,这里我们选择一个简单的正弦波信号作为输入信号。

利用MATLAB的信号处理工具箱,我们可以很方便地生成一个正弦波信号,并对其进行调制。

接下来,我们将对信号进行调制,这里我们选择将信号调制为一种常见的调制方式——正交振幅调制(QAM)。

在MATLAB中,可以很容易地实现QAM调制,同时也可以设置调制阶数和载波频率等参数。

然后,我们需要模拟信号在传输过程中的传输情况,包括信道的噪声和衰落等影响。

在MATLAB中,可以通过添加高斯噪声或其他类型的信道噪声来模拟传输过程。

同时,可以通过调整信号的功率和信道的信噪比等参数来观察信号在传输过程中的性能表现。

接收端的解调也是通信系统中非常重要的一个环节。

在MATLAB中,可以很方便地实现QAM的解调过程,并对接收到的信号进行解调和解码。

通过观察解调后的信号和原始信号的误码率等性能指标,可以评估通信系统的性能。

除了基本的信号处理和调制解调,MATLAB还提供了丰富的工具箱和函数,可以用来实现各种通信系统中常见的功能和算法。

比如信道编码、调制解调、信号检测、自适应调制等。

可以根据具体的需求和应用场景,选择合适的工具箱和函数来实现通信系统的仿真和设计。

总的来说,MATLAB是一个非常强大的工具,在通信系统的仿真和设计中有着广泛的应用。

通过上面的简单案例,我们可以看到MATLAB在通信领域的强大功能和灵活性,为工程师和研究人员提供了一个方便快捷的平台,用来实现各种通信系统的仿真和设计。

希望通过这个案例的介绍,读者对MATLAB在通信领域的应用有所了解,也能够在实际工作中运用MATLAB来进行通信系统的仿真和设计。

matlab通信系统仿真[1]

matlab通信系统仿真[1]

大作业三通信系统仿真电子系无71李乾2007011252FDMA的Simulink仿真:1,连接图如下,参数设置同教材。

2,其中六个滤波器的作用,前边三个是将调制后的信号滤出来,便于将其加在一起进行传输。

后边三个是将加在一起的信号,根据其频率不同,进行选频,并且滤除噪声干扰。

将选出的信号交给后边的部件进行解调。

参数设置为:都是butterworth型带通滤波器。

前三个低频截止频率和高频截止频率分别是:Filter1:30*2*pi~50*2*piFilter2:50*2*pi~70*2*piFilter3:70*2*pi~90*2*pi后三个对应相同。

三个scope的波形依次为:第一路正弦信号:第二路方波信号:第三路锯齿波信号:三路相加的信号频谱:没深入考虑。

)TDMA的Simulink仿真:1,设计如下:pulse Genrtator单元用来产生三分之一方波,参数设置如下:Unit Delay用来产生三分之一周期的延迟,参数设置如下:产生的方波将信号分别取值并放到各自的时间域。

然后送入传输线路。

2,接受单元和时分多址复用单元完全相同。

其门控脉冲要同时发出,且周期占空比都相同。

即达到完全同步。

3,仿真结果如下:CDMA的Simulink仿真1,initial seed设置成不同值,就可以产生三路不同的信号。

第1到6号Relay单元设置如下:第7到9号Relay单元设置如下:两个Integer Delay分别设置如下:PN序列产生器:滤波器设置如下:最后得到的三路信号和输出的信号:(这部分的主要参数设置还是改sample time,不过有些单元的设置还是有些不明就里,大量参照了别人的设置。

)2,语音信号由workspace导入,并且转化成二进制码流,输入到CDMA的三个输入端,输出的二进制信号再转化成语音信号导入到workspace中。

语音信号可能会好些。

不过遗憾的是,没有听到远近效应。

三种多址方式的比较:1,关于频带资源占用,FDMA占用最大,TDMA和CDMA较小。

MATLAB2psk通信系统仿真报告

MATLAB2psk通信系统仿真报告

MATLAB2psk通信系统仿真报告自查报告。

标题: MATLAB 2psk通信系统仿真报告。

在本次仿真报告中,我使用MATLAB对2psk通信系统进行了仿
真分析。

在整个仿真过程中,我对系统的性能进行了评估,并对结
果进行了分析。

在此过程中,我发现了一些错误和改进的空间,下
面是我对本次仿真报告的自查总结:
1. 参数设置,在仿真过程中,我可能忽略了一些关键参数的设置,导致了结果的偏差。

下次在进行仿真前,我会仔细检查所有参
数的设置,确保其准确性和完整性。

2. 代码实现,在编写MATLAB代码时,我可能存在一些错误或
不规范的地方,导致了程序的运行出现了问题。

下次在编写代码时,我会更加细致地审查和测试,以确保代码的正确性和稳定性。

3. 结果分析,在对仿真结果进行分析时,我可能存在了一些主
观性的评价,导致了对结果的理解出现了偏差。

下次在进行结果分
析时,我会更加客观地进行评价,确保对结果的理解和解释是准确
和全面的。

4. 改进空间,在本次仿真过程中,我发现了一些可以改进的空间,比如系统性能的优化和参数的调整等。

下次我会根据本次仿真
的经验和教训,对系统进行更加全面和深入的改进,以提高系统的
性能和稳定性。

总的来说,通过本次自查报告,我对本次仿真过程中存在的问
题和不足有了更加清晰的认识,也对下次的工作有了更加明确的改
进方向。

我会认真总结本次经验,不断提高自己的仿真能力和水平,以更好地完成今后的工作任务。

基于MATLAB的通信系统仿真研究

基于MATLAB的通信系统仿真研究

基于MATLAB的通信系统仿真研究一、本文概述随着信息技术的飞速发展,通信系统在人们的生活和工作中扮演着越来越重要的角色。

为了深入理解和优化这些系统的性能,基于MATLAB 的通信系统仿真研究显得尤为重要。

MATLAB作为一种功能强大的数值计算环境和编程语言,其内置的通信工具箱为通信系统仿真提供了丰富的函数库和算法支持。

本文旨在探讨基于MATLAB的通信系统仿真的原理、方法及其应用,以期通过仿真研究,对通信系统的性能进行预测、分析和优化。

本文将简要介绍MATLAB及其在通信系统仿真中的应用,阐述其相较于其他仿真工具的独特优势。

接着,本文将详细介绍基于MATLAB的通信系统仿真流程,包括系统建模、信号生成、信道模拟、误码性能分析等环节。

在此基础上,本文将探讨几种典型的通信系统,如数字基带传输系统、数字频带传输系统以及无线通信系统的仿真实现方法。

本文还将通过实际案例,展示如何利用MATLAB进行通信系统仿真研究。

这些案例将涵盖从简单的数字通信系统到复杂的无线通信网络的各个方面,旨在展示MATLAB在通信系统仿真中的广泛应用和实用性。

本文将对基于MATLAB的通信系统仿真研究进行总结和展望,分析当前研究的不足之处,并提出未来可能的研究方向。

通过本文的研究,读者可以更加深入地理解通信系统的原理和实现方法,为通信技术的进一步发展提供有力支持。

二、MATLAB基础与通信系统仿真概述MATLAB,全称Matrix Laboratory,是一款由美国MathWorks公司出品的商业数学软件,广泛应用于算法开发、数据可视化、数据分析以及数值计算等众多领域。

MATLAB以矩阵运算为基础,集成了大量的数学函数库和工具箱,用户只需通过简单的编程即可实现复杂的数学运算和算法设计。

特别值得一提的是,MATLAB拥有丰富的工具箱,如信号处理工具箱、通信工具箱等,这些工具箱为通信系统仿真提供了强大的支持。

通信系统仿真是一种通过数学模型和计算机技术来模拟实际通信系统的过程。

实验六 数据链路层成帧技术的matlab仿真

实验六 数据链路层成帧技术的matlab仿真

实验五数据链路层成帧的matlab仿真实验目的:●了解数据链路层成帧技术的实现原理●掌握matlab编程,实现数据链路层成帧技术的仿真实验要求:●掌握数据链路层成帧技术●掌握matlab语言对于数据链路层成帧技术仿真的功能实验场景:二进制码流:01110010111111111111100111011111110分解标志符:01111110二进制码流:01110010111110111110111001110111110110实验参考程序:% 数据链路层成帧技术仿真% Author : Teacher Wei% Data : 2012年12月14号clear all;N = 35; % 码个数b = [0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0]; % N个码符c = dec2bin(b)'; % 转化成二进制码流num = 0; % 计算1的个数len = 0; % 新码流的初始位置for i = 1 : Nlen = len + 1; % 新码流位置向后移一位d(len) = c(i); % 将旧码流的数据赋给对应的新码流if c(i) == dec2bin(1) % 如果这个旧码是1num = num + 1; % 计数器加1if num == 5 % 如果计数器达到5len = len + 1; % 新码流后移一位d(len) = dec2bin(0); % 插入0值num = 0; % 计数器归零endelse % 如果旧码是0num = 0; % 则计数器归零endend程序设计思路:任务:(1)按实验场景完成对码流成帧,要求在Matlab软件的Editor编辑器中写出程序,并执行,观察更新结果和手工计算是否一致;>> % 数据链路层成帧技术仿真% Author : Teacher Wei% Data : 2012年12月14号clear all;N = 35; % 码个数b = [0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0]; % N个码符c = dec2bin(b)'; % 转化成二进制码流num = 0; % 计算1的个数len = 0; % 新码流的初始位置for i = 1 : Nlen = len + 1; % 新码流位置向后移一位d(len) = c(i); % 将旧码流的数据赋给对应的新码流if c(i) == dec2bin(1) % 如果这个旧码是1num = num + 1; % 计数器加1if num == 5 % 如果计数器达到5len = len + 1; % 新码流后移一位d(len) = dec2bin(0); % 插入0值num = 0; % 计数器归零endelse % 如果旧码是0num = 0; % 则计数器归零endend>> bb =Columns 1 through 200 1 1 1 0 0 1 0 1 1 1 1 11 1 1 1 1 1 1Columns 21 through 351 0 0 1 1 1 0 1 1 1 1 1 1 1 0>> cc =01110010111111111111100111011111110>> dd =01110010111110111110111001110111110110手工计算:01110010111110111110111001110111110110所以结果一致(2)将参考例程中的成帧处理模块单独提取出来,做一个matlab函数,要求函数名为frame_sim,输入参数为old_stream,输出参数为new_stream,做适当的注释;通过函数调用,重新完成实验场景要求的成帧,查看是否一致;function [old_stream,new_stream]=frame_sim(b)N =length(b);old_stream = dec2bin(b)'; % 转化成二进制码流num = 0; % 计算1的个数len = 0; % 新码流的初始位置for i = 1 : Nlen = len + 1; % 新码流位置向后移一位new_stream(len) = old_stream(i); % 将旧码流的数据赋给对应的新码流if old_stream(i) == dec2bin(1) % 如果这个旧码是1num = num + 1; % 计数器加1if num == 5 % 如果计数器达到5len = len + 1; % 新码流后移一位new_stream(len) = dec2bin(0); % 插入0值num = 0; % 计数器归零endelse % 如果旧码是0num = 0; % 则计数器归零endendb = [0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0];[old_stream,new_stream]=frame_sim(b)old_stream =01110010111111111111100111011111110new_stream =01110010111110111110111001110111110110(3)用函数调用计算教科书82页中的作业题3以及例题1、2,写出相应的程序;>> b=[0 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0];[old_stream,new_stream]=frame_sim(b)old_stream =0111101111101111110111111101111111111110new_stream =011110111110011111010111110110111110111110110b=[0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 ...0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 0 0 0 ...1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 ...0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 ...1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 ...1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1];[old_stream,new_stream]=frame_sim(b)old_stream = 01000101000000000000000000011100000000000011111100000000000000000001111100000111 1111100010101000110000001010100000000000100110100000101000001010000010100000010 01111111100000000101010100101010111111111111111111111111100001111new_stream = 0100010100000000000000000001110000000000001111101000000000000000000011111000000 1111101110001010100011000000101010000000000010011010000010100000101000001010000 001001111101110000000010101010010101011111011111011111011111011111000001111P82.例3:b=[0 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0];[old_stream,new_stream]=frame_sim(b)old_stream =0111101111101111110new_stream =011110111110011111010(4)用程序随机生成10个字节的原始数据,完成HDLC信息帧的封装,要求地址随意设定,但不要全部为零,控制字段中Seq为000,Next为000,P/F为0,校验和设定为“1111001101011000”(此处校验和是假设的,实际计算时,不同的数据得到的校验和当然不一样,它通过循环冗余码计算得到,通信原理中会教到),此处数据是任意比特的function [old_stream,new_stream]=frame_sim(b)N =length(b);old_stream = dec2bin(b)'; % 转化成二进制码流num = 0; % 计算1的个数len = 0; % 新码流的初始位置for i = 1 : Nlen = len + 1; % 新码流位置向后移一位new_stream(len) = old_stream(i); % 将旧码流的数据赋给对应的新码流if old_stream(i) == dec2bin(1) % 如果这个旧码是1num = num + 1; % 计数器加1if num == 5 % 如果计数器达到5len = len + 1; % 新码流后移一位new_stream(len) = dec2bin(0); % 插入0值num = 0; % 计数器归零endelse % 如果旧码是0num = 0; % 则计数器归零endend>> adr=[0 0 1 1 1 1 0 1]con=[0 0 0 0 0 0 0 0]data=round(rand(1,80))chk=[1 1 1 1 0 0 1 1 0 1 0 1 1 0 0 0];frm=[adr,con,data,chk];[old_stream,new_stream]=frame_sim(frm)head=[0 1 1 1 1 1 1 0];Frame=[dec2bin(head)',new_stream,dec2bin(head)']adr =0 0 1 1 1 1 0 1con =0 0 0 0 0 0 0 0data =Columns 1 through 201 1 1 0 0 0 0 0 1 0 0 1 0 1 1 1 0 1 0 1Columns 21 through 400 1 0 1 1 1 0 0 1 1 0 1 01 0 1 0 1 0 1Columns 41 through 601 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 1 0 1 1Columns 61 through 800 0 0 0 0 1 0 0 1 1 0 0 01 1 0 1 0 1 0old_stream = 00111101000000001110000010010111010101011100110101010101110000011000110110110000 01001100011010101111001101011000new_stream = 00111101000000001110000010010111010101011100110101010101110000011000110110110000 01001100011010101111001101011000Frame = 01111110001111010000000011100000100101110101010111001101010101011100000110001101 101100000100110001101010111100110101100001111110(5)编写解帧程序,把插过0的码流重新变换为原始码流。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

BUPT Information Theory & Technology Education & Research Center
• 带通信号的基带等效 • 最佳接收机
8
BUPT Information Theory & Technology Education & Research Center
带通信号的基带等效表示
20
常用统计信号处理函数
BUPT Information Theory & Technology Education & Research Center
• xcov与其类似
21
BUPT Information Theory & Technology Education & Research Center
Matlab中的通信系统仿真资源
• 主要资源:
– 信号处理工具箱(Signal Processing Toolbox) – 通信工具箱(Communications Toolbox)
• 配套资源:
– 滤波器设计工具箱(Filter Design Toolbox) – 定点工具箱(Fixed-Point Toolbox) – 统计工具箱(Statistics Toolbox)
16
BUPT Information Theory & Technology Education & Research Center
信号处理工具箱
• 命令行形式的函数包括:
– – – – – – – – – 离散时间滤波器设计、分析与实现 模拟滤波器设计分析与实现 线性系统变换 窗函数 谱分析 统计信号处理 线性预测 多速率信号处理 波形产生
6
BUPT Information Theory & Technology Education & Research Center
主要内容
• 数字通信系统的组成 • 通信系统链路级仿真的一般性假设前提 • Matlab中的通信系统仿真资源
– 信号处理工具箱及常用信号处理函数 – 通信工具箱
7
通信系统链路级仿真的一般假设前提
19
BUPT Information Theory & Technology Education & Research Center
常用统计信号处理函数
• 默认情况下,执行计算:
• 可以指定归一化选项‘biased’ ‘unbiased’或 ‘coeff’ ,如果选‘biased’,则 • 如果选’ ‘unbiased’, • 如果选‘coeff’,是将R(0) 归一
更为一般的通信链路模型示意图
5
BUPT Information Theory & Technology Education & Research Center
一般数字通信系统的组成
• • • • • • 信号源 信息源 信源编码和解码 信道编码和解码 射频调制与解调 振荡器、混频器、变 频器和功率放大器 • 滤波和自适应均衡 • 信道 • 多路复用以及多址接 入 • 噪声和干扰源 • 同步:包括载波同步 、扩频码同步、符号 同步、数据帧同步等 等
Matlab中的通信系统仿真资源
• Matlab和Simulink都针对通信系统的物理 层(链路级)仿真提供了专门的工具箱 和模块库。 • 传统数字通信系统常用的各种信息处理 、信号处理算法都有相应的函数与之对 应。 • 近年来新出现的一些技术推动工具箱不 断更新。
14
BUPT Information Theory & Technology Education & Research Center
18
BUPT Information Theory & Technology Education & Research Center
常用统计信号处理函数
• xcorr和xcov
– 分别用于计算互相关函数和互协方差函数 – 自相关函数和自协方差函数作为特例处理。
• 本来应该计算
• 但是只能估计。 • c = xcorr(x,y) 返回长度为2*N-1的向量。 如果x和y不一样长,将短的补零
27
BUPT Information Theory & Technology Education & Research Center
24
BUPT Information Theory & Technology Education & Research Center
常用变换函数
• fft函数当输入参数个数为1,且为一个向量时 ,执行该向量的DFT计算 • 当输入参数为一个矩阵时,计算每列的DFT。
• • • • • • • • • t = (0:1/100:10-1/100); x = sin(2*pi*15*t) + sin(2*pi*40*t); y = fft(x); % Compute DFT of x m = abs(y); p = unwrap(angle(y)); f = (0:length(y)-1)*99/length(y); % Frequency vector plot(f,m); title('Magnitude'); set(gca,'XTick',[15 40 60 85]); figure; plot(f,p*180/pi); title('Phase'); set(gca,'XTick',[15 40 60 85]);
通信系统基本模型
3
BUPT Information Theory & Technology Education & Research Center
点到点数字通信系统基本模型
4
BUPT Information Theory & Technology Education & Research Center
z ( t ) f L ( t )e a ( t )e
j c t j c t ( t )
a ( t ) cos c t ( t ) j sin c t ( t )
jc t f ( t ) Re z ( t ) Re f ( t ) e L
• GUI工具
– 滤波器设计与分析 – 窗设计与分析 – 信号绘图等
17
BUPT Information Theory & Technology Education & Research Center
常用波形产生函数
• • • • • sawtooth:锯齿波 square:方波 gauspuபைடு நூலகம்s:高斯调制正弦脉冲 chirp:线性调频信号 sinc:抽样函数
26
BUPT Information Theory & Technology Education & Research Center
常用变换函数
• ifft函数的使用方法与fft非常类似。 • 注意fft和ifft函数对于输出功率的影响。 • fft函数之后总功率为fft之前的N倍,ifft之 后总功率则减小到原来的1/N。
15
BUPT Information Theory & Technology Education & Research Center
信号处理工具箱
• 支持各种信号处理操作,包括波形产生 、滤波器设计与实现、卷积、常用的变 换和谱分析等。 • 分为两类工具,一类是命令行形式的函 数,另一种是GUI形式的 集成工具。
23
BUPT Information Theory & Technology Education & Research Center
常用变换函数
• DFT变换:fft、fftshift、fftw、ifft • FFT是数字信号处理的基础 • 但是这些函数属于Matlab本身,不属于 SP Toolbox。
11
BUPT Information Theory & Technology Education & Research Center
仿真与实现的关系
• 浮点仿真与基带处理实现之间的区别仅 仅在于对数的表示方式不同。 • 定点仿真则完全在计算机上模拟实际实 现时在DSP、FPGA、ASIC上的处理。 • 定点仿真通常作为实际实现之前的验证 和测试向量产生手段。
仿真与实现的关系
• 通信系统链路级仿真与实际发射机与接 收机实现之间的关系非常密切。 • 大部分关于发射机和接收机的仿真模型 实际上就是其基带处理模型。 • 可以认为发射机和接收机的基带处理包 含两类操作:
– 信息处理:信源编解码、加解密、信道编解 码 – 信号处理:采样、滤波、调制、估计、检测 、均衡等。
12
BUPT Information Theory & Technology Education & Research Center
主要内容
• 数字通信系统的组成 • 通信系统链路级仿真的一般性假设前提 • Matlab中的通信系统仿真资源
– 信号处理工具箱及常用信号处理函数 – 通信工具箱
13
BUPT Information Theory & Technology Education & Research Center
最佳接收机
• 假设为最佳接收机与噪声方差的计算密 切相关。 • 二进制反极性基带通信系统仿真的例子 。 • 带通信号基带等效后得到相同结果。 • 如BPSK信号的仿真程序和二进制反极性 基带通信系统仿真程序完全相同。 • 如果引入频偏、时偏或相偏则仿真模型 会有所区别。
相关文档
最新文档