通信系统模型.docx

上传人:b****6 文档编号:16266781 上传时间:2023-07-12 格式:DOCX 页数:17 大小:355.71KB
下载 相关 举报
通信系统模型.docx_第1页
第1页 / 共17页
通信系统模型.docx_第2页
第2页 / 共17页
通信系统模型.docx_第3页
第3页 / 共17页
通信系统模型.docx_第4页
第4页 / 共17页
通信系统模型.docx_第5页
第5页 / 共17页
通信系统模型.docx_第6页
第6页 / 共17页
通信系统模型.docx_第7页
第7页 / 共17页
通信系统模型.docx_第8页
第8页 / 共17页
通信系统模型.docx_第9页
第9页 / 共17页
通信系统模型.docx_第10页
第10页 / 共17页
通信系统模型.docx_第11页
第11页 / 共17页
通信系统模型.docx_第12页
第12页 / 共17页
通信系统模型.docx_第13页
第13页 / 共17页
通信系统模型.docx_第14页
第14页 / 共17页
通信系统模型.docx_第15页
第15页 / 共17页
通信系统模型.docx_第16页
第16页 / 共17页
通信系统模型.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

通信系统模型.docx

《通信系统模型.docx》由会员分享,可在线阅读,更多相关《通信系统模型.docx(17页珍藏版)》请在冰点文库上搜索。

通信系统模型.docx

通信系统模型

通信系统模型

信源

信号源函数

SignalSources

randerr-Generatebiterrorpatterns.

randint-Generatematrixofuniformlydistributedrandomintegers.

randsrc-Generaterandommatrixusingprescribedalphabet.

seqgen.pn-Generatepseudorandomnoisesequences(Seealso:

SEQGENobjects).

wgn-GeneratewhiteGaussiannoise.

以randsrc(1,10,[01;0.50.5])为例

产生1*10的0、1矩阵,0、1出现的概率均为0.5;

此外Matlab产生随机数:

rand

rand(n):

生成0到1之间的n阶随机数方阵

rand(m,n):

生成0到1之间的m×n的随机数矩阵

randn

randn()命令是产生白噪声的,白噪声应该是0均值,方差为1的一组数;

同rand有randn(n),randn(m,n)

rand是0-1的均匀分布,randn是均值为0方差为1的正态分布

randint

randint(m,n,[1N]):

生成m×n的在1到N之间的随机整数矩阵,其效果与randint(m,n,N+1)相同。

Matlab随机数生成函数:

betarnd贝塔分布的随机数生成器   

binornd二项分布的随机数生成器   

chi2rnd卡方分布的随机数生成器   

exprnd指数分布的随机数生成器   

frndf分布的随机数生成器   

gamrnd伽玛分布的随机数生成器   

geornd几何分布的随机数生成器   

hygernd超几何分布的随机数生成器   

lognrnd对数正态分布的随机数生成器   

nbinrnd负二项分布的随机数生成器   

ncfrnd非中心f分布的随机数生成器  

nctrnd非中心t分布的随机数生成器   

ncx2rnd非中心卡方分布的随机数生成器   

normrnd正态(高斯)分布的随机数生成器   

poissrnd泊松分布的随机数生成器   

raylrnd瑞利分布的随机数生成器   

trnd学生氏t分布的随机数生成器   

unidrnd离散均匀分布的随机数生成器   

unifrnd连续均匀分布的随机数生成器   

weibrnd威布尔分布的随机数生成器

Matlab取整:

(1)fix(x):

截尾取整.

>>fix([3.12-3.12])

ans=

    3   -3

(2)floor(x):

不超过x的最大整数.(高斯取整)

>>floor([3.12-3.12])

ans=

    3   -4

(3)ceil(x):

大于x的最小整数

>>ceil([3.12-3.12])

ans=

    4   -3

(4)round(x):

四舍五入取整

>>round(3.12-3.12)

ans=

    0

>>round([3.12-3.12])

ans=

    3   -3

信源编译码

信源编码函数(效果:

提高有效性、降低可靠性,信道编码相反)

SourceCoding

arithdeco-Decodebinarycodeusingarithmeticdecoding.

arithenco-Encodeasequenceofsymbolsusingarithmeticcoding.

compand-Sourcecodemu-laworA-lawcompressororexpander.

dpcmdeco-Decodeusingdifferentialpulsecodemodulation.

dpcmenco-Encodeusingdifferentialpulsecodemodulation.

dpcmopt-Optimizedifferentialpulsecodemodulationparameters.

