MATLAB仿真信道化码和扰码,含有完整代码
(完整版)MATLAB模拟2ASK调制误码率与信噪比关系曲线的程序

%模拟2ASK% Pe=zeros(1,26);jishu=1;for snr=-10:0.5:15max = 10000;s=round(rand(1,max));%长度为max的随机二进制序列f=100;%载波频率nsamp = 1000;每个载波的取样点数tc=0:2*pi/999:2*pi;tc的个数应与nsamp相同cm=zeros(1,nsamp*max);cp=zeros(1,nsamp*max);mod=zeros(1,nsamp*max);for n=1:max;if s(n)==0;m=zeros(1,nsamp);b=zeros(1,nsamp);else if s(n)==1;m=ones(1,nsamp);b=ones(1,nsamp);endendc = sin(f*tc);cm((n-1)*nsamp+1:n*nsamp)=m;cp((n-1)*nsamp+1:n*nsamp)=b;mod((n-1)*nsamp+1:n*nsamp)=c;endtiaoz=cm.*mod;%2ASK调制t = linspace(0,length(s),length(s)*nsamp);tz=awgn(tiaoz,snr);%信号tiaoz中加入白噪声,信噪比为SNR=10dB jiet = 2*mod.*tz; %相干解调[N,Wn]=buttord(0.2,0.3,1,15);[b,a]=butter(N,Wn);dpsk=filter(b,a,jiet);%低通滤波% 抽样判决,判决门限为0.5depsk = zeros(1,nsamp*max);for m = nsamp/2:nsamp:nsamp*max;if dpsk(m) < 0.5;for i = 1:nsampdepsk((m-500)+i) = 0;endelse if dpsk(m) >= 0.5;for i = 1:nsampdepsk((m-500)+i) = 1;endendendendwrong=0;for i=1:length(cp);if cp(i)~=depsk(i);wrong=wrong+1;endendPe(jishu)=wrong/length(cp);jishu=jishu+1;endsnr=-10:0.5:15;semilogy(snr,Pe,'*');%理论计算snr=-10:0.1:15;Pet=0.5*erfc((10.^(snr/10)/4).^0.5); hold on;semilogy(snr,Pet);xlabel('SNR/dB');ylabel('P_e');legend('模拟结果','理论值');。
无线通信原理-基于matlab的ofdm系统设计与仿真

无线通信原理-基于matlab的ofdm系统设计与仿真基于matlab的ofdm系统设计与仿真摘要OFDM即正交频分复用技术,实际上是多载波调制中的一种。
其主要思想是将信道分成若干正交子信道,将高速数据信号转换成并行的低速子数据流,调制到相互正交且重叠的多个子载波上同时传输。
该技术的应用大幅度提高无线通信系统的信道容量和传输速率,并能有效地抵抗多径衰落、抑制干扰和窄带噪声,如此良好的性能从而引起了通信界的广泛关注。
本文设计了一个基于IFFT/FFT算法与802.11a标准的OFDM系统,并在计算机上进行了仿真和结果分析。
重点在OFDM系统设计与仿真,在这部分详细介绍了系统各个环节所使用的技术对系统性能的影响。
在仿真过程中对OFDM信号使用QPSK 调制,并在AWGN信道下传输,最后解调后得出误码率。
整个过程都是在MATLAB环境下仿真实现,对ODFM系统的仿真结果及性能进行分析,通过仿真得到信噪比与误码率之间的关系,为该系统的具体实现提供了大量有用数据。
- 1 -第一章 ODMF系统基本原理1.1多载波传输系统多载波传输通过把数据流分解为若干个子比特流,这样每个子数据流将具有较低的比特速率。
用这样的低比特率形成的低速率多状态符号去调制相应的子载波,构成了多个低速率符号并行发送的传输系统。
在单载波系统中,一次衰落或者干扰就会导致整个链路失效,但是在多载波系统中,某一时刻只会有少部分的子信道会受到衰落或者干扰的影响。
图1,1中给出了多载波系统的基本结构示意图。
图1-1多载波系统的基本结构多载波传输技术有许多种提法,比如正交频分复用(OFDM)、离散多音调制(DMT)和多载波调制(MCM),这3种方法在一般情况下可视为一样,但是在OFDM中,各子载波必须保持相互正交,而在MCM则不一定。
1.2正交频分复用OFDM就是在FDM的原理的基础上,子载波集采用两两正交的正弦或余弦函sinm,tcosn,t数集。
基于MATLABSimulink的基带传输系统的仿真-(1)

