通信系统模型_第1页
通信系统模型_第2页
通信系统模型_第3页
通信系统模型_第4页
通信系统模型_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、通信系统模型信源信号源函数Signal Sourcesranderr - Generate bit error patterns.randint - Generate matrix of uniformly distributed random integers.randsrc - Generate random matrix using prescribed alphabet.seqgen.pn - Generate pseudorandom noise sequences (See also: SEQGEN objects). wgn- Generate white Gaussian no

2、ise.以 randsrc (1,10,0 1;0.5 0.5)为例产生1*10的0、1矩阵,0、1出现的概率均为 0.5;此外Matlab产生随机数:randrand(n):生成0到1之间的n阶随机数方阵rand(m,n):生成0到1之间的mxn的随机数矩阵randnrandn ()命令是产生白噪声的,白噪声应该是0均值,方差为1的一组数;同 rand 有 randn(n), randn(m,n)rand是0-1的均匀分布,randn是均值为0方差为1的正态分布randintrandint(m,n,1 N):生成 mXn的在1到N之间的随机整数矩阵,其效果与 randint(m,n,N+1)

3、 相同。Matlab随机数生成函数: betarnd 贝塔分布的随机数生成器binornd 二项分布的随机数生成器chi2rnd 卡方分布的随机数生成器exprnd 指数分布的随机数生成器frnd f 分布的随机数生成器gamrnd 伽玛分布的随机数生成器geornd 几何分布的随机数生成器hygernd 超几何分布的随机数生成器lognrnd 对数正态分布的随机数生成器nbinrnd 负二项分布的随机数生成器ncfrnd 非中心f 分布的随机数生成器nctrnd 非中心t 分布的随机数生成器ncx2rnd 非中心卡方分布的随机数生成器normrnd 正态(高斯)分布的随机数生成器poissr

4、nd 泊松分布的随机数生成器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) : 四舍五入取整

5、 round(3.12 -3.12)ans =0 round(3.12 -3.12)ans =3-3信源编译码信源编码函数(效果:提高有效性、降低可靠性,信道编码相反)Source Codingarithdeco - Decode binary code using arithmetic decoding.arithenco - Encode a sequence of symbols using arithmetic pand - Source code mu-law or A-law compressor or expander.dpcmdeco- Decode usi

6、ng differential pulse code modulation.dpcmenco- Encode using differential pulse code modulation.dpcmopt - Optimize differential pulse code modulation parameters.Huffmandeco - Huffman decoder.huffmandict - Generate Huffman code dictionary for a source with known probability model.huffmanenco - Huffma

7、n encoder.lloyds- Optimize quantization parameters using the Lloyd algorithm.quantiz- Produce a quantization index and a quantized output value.以霍夫曼编码为例:letters = 1:6; % Distinct symbols the data source can producep = .5 .125 .125 .125 .0625 .0625; % Probability distributiondict,avglen = huffmandict

8、(letters,p); % Get Huffman code.sig = randsrc(1,20,letters; p) % Create data using p = huffmanenco(sig,dict) % Encode the data.deco = huffmandeco(comp,dict) % Decode the encoded signal.equal = isequal(sig,deco) % Check whether the decoding is correct.调制解调Digital Modulation/Demodulation (数字调制/解调

9、函数)dpskmod - Differential phase shift keying modulation. dpskdemod - Differential phase shift keying demodulation. fskmod - Frequency shift keying modulation.fskdemod - Frequency shift keying demodulation. genqammod - General quadrature amplitude modulation. genqamdemod - General quadrature amplitud

10、e demodulation. modnorm - Scaling factor for normalizing modulation output. mskmod - Minimum shift keying modulation.mskdemod - Minimum shift keying demodulation.oqpskmod - Offset quadrature phase shift keying modulation. oqpskdemod - Offset quadrature phase shift keying demodulation pammod - Pulse