Huffmandeco-Huffmandecoder.

huffmandict-GenerateHuffmancodedictionaryforasourcewithknownprobabilitymodel.

huffmanenco-Huffmanencoder.

lloyds-OptimizequantizationparametersusingtheLloydalgorithm.

quantiz-Produceaquantizationindexandaquantizedoutputvalue.

以霍夫曼编码为例:

letters=[1:

6];%Distinctsymbolsthedatasourcecanproduce

p=[.5.125.125.125.0625.0625];%Probabilitydistribution

[dict,avglen]=huffmandict(letters,p);%GetHuffmancode.

sig=randsrc(1,20,[letters;p])%Createdatausingp.

comp=huffmanenco(sig,dict)%Encodethedata.

deco=huffmandeco(comp,dict)%Decodetheencodedsignal.

equal=isequal(sig,deco)%Checkwhetherthedecodingiscorrect.

调制解调

DigitalModulation/Demodulation(数字调制/解调函数)

dpskmod-Differentialphaseshiftkeyingmodulation.

dpskdemod-Differentialphaseshiftkeyingdemodulation.

fskmod-Frequencyshiftkeyingmodulation.

fskdemod-Frequencyshiftkeyingdemodulation.

genqammod-Generalquadratureamplitudemodulation.

genqamdemod-Generalquadratureamplitudedemodulation.

modnorm-Scalingfactorfornormalizingmodulationoutput.

mskmod-Minimumshiftkeyingmodulation.

mskdemod-Minimumshiftkeyingdemodulation.

oqpskmod-Offsetquadraturephaseshiftkeyingmodulation.

oqpskdemod-Offsetquadraturephaseshiftkeyingdemodulation

pammod-Pulseamplitudemodulation.

pamdemod-Pulseamplitudedemodulation.

pskmod-Phaseshiftkeyingmodulation.

pskdemod-Phaseshiftkeyingdemodulation.

qammod-Quadratureamplitudemodulation.

qamdemod-Quadratureamplitudedemodulation.

以BPSK为例:

x=[01011011];

scatterplot(pskmod(x,2,0));%Bpsk调制并画星座图,初始相位为0

pskdemod(pskmod(x,2,0),2);%解调

s=(x*2-1);%BPSK调制

c=(s>0);%BPSK解调

以QPSK为例:

functionModulateSignal=QPSKModulate(SignalData)

data=SignalData;

forjdata=1:

size(data,1)

m=1;

foridata=1:

size(data,2)/2%QPSKmodulation

packet(1:

2)=[data(jdata,2*idata-1),data(jdata,2*idata)];

ifpacket==[0,0]

symbol(jdata,m)=i;

elseifpacket==[0,1]

symbol(jdata,m)=1;

elseifpacket==[1,0]

symbol(jdata,m)=-1;

elseifpacket==[1,1]

symbol(jdata,m)=-i;

end

m=m+1;

end;

end

ModulateSignal=symbol;

 

信道编译码

卷积码及维特比译码

(2,1,3)卷积码

function[ConvolutionalCode,Trellis]=ConvolutionalEncoding(SourceCode)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%该函数实现(2,1,3)卷积编码

%%%%其中SourceCode为要编码的原始序列

%%%%ConvolutionalCode为编好的码字

%%%%Trellis为网格表示

%zjm

%Version1.00

%2010-11-25

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%第一个参数为约束长度。

第二个参数为输入说出关系

Trellis=poly2trellis(3,[75]);%(2,1,3)卷积码的网格表示,g1=[111];g2=[101];

ConvolutionalCode=convenc(SourceCode,Trellis);%卷积编码

 

functionDecodedCode=ConvolutionalDecoding(EncodedCode)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%该函数实现(2,1,3)卷积译码

%%%%其中EncodedCode为要译码的序列

%%%%DecodedCode为译好的码字

%zjm

%Version1.00

%2010-11-25

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Trellis=poly2trellis(3,[75]);%(2,1,3)卷积码网格表示

DecodedCode=vitdec(EncodedCode,Trellis,3,'trunc','hard');%维特比译码,硬判决

分组码:

>>x=encode([1011],7,4,'hamming');

>>y=decode(x,7,4,'hamming');

信道

瑞利(莱斯)衰落信道

复数信号:

瑞利衰落信道(Rayleighfadingchannel)是一种无线电信号传播环境的统计模型。

这种模型假设信号通过无线信道之后,其信号幅度是随机的,即“衰落”,并且其包络服从瑞利分布。