基于MATLABSimulink的基带传输系统的仿真-(1)通信工程专业《通信原理》课程设计题目基于MATLAB/Simulink的基带传输系统的仿真学生姓名张莎学号1113024109所在院(系)陕西理工学院物理与电信工程学院专业班级通信工程专业1104 班指导教师侯宝生合作者王翊东鲁少龙完成地点陕西理工学院物理与电信工程学院实验室2014年 3 月 12 日通信原理课程设计任务书院(系) 物电学院专业班级通信1104 学生姓名张莎一、通信原理课程设计题目基于MATLAB/Simulink的基带传输系统的仿真二、通信原理课程设计工作自2014年2月24日起至2014年3月14日止三、通信原理课程设计进行地点: 物电学院实验室四、通信原理课程设计的内容要求:1建立一个基带传输系统模型,选用合适基带信号,发送滤波器为平方根升余弦滤波器,滚降系数为0.5,信道为加性高斯信道,接收滤波器与发送滤波器相匹配。
要求观察接收信号眼图,并设计接收机采样判决部分,对比发送数据与恢复数据波形,并统计误码率。
另外,对发送信号和接收信号的功率谱进行估计,假设接收定时恢复是理想的。
2.设计题目的详细建模仿真过程分析和说明,仿真的结果可以以时域波形,频谱图,星座图,误码率与信噪比曲线的形式给出。
课程设计说明书中应附仿真结果图及仿真所用到的程序代码(MATLAB)或仿真模型图(Simulink/SystemView)。
如提交仿真模型图,需提交相应模块的参数设置情况。
3.每人提交电子版和纸质的说明书及源程序代码或仿仿真文件。
参考文献:[1]邓华.MATLAB通信仿真及其应用实例详解[M].人民邮电出版社.2003年[2]郑智琴.Simulink电子通信仿真与应用[M].国防工业出版社.2002年[3]赵鸿图.通信原理MATLAB仿真教程[M].人民邮电出版社.2010年[4]刘学勇.详解MATLAB/Simulink通信系统建模与仿真[M].电子工业出版社.2011年[5]达新宇.通信原理实验与课程设计[M].北京邮电大学出版社.2005年[6]邵玉斌.MATLAB/Simulink通信系统建模与仿真实例分析[M].清华大学出版社.2008年指导教师侯宝生系(教研室)通信工程系接受论文 (设计)任务开始执行日期2014年2月24日学生签名基于MATLAB/Simulin的基带传输系统的仿真张莎(陕西理工学院物理与电信工程学院通信1104班,陕西汉中723003)指导教师:侯宝生[摘要]未经调制的数字信号所占据的频谱是从零频或者很低频率开始,称为数字基带信号,不经载波调制而直接传输数字基带信号的系统,称为数字基带传输系统。
PCM编码,循环码,PSK,matlab程序

目录目录 ....................................................... 错误!未定义书签。
摘要 ....................................................... 错误!未定义书签。
Abstract..................................................... 错误!未定义书签。
1.前言 ..................................................... 错误!未定义书签。
2.数字化方式................................................ 错误!未定义书签。
2.1 脉冲编码调制 ......................................... 错误!未定义书签。
2.1.1 脉冲编码调制的基本原理 ........................... 错误!未定义书签。
2.1.2 脉冲编码调制中的噪声影响 ......................... 错误!未定义书签。
2.2 增量调制 ............................................. 错误!未定义书签。
2.2.1 脉冲编码调制的基本原理 ........................... 错误!未定义书签。
2.2.2 增量调制系统中的量化噪声 ......................... 错误!未定义书签。
3.数字基带传输系统.......................................... 错误!未定义书签。
3.1 基带传输的常用码型 ................................... 错误!未定义书签。
3.1.1 AMI码............................................ 错误!未定义书签。
瑞利衰落信道和高斯信道matlab