11、amplitude modulation.pamdemod - Pulse amplitude demodulation.pskmod - Phase shift keying modulation.pskdemod - Phase shift keying demodulation.qammod - Quadrature amplitude modulation.qamdemod - Quadrature amplitude demodulation.以 BPSK 为例:x=0 1 0 1 1 0 1 1;scatterplot(pskmod(x,2,0); %Bpsk 调制并画星座图,初始

12、相位为 0pskdemod(pskmod(x,2,0),2); %解调s=(x*2-1);%BPSKM制c=(s0);%BPSK 解调以 QPSK 为例:functionModulateSignal=QPSKModulate(SignalData)data=SignalData;for jdata=1:size(data,1)m=1;for idata=1:size(data,2)/2%QPSK modulationpacket(1:2)=data(jdata,2*idata-1),data(jdata,2*idata);if packet=0,0symbol(jdata,m)=i;elsei

13、f packet=0,1symbol(jdata,m)=1;elseifpacket=1,0symbol(jdata,m)=-1;elseifpacket=1,1symbol(jdata,m)=-i;endm=m+1;end ;endModulateSignal=symbol;信道编译码卷积码及维特比译码状态输入比椅*输出序列X(2,1,3)卷积码G(D) = 1 +。+加= 6 = (111) = (7为/(/) = 1+= 以=(101) = (5为functionConvolutionalCode,Trellis=ConvolutionalEncoding(SourceCode)%, %

14、肱函数实现(2,1,3)卷积编码%曝中SourceCode为要编码的原始序列%ConvolutionalCode为编好的码字%Trellis 为网格表示% zjm% Version 1.00% 2010-11-25%,%第一个参数为约束长度。第二个参数为输入说出关系Trellis=poly2trellis(3,75);%(2,1,3)卷积码的网格表示,g1=11 1;g2=101;%卷积编码ConvolutionalCode=convenc(SourceCode,Trellis); function DecodedCode=ConvolutionalDecoding(EncodedCode)%

15、 %该函数实现(2,1,3) 卷积译码%其中EncodedCode 为要译码的序列%DecodedCode 为译好的码字 % zjm % Version 1.00 % 2010-11-25% %Trellis=poly2trellis(3,7 5);%(2,1,3) 卷积码网格表示DecodedCode=vitdec(EncodedCode,Trellis,3,trunc , hard ); %维特比译码,硬判决 分组码: x=encode(1 0 1 1,7,4,hamming); y=decode(x,7,4,hamming);信道瑞利(莱斯)衰落信道复数信号:瑞利衰落信道( Raylei

16、gh fading channel )是一种无线电信号传播环境的统计模型。这种模型假设信号通过无线信道之后,其信号幅度是随机的,即 “衰落 ” ,并且其包络服从瑞利分布。在无线通信信道环境中,电磁波经过反射折射散射等多条路径传播到达接收机后, 总信号的强度服从瑞利分布。 同时由于接收机的移动及其他原因, 信号强度和相位等特性又在起 伏变化, 故称为瑞利衰落。两个正交高斯噪声信号之和的包络服从瑞利分布。单输入单输出系统Rayleigh 衰落信道可以建模为: y=hx+n; 其中 h=(randn+jrandn)/sqrt(2);h=(randn(1,10)+i*randn(1,10)/sqrt(

17、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 随

18、机变量的能量比K = 直射分量能量/rayleigh 能量根据信道归一化要求E|hF2 = 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

19、 = 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 =

20、 wgn(,POWERTYPE)指定 p 的单位。POWERTYPE 可以是dBW1, dBm或linear。线性 强度 (linear power) 以瓦特 (Watt) 为单位。y = wgn(,OUTPUTTYPE)指定输出类型。 OUTPUTTYPE 可以是real或complex。To generate a 1-by-10 vector of complex noise with power of 3 Watts across a 75 Ohm load, use:Y = WGN(1, 10, 3, 75, linear, complex);2. AWGN :在某一信号中加入高斯白噪

21、声y = awgn(x,SNR) 在信号 x 中加入高斯白噪声。信噪比 SNR 以 dB 为单位。 x 的强度假定为 0dBW。如果x是复数,就加入复噪声。y = awgn(x,SNR,SIGPOWER) 如果 SIGPOWER 是数值,则其代表以 dBW 为单位的信号强度;如果SIGPOWER为measured;则函数将在加入噪声之前测定信号强度。y = awgn(x,SNR,SIGPOWER,STA TE) 重置 RANDN 的状态。y = awgn(,POWERTYPE)指定 SNR 和 SIGPOWER 的单位。POWERTYPE 可以是dB或 linear。如果POWERTYPE是d

22、B,那么SNR以dB为单位,而SIGPOWER 以dBW 为单位。 如果POWERTYPE是linear,那么SNR作为比值来度量,而 SIGPOWER以瓦特为单位。To cause AWGN to measure the power of X, set RANDN to the 1234th state and add noise to produce a linear SNR of 4, use:X = sqrt(2)*sin(0:pi/8:6*pi);Y = AWGN(X,4,measured,1234,linear);注释1. 分贝 (decibel,dB) :分贝( dB )是表示相

23、对功率或幅度电平的标准单位,换句话说,就是我们用来表示两个能量之间的差别的一种表示单位, 它不是一个绝对单位。 例如, 电子系统中将电压、 电流、功率等物理量的强弱通称为电平,电平的单位通常就以分贝表示,即事先取一个电压或电流作为参考值(0dB) ,用待表示的量与参考值之比取对数,再乘以 20作为电平的分贝数(功率的电平值改乘10 ) 。2. 分贝瓦 (dBW, dB Watt) :指以 1W 的输出功率为基准时,用分贝来测量的功率放大器的功 率值。3. dBm (dB-milliWatt) :即与 1milliWatt (毫瓦)作比较得出的数字。0 dBm = 1 mW10 dBm = 10

24、 mW20 dBm = 100 mW也可直接用 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

25、) )事实上,无论是wgn 还是 awgn 函数,实质都是由 randn 函数产生的噪声。即, wgn 函数中调用了 randn 函数,而 awgn 函数中调用了 wgn 函数。下面就我熟悉的 “向已知信号添加某个信噪比(SNR)的高斯白噪声”来说明一下,不过如果大家阅读过 awgn的实现代码就不 用看下去了,呵呵。从上述可知,这个任务可以使用 awgn 函数实现,具体命令是:awgn(x,snr, measured Jintao作用是对原信号f(x)添加信噪比(比值)为 SNR的噪声,在添加之前先估计信号f 的强度。这里涉及三个问题:在awgn 这个函数中, SNR 是如何计算的?什么是信号

26、的强度? awgn 函数具体是如何添加噪声的?事实上,前两个问题是相关的,因为根据定义, SNR 就是信号的强度除以噪声的强度,所以,首先来讲讲信号的强度。其实信号的强度指的就是信号的能量,在连续的情形就是对f(x) 平方后求积分,而在离散的情形自然是求和代替积分了。在matlab 中也是这样实现的,只不过多了一个规范化步骤罢了:sigPower = sum(abs(sig(:).A2)/length(sig(:)这就是信号的强度。至此, SNR 的具体实现也不用多说了(注:由于采用的是比值而非db,所以与下面 “计算信噪比”所使用的方式不同,即没有求对数步骤) 。最后说说 awgn 函数具体

27、是如何添加噪声的。事实上也很简单,在求出 f 的强度后,结合指定的信噪比,就可以求出需要添加的噪声的强度noisePower=sigPower/SNR 。由于使用的是高斯白噪声即 randn 函数,而randn 的结果是一个强度为 1 的随机序列(自己试试sum(randn(1000,1).A2)/1000 就知道了,注意信号的长度不能太小) 。于是,所要添加的噪声信号显然就是:sqrt(noisePower)*randn(n,1),其中n为信号长度。误码率计算%This programme shows how to caculate the BER%author:zjm%date:2011.

28、3.17%txData is transmit data which is a 1*1000 matrix with 0,1 randomly%rxData is receive data which is a 1*1000 matrix with 0,1 ralated withtxData%BER is the bit error rate%SNR=10;clear;clc;dataLength=100000;maxSNR=20;for SNR=1:maxSNRtxData=round(rand(1,dataLength);rxData=round(awgn(txData,SNR);err

29、orNo=sum(xor(txData,rxData);BER(SNR)=errorNo/dataLength;endsemilogy(1:maxSNR,BER, r-*);1、信源及卷积编译码附件1卷积2、假定某系统采用了跳频和简单编码(7,4)汉明码,该码的生成矩阵为:1 0 0 0 1 1 00 10 0 10 1 G =0010011J0000111_采用BPSK调制,试计算存在跳频和不存在跳频时的误码率。一个交织器将每个符号映射到交替变化的频率上(有 7个可用频率)。每个频率上都存在彼此独立的瑞利衰落。假设接收 机采用硬判决译码。使用matlab画出误码率作为平均 SNR函数的曲线。010,1ut FH ;TVViLhoiFHr Fr1一Fj.1 a-2108910o1REB-310 01234567SNR(dB)修改程序如下:%-chap.18,prob2 clear all ;N=100000; %Transmit N symbols at each SNRBF_length=7; %assuming block fading with correlation time of 7 symbolsfor iSNR=1:11snr(iSNR尸iSN

温馨提示

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

评论

0/150

提交评论