在无线通信信道环境中,电磁波经过反射折射散射等多条路径传播到达接收机后,总信号的强度服从瑞利分布。

同时由于接收机的移动及其他原因,信号强度和相位等特性又在起伏变化,故称为瑞利衰落。

两个正交高斯噪声信号之和的包络服从瑞利分布。

单输入单输出系统Rayleigh衰落信道可以建模为:

y=hx+n;其中h=(randn+jrandn)/sqrt

(2);

h=(randn(1,10)+i*randn(1,10))/sqrt

(2);

产生幅值均值为1,服从瑞利分布1*10的矩阵。

实数信号:

在matlab中rayleigh信道的随机数可以由random函数或者raylrnd产生,归一化之后为

h=raylrnd(1,1,10)/sqrt(pi/2);

h=random('rayl',1,1,10)/sqrt(pi/2);

产生均值为1,服从瑞利分布1*10的矩阵

瑞利分布是赖斯分布的特例

当发送端到接收端没有一条直射路径的信道是瑞利信道,有一条的是莱斯信道

Rice分布的随机变量h可以建模为

h=直射分量+  rayleigh随机变量

首先确定K因子,即直射分量(常数)与rayleigh随机变量的能量比

K=直射分量能量/rayleigh能量

根据信道归一化要求E{|h|^2}=1,h可以归一化为如下所示:

h=sqrt(K/(K+1))+sqrt(1/(K+1))*rayleigh随机变量。

根据上式产生信道增益即可。

h=rayleighchan(ts,fd,td,pd);

h=ricianchan(ts,fd,k);

其中ts是信道的采样周期,fd为多普勒频移、td为各径时延组成的矢量、pd为各径衰减组成的矢量;k是rician分布中的k因子。

通过上述命令和对应参数即可获得需要的rayleigh信道或rician信道,采用y=filter(h,x),即可将信道的影响加在输入的数据x上。

AWGN信道:

MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN。

WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。

1.WGN:

产生高斯白噪声

y=wgn(m,n,p)产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度。

y=wgn(m,n,p,imp)以欧姆(Ohm)为单位指定负载阻抗。

y=wgn(m,n,p,imp,state)重置RANDN的状态。

在数值变量后还可附加一些标志性参数:

y=wgn(…,POWERTYPE)指定p的单位。

POWERTYPE可以是'dBW','dBm'或'linear'。

线性强度(linearpower)以瓦特(Watt)为单位。

y=wgn(…,OUTPUTTYPE)指定输出类型。

OUTPUTTYPE可以是'real'或'complex'。

Togeneratea1-by-10vectorofcomplexnoisewithpowerof3Wattsacrossa75Ohmload,use:

Y=WGN(1,10,3,75,'linear','complex');

2.AWGN:

在某一信号中加入高斯白噪声

y=awgn(x,SNR)在信号x中加入高斯白噪声。

信噪比SNR以dB为单位。

x的强度假定为0dBW。

如果x是复数,就加入复噪声。

y=awgn(x,SNR,SIGPOWER)如果SIGPOWER是数值,则其代表以dBW为单位的信号强度;如果SIGPOWER为'measured',则函数将在加入噪声之前测定信号强度。

y=awgn(x,SNR,SIGPOWER,STATE)重置RANDN的状态。

y=awgn(…,POWERTYPE)指定SNR和SIGPOWER的单位。

POWERTYPE可以是'dB'或'linear'。

如果POWERTYPE是'dB',那么SNR以dB为单位,而SIGPOWER以dBW为单位。

如果POWERTYPE是'linear',那么SNR作为比值来度量,而SIGPOWER以瓦特为单位。

TocauseAWGNtomeasurethepowerofX,setRANDNtothe1234thstateandaddnoisetoproducealinearSNRof4,use:

X=sqrt

(2)*sin(0:

pi/8:

6*pi);

Y=AWGN(X,4,'measured',1234,'linear');

注释

1.分贝(decibel,dB):

分贝(dB)是表示相对功率或幅度电平的标准单位,换句话说,就是我们用来表示两个能量之间的差别的一种表示单位,它不是一个绝对单位。

例如,电子系统中将电压、电流、功率等物理量的强弱通称为电平,电平的单位通常就以分贝表示,即事先取一个电压或电流作为参考值(0dB),用待表示的量与参考值之比取对数,再乘以20作为电平的分贝数(功率的电平值改乘10)。