瑞利衰落信道和高斯信道是无线通信中常见的两种信道模型。
瑞利衰落信道适用于描述城市中的移动通信环境,而高斯信道则适用于描述开阔地带或者室内的通信环境。
本文将使用Matlab来分别模拟这两种信道,并对模拟结果进行分析和比较。
一、瑞利衰落信道模拟1. 利用Matlab中的rayleighchan函数可以模拟瑞利衰落信道。
该函数可以指定信道延迟配置、多径增益和相位等参数。
2. 我们需要生成随机的信号序列作为发送端的信号。
这里可以使用Matlab中的randn函数生成高斯白噪声信号作为发送端信号的模拟。
3. 接下来,我们需要创建一个瑞利衰落信道对象,并指定相应的参数。
这里可以设定信道延迟配置、多径增益和相位等参数,以便更好地模拟实际的信道环境。
4. 将发送端的信号通过瑞利衰落信道进行传输,即将信号与瑞利衰落信道对象进行卷积操作。
5. 我们可以通过Matlab中的plot函数绘制发送端和接收端信号的波形图以及信号经过瑞利衰落信道后的波形图,以便直观地观察信号经过信道传输后的变化。
二、高斯信道模拟1. 与瑞利衰落信道模拟类似,高斯信道的模拟同样可以使用Matlab 中的函数进行实现。
在高斯信道的模拟中,我们同样需要生成随机的信号序列作为发送端的信号。
2. 我们可以通过Matlab中的awgn函数为发送端信号添加高斯白噪声,模拟信号在传输过程中受到的噪声干扰。
3. 我们同样可以使用plot函数绘制发送端和接收端信号的波形图以及信号经过高斯信道后的波形图,以便观察信号传输过程中的噪声干扰对信号的影响。
三、模拟结果分析和比较对于瑞利衰落信道模拟结果和高斯信道模拟结果,我们可以进行一些分析和比较:1. 信号衰落特性:瑞利衰落信道模拟中,我们可以观察到信号在传输过程中呈现出快速衰落的特性,而高斯信道模拟中,信号的衰落速度相对较慢。
2. 噪声干扰:高斯信道模拟中,我们可以观察到添加了高斯白噪声对信号的影响,而在瑞利衰落信道模拟中,虽然也存在噪声干扰,但其影响相对较小。
用Matlab产生伪随机序列,实现扰码

中北大学课程设计任务书2014/2015 学年第二学期学院:信息与通信工程学院专业:电子信息科学与技术学生姓名:学号:课程设计题目:用Matlab产生伪随机序列,实现扰码解扰起迄日期:6月29日~7月10日课程设计地点:指导教师:程耀瑜、李永红学科部主任:程耀瑜下达任务书日期: 2015 年 6 月 29日课程设计任务书1.设计目的:通过本课程设计, 主要训练和培养学生综合应用所学过的信号及信息处理等课程的相关知识,独立完成信号仿真以及信号处理的能力。
包括:查阅资料、合理性的设计、分析和解决实际问题的能力,数学仿真软件Matlab和C语言程序设计的学习与应用,培养规范化书写说明书的能力。
2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等):用Matlab产生伪随机序列,实现扰码和解扰(1)利用周期为255的m序列发生器;(2)利用周期为127的m序列发生器;(3)利用周期为63的m序列发生器;3.设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图纸、实物样品等〕:课程设计说明书仿真结果课程设计任务书4.主要参考文献:要求按国标GB 7714—87《文后参考文献著录规则》书写,例:1 傅承义,陈运泰,祁贵中.地球物理学基础.北京:科学出版社,1985(5篇以上)5.设计成果形式及要求:课程设计说明书仿真结果6.工作计划及进度:2015年6 月29 日~ 7月3 日了解设计题目及熟悉资料;7月4日~ 7月5日确定各题目要求计算相关参数;7月6日~ 7月7 日结合各题目确定具体设计方案;7月8日~ 7月9日结合要求具体设计并仿真、整理报告;7月10日答辩。
学科主任审查意见:签字:年月日。
matlab中channel用法