2.分贝瓦(dBW,dBWatt):

指以1W的输出功率为基准时,用分贝来测量的功率放大器的功率值。

3.dBm(dB-milliWatt):

即与1milliWatt(毫瓦)作比较得出的数字。

0dBm=1mW

10dBm=10mW

20dBm=100mW

也可直接用randn函数产生高斯分布序列,例如:

程序代码

y=randn(1,2500);

y=y-mean(y);%减去均值

y=y/std(y);%除以标准差

a=0.0128;%均值

b=sqrt(0.9596);%标准差

y=a+b*y;

%==========================zjmwolf==================================%

1)      rand产生的是[0,1]上的均匀分布的随机序列

2)      randn产生均值为0,方差为1的高斯随机序列,也就是白噪声序列;

%===================================================================%

也就是说,可以直接使用上面两个函数对原始信号添加噪声(例如y=x+rand(length(x),1)或者y=x+randn(length(x),1))

事实上,无论是wgn还是awgn函数,实质都是由randn函数产生的噪声。

即,wgn函数中调用了randn函数,而awgn函数中调用了wgn函数。

下面就我熟悉的“向已知信号添加某个信噪比(SNR)的高斯白噪声”来说明一下,不过如果大家阅读过awgn的实现代码就不用看下去了,呵呵。

从上述可知,这个任务可以使用awgn函数实现,具体命令是:

awgn(x,snr,’measured’,'linear’),命令的作用是对原信号f(x)添加信噪比(比值)为SNR的噪声,在添加之前先估计信号f的强度。

这里涉及三个问题:

在awgn这个函数中,SNR是如何计算的?

什么是信号的强度?

awgn函数具体是如何添加噪声的?

事实上,前两个问题是相关的,因为根据定义,SNR就是信号的强度除以噪声的强度,所以,首先来讲讲信号的强度。

其实信号的强度指的就是信号的能量,在连续的情形就是对f(x)平方后求积分,而在离散的情形自然是求和代替积分了。

在matlab中也是这样实现的,只不过多了一个规范化步骤罢了:

sigPower=sum(abs(sig(:

)).^2)/length(sig(:

))

这就是信号的强度。

至此,SNR的具体实现也不用多说了(注:

由于采用的是比值而非db,所以与下面“计算信噪比”所使用的方式不同,即没有求对数步骤)。

最后说说awgn函数具体是如何添加噪声的。

事实上也很简单,在求出f的强度后,结合指定的信噪比,就可以求出需要添加的噪声的强度noisePower=sigPower/SNR。

由于使用的是高斯白噪声即randn函数,而randn的结果是一个强度为1的随机序列(自己试试sum(randn(1000,1).^2)/1000就知道了,注意信号的长度不能太小)。

于是,所要添加的噪声信号显然就是:

sqrt(noisePower)*randn(n,1),其中n为信号长度。

误码率计算

%ThisprogrammeshowshowtocaculatetheBER

%author:

zjm

%date:

2011.3.17

%txDataistransmitdatawhichisa1*1000matrixwith0,1randomly

%rxDataisreceivedatawhichisa1*1000matrixwith0,1ralatedwithtxData

%BERisthebiterrorrate

%SNR=10;

clear;

clc;

dataLength=100000;

maxSNR=20;

forSNR=1:

maxSNR

txData=round(rand(1,dataLength));

rxData=round(awgn(txData,SNR));

errorNo=sum(xor(txData,rxData));

BER(SNR)=errorNo/dataLength;

end

semilogy(1:

maxSNR,BER,'r-*');

1、信源及卷积编译码

附件1卷积

2、假定某系统采用了跳频和简单编码(7,4)汉明码,该码的生成矩阵为:

采用BPSK调制,试计算存在跳频和不存在跳频时的误码率。

一个交织器将每个符号映射到交替变化的频率上(有7个可用频率)。

每个频率上都存在彼此独立的瑞利衰落。

假设接收机采用硬判决译码。

使用matlab画出误码率作为平均SNR函数的曲线。

修改程序如下:

%--chap.18,prob2----

clearall;

N=100000;%TransmitNsymbolsateachSNR

BF_length=7;%assumingblockfadingwithcorrelationtimeof7symbols

foriSNR=1:

11

snr(iSNR)=iSNR-1;%SNRindB

%--CodingandBPSKModulationN0/2=1forAWGN----

A=sqrt(2*(10^(snr(iSNR)/10)));

din=randint(1,N);%Source,originalsignalx

x=encode(di

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2