matlab中channel用法Matlab中的channel是一个非常重要的概念,它在信号处理和通信系统设计中起着关键的作用。
本文将详细介绍Matlab中channel的用法,并一步一步回答与之相关的问题。
1. 什么是信道?信道是指信号传输中的传输介质,它可以是电缆、无线电波、光纤等。
在通信系统中,信道会对信号进行一定的改变和失真,这是由传输介质的物理特性和环境影响所决定的。
因此,信道的建模和分析对于有效的信号传输至关重要。
2. 信道建模在Matlab中,我们可以通过各种建模技术来描述信道。
一个常见的信道模型是加性高斯白噪声(Additive White Gaussian Noise, AWGN)信道。
该模型假设信号在传输过程中会受到加性高斯白噪声的干扰。
在Matlab中,我们可以使用“awgn”函数来在信号中加入高斯白噪声。
例如,假设我们有一个原始信号x,信道增益为1,信噪比为10dB,我们可以使用以下代码将原始信号通过AWGN信道进行建模:matlabSNR = 10; % 信噪比(dB)x = randn(1, 1000); % 原始信号y = awgn(x, SNR, 'measured'); % 加入高斯白噪声在上述代码中,“awgn”函数将原始信号x与指定的信噪比和信道增益一起传递,生成经过AWGN信道的输出信号y。
3. 信道估计在通信系统中,准确地估计信道的特性是至关重要的。
信道估计可以在接收端对接收到的信号进行分析,从而推断出信道的特性。
Matlab提供了各种信道估计算法,如最小二乘(Least Squares)、最大似然(Maximum Likelihood)等。
例如,对于频率选择性信道,我们可以使用最小二乘法对信道进行估计。
以下是使用LS算法进行信道估计的示例代码:matlabh_true = [1 0.5 0.2 0.1]; % 真实信道冲激响应N = 10000; % 信号长度x = randn(1, N); % 发送信号y = conv(x, h_true) + 0.1 * randn(1, N+length(h_true)-1); % 接收信号(含噪声)h_est = ls_channel_estimate(x, y, length(h_true)); % 信道估计function h_est = ls_channel_estimate(x, y, M)X = toeplitz(x, [x(1) zeros(1, M-1)]); % 发送信号的Toeplitz矩阵h_est = inv(X' * X) * X' * y'; % 最小二乘信道估计end在上述代码中,“ls_channel_estimate”函数通过计算发送信号x的Toeplitz矩阵并应用最小二乘方法来估计信道带来的响应h_est。
MATLAB课件·第4章 通信系统的建模与仿真

B 这种典型的情况,带通采样定理所规定的采
样频率近似等于下界 2 B 。 对整个通信系统进行仿真开发时,选择对系统合适的采样频率是要做的一个基本决 定。除考虑上述信号带宽外,有许多因素影响所需的系统采样频率。具有反馈的系统、非 线性系统、多径信道等会导致更高的采样频率要求。对于无反馈的线性系统,必需的采样 频率可由可接受的混叠误差决定的,而这又有赖于发送滤波器成形脉冲的功率谱密度。成 形脉冲是假定时域有限的,因此不可能是带宽有限的,因而会产生在实际中不可能消除混 叠误差。为仿真选择合适的采样频率的一个策略就是在混叠误差和仿真时间之间达成一个 可以接受的折衷。目标是选择一个采样频率,使得混叠误差相对于仿真所考察的系统性能 的降低是可以忽略的。 有些要仿真的系统(如扩频通信系统)包含两个或多个不同信号带宽的子系统。扩频 通信系统同时包括窄带信号和宽带信号。如果使用单一的采样频率,那么这个采样频率必 须与宽带波形相适应,而用宽带信号所需的采样率对窄带信号进行采样,将导致仿真的时 间过大和效率降低。一般最有效的方法是对每个过程用它的奈奎斯特速率采样,对整个系 统而言采用多速率采样。系统中出现两个不同带宽时,可采用两个采样率:在窄带到宽带 的分界处提高采样频率(上采样),而在宽带到窄带的分界处降低采样频率(下采样)。 采样频率的提高是通过对在原始样点之间内插新的样点来完成;采样频率的降低是通过从 原样点每多个样点抽取一个来实现。 采样点的值在计算机中是用有限长的码字来量化,所以在仿真中都会出现量化误差。 计算机处理表示数字的方式可以分为定点和浮点两类。当用定点数表示时,字长每增加一 个比特,量化的信噪比增加 6dB 。在通用计算机上采用浮点数表示进行仿真操作时,由量 化导致的量化误差通常可以忽略不计。然而,这种噪声永远不会为零,在噪声累积的情况 过多时可能会严重地降低仿真结果的精度。 3. 信道编码器和译码器 信道编码器对数码流进行相应的处理,使系统具有一定的纠错能力和抗干扰能力。信 道编码的处理技术有差错控制码、交织编码器等。差错控制码有线性差错控制码(汉明 码、线性循环码等)、Reed-Solomon 码、卷积码、Turbo 码、LDPC 码等。信道译码器完 成信道编码的译码。交织编码技术可离散化并纠正信号衰落引起的突发性差错,改善信道
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重庆交通大学信息科学与工程学院综合性设计性实验报告
专业:通信工程专业11级
学号:
姓名:
实验所属课程:第三代移动通信及其演进技术
实验室(中心):软件与通信实验中心
****:***
2014年3月
教师评阅意见:
签名:年月日实验成绩:
一、题目
第三代移动通信的信道化码和扰码产生
二、仿真要求
要求一:建立M文件分别产生m序列、gold序列及OVSF序列。
要求二:要求仿真不同序列的自相关和互相关特性。
三、仿真方案详细设计
1、m序列
m序列又叫做伪随机序列、伪噪声(PN)码或伪随机码。
它是由多级移位寄存器或其他延迟元件通过线性反馈产生的最长的码序列,产生框图如下所示:
2、Gold序列
Gold序列是R.Gold于1967年提出来的,它由两个m序列按下述方法演变而来的:把2个码长相同的m序列移位并进行模2加,如果相加的两个m序列
是一对优选对,则相加的结果为一个Gold序列。
如下图所示:
3、OVSF序列
OCSF序列又叫正交可变扩频因子,系统根据扩频因子的大小给用户分配资源,数值越大,提供的带宽越小,OVSF码互相关为零,相互完全正交。
4、自相关函数
自相关函数(Autocorrelation Function)在不同的领域,定义不完全等效。
函数代码:
function [out]=autocorr(indata)
ln=length(indata);
out=zeros(1,ln);
for ii=0:ln-1
out(ii+1)=sum(indata.*shift(indata,ii))/ln;
end
5、互相关函数
互相关函数是信号分析里的概念,表示的是两个时间序列之间和同一个时间序列在任意两个不同时刻的取值之间的相关程度,即互相关函数是描述随机信号x(t),y(t)在任意两个不同时刻t1,t2的取值之间的相关程度。
四、仿真结果及结论
偏移量
m 序列的自相关性
偏移量
m 序列的互相关性
偏移量
g o l d 序列的自相关性
偏移量
g o l d 序列的互相关性
偏移量
O V S F 序列的自相关性
偏移量
O V S F 序列的互相关性
从实验结果图我们可以看出,M 序列自相关函数近似于一条直线,它的互相关特性看起来没有什么规律;Gold 序列的自相关特性与m 序列相比,要差一点,但互相关特性要比m 序列好一些;OVSF 序列的自相关特性曲线为一条幅值为1 的直线,互相关特性为一条幅值为0的直线。
五、总结与体会
通过这次实验,我知道了m 序列、Gold 序列、OVSF 序列的产生方法,知道了如何去求它们的自相关特性和互相关特性;而且通过这次实验,我也认识到了自己在MATLAB 编程这方面还比较薄弱,应该在以后的学习生活中,不断提高自己的编程能力。
六、主要仿真代码
mseq函数:
function [mout]=mseq(stg,taps,inidata)
mout=zeros(1,2^stg-1);
fpos=zeros(stg,1);
fpos(taps)=1;
for ii=1:2^stg-1
mout(1,ii)=inidata(stg);
num=mod(inidata*fpos,2);
inidata(2:stg)=inidata(1:stg-1);
inidata(1)=num;
end
goldseq函数:
function [gout]=goldseq(m1, m2, n)
if nargin<3
n=1;
end
gout=zeros(n,length(m1));
for ii=1:n
gout(ii,:)=xor(m1,m2);
m2=shift(m2,1);
end
OVSF函数:
function y=OVSF(SF)
y=zeros(SF,SF);
if SF==1
y=1;
else
y=[OVSF(SF/2) OVSF(SF/2);OVSF(SF/2) -OVSF(SF/2)]; end
shift函数:
function [outregi]=shift(inregi,shiftr)
[h, v]=size(inregi);
outregi=inregi;
shiftr=rem(shiftr,v);
if shiftr>0
outregi(:,1:shiftr)=inregi(:,v-shiftr+1:v);
outregi(:,1+shiftr:v)=inregi(:,1:v-shiftr);
elseif shiftr<0
outregi(:,1:v+shiftr)=inregi(:,1-shiftr:v);
outregi(:,v+shiftr+1:v)=inregi(:,1:-shiftr);
end
自相关函数:
function [out]=autocorr(indata)
ln=length(indata);
out=zeros(1,ln);
for ii=0:ln-1
out(ii+1)=sum(indata.*shift(indata,ii))/ln;
end
互相关函数:
function [out]=crosscorr(indata1, indata2)
ln=length(indata1);
out=zeros(1,ln);
for ii=0:ln-1
out(ii+1)=sum(indata1.*shift(indata2,ii))/ln;
end
主函数:
clear all;
clc
stage=3;
ptap1=[1 3];
ptap2=[2 3];
regi1=[1 1 1];
regi2=[1 1 1];
m_code_1=mseq(stage,ptap1,regi1);
m_code_2=mseq(stage,ptap2,regi2);
m_code1=2*m_code_1-1;
m_code2=2*m_code_2-1;
rho1=autocorr(m_code1);
R1=crosscorr(m_code1,m_code2);
x1=0:length(rho1)-1;
subplot(3,2,1);
plot(x1,rho1);xlabel('偏移量');ylabel('m序列的自相关性'); subplot(3,2,2);
plot(x1,R1);xlabel('偏移量');ylabel('m序列的互相关性');
gold_code_1=goldseq(m_code_1,m_code_2,2);
gold_code=2*gold_code_1-1;
rho2=autocorr(gold_code(1,:));
R2=crosscorr(gold_code(1,:),gold_code(2,:));
x2=0:length(rho2)-1;
subplot(3,2,3);
plot(x2,rho2);xlabel('偏移量');ylabel('gold序列的自相关性'); subplot(3,2,4);
plot(x2,R2);xlabel('偏移量');ylabel('gold序列的互相关性'); ovsf=OVSF(4);
rho3=autocorr(ovsf(1,:));
R3=crosscorr(ovsf(1,:),ovsf(2,:));
x3=0:length(rho3)-1;
subplot(3,2,5);
plot(x3,rho3);xlabel('偏移量');ylabel('OVSF序列的自相关性'); subplot(3,2,6);
plot(x3,R3);xlabel('偏移量');ylabel('OVSF序列的互相关性');。