通信系统建模与仿真

1.信源产生函数

randerr函数:产生误比特图样;

randint函数:产生均匀分布的随机整数矩阵;

randsrc函数:根据给定的数字表产生一个随机符号矩阵,矩阵包含的元素是数据符号,相互独立;

wgn函数:该函数用于产生高斯白噪声,通过wgn函数可以产生实数形式或复数形式的噪声。

2.信源编码/解码函数

2.1 arithenco/arithdeco函数

arithenco函数用于实现算术二进制编码,arithdeco函数用于算术二进制解码

>> counts = [99 1];
>> len = 1000;
>> seq =randsrc(1,len,[1 2;.99 .01]);
>> code = arithenco(seq,counts);          %编码
>> dseq = arithdeco(code,counts,length(seq));
>> isequal(seq,dseq)

2.2 dpcmenco/dpcmdeco函数

dpcmenco函数用于实现差分调制编码,dpcmdeco函数用于实现差分调制解码

index = dpcmenco(sig,codebook,partition,predictor):参数sig为输入信号,codebook为预测误差量化码本,partition为量化阈值,predictor为预测期的预测传递函数系数向量,返回参数index为量化序号。

下面是一个用训练数据优化DPCM方法,对锯齿波信号数据进行预测量化。

>> t=[0:pi/60:2*pi];
>> x=sawtooth(3*t);         %原始信号
>> initcodebook = [-1:.1:1];  %初始化高斯噪声
>> %优化参数,使用初始序列initcodebook
>> [predictor,codebook,partition]=dpcmopt(x,1,initcodebook);
>> %使用DPCM量化x
>> encodedx=dpcmenco(x,codebook,partition,predictor);
>> %尝试从调制信号中恢复x
>> [decodedx,equant] = dpcmdeco(encodedx,codebook,predictor);
>> distor = sum((x - decodedx).^2)/length(x)    %均方误差

distor =

   8.1282e-04

>> plot(t,x,t,equant,'*');

2.3 compand函数

这个函数会按照Mu律或A律对输入信号进行扩展或压缩。

Mu-Law(μ律)由于希腊语中的字母 μ发音为myoo,因此Mu-Law这个术语是来源于μ-Law;另外,由于发音上的一致,该术语有时候被书写为u-Law。目前,Mu-Law被美国和日本采用,而欧洲和其他地方则采用另外一种多媒体数字信号编、解码器(压缩/解压缩)运算法则,A-Law(A律)。

所谓量化就是把抽样信号的幅度离散化的过程。根据量化过程中量化器的输入与输出的关系 ,可以有均匀量化和非均匀量化两种方式。均匀量化时 ,由于对编码范围内小信号或大信号都采用等量化级进行量化 ,因此小信号的“信号与量化噪声比”小 ,而大信号的“信号与量化噪声比”大 ,这对小信号来说是不利的。为了提高小信号的信噪比 ,可以将量化级再细分些 ,这时大信号的信噪比也同样提高 ,但这样做的结果使数码率也随之提高 ,将要求用频带更宽的信道来传输。采用压缩的量化特性是改善小信号信噪比的一种有效方法。它的基本思想是在均匀量化前先让信号经过一次处理 ,对大信号进行压缩而对小信号进行较大的放大。由于小信号的幅度得到较大的放大 ,从而使小信号的信噪比大为改善。这一处理过程通常简称为“压缩量化” ,它是用压缩器来完成的。压缩量化的实质是“压大补小” ,使小信号在整个动态范围内的信噪比基本一致。在系统中与压缩器对应的有扩张器 ,二者的特性恰好相反。目前常用的压扩方法是对数型的 A律压缩和 μ律压缩 ,其中 μ律压缩公式为

y=ln(1+μx)/ln(1+μ)

其中 x 为归一化的量化器输入 , y 为归一化的量化器输出。常数 μ愈大 ,则小信号的压扩效益愈高 ,目前多采用 μ= 255。

A律是ITU-T(国际电联电信标准局)CCITT G.712定义的关于脉冲编码的一种压缩/解压缩算法。 世界上大部分国家采用A律压缩算法。A律是PCM非均匀量化中的一种对数压扩形式,脉冲编码调制PCM是对一个时间连续的模拟信号先抽样,再对样值幅度量化,编码的过程其中量化,就是把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示,通常是用二进制表示。而量化中会出现误差,即量化后的信号和抽样信号的差值,量化误差在接收端表现为噪声,称为量化噪声。 量化级数越多误差越小,相应的二进制码位数越多,要求传输速率越高,频带越宽。 为使量化噪声尽可能小而所需码位数又不太多,通常采用非均匀量化的方法进行量化。非均匀量化根据幅度的不同区间来确定量化间隔,幅度小的区间量化间隔取得小,幅度大的区间量化间隔取得大。

令量化器过载电压为1,相当于把输入信号进行归一化,那么A律对数压缩定义为:

当0 <= x <= 1/A时,f(x)=(Ax)/(1+lnA)

当1/A <= x <= 1时,f(x)=(1+lnAx)/(1+lnA)

在现行的国际标准中A=87.6,此时信号很小时(即小信号时),从上式可以看到信号被放大了16倍,这相当于与A压缩率与无压缩特性比较,对于小信号的情况,量化间隔比均匀量化时减小了16倍,因此,量化误差大大降低;而对于大信号的情况例如x=1,量化间隔比均匀量化时增大了5.47倍,量化误差增大了。这样实际上就实现了“压大补小”的效果。

上面只讨论了x>0的范围,实际上x和y均在[-1,1] 之间变化,因此,x和y的对应关系曲线是在第一象限与第三象限奇对称。为了简便,x<0的关系表达式未进行描述,但对上式进行简单的修改就能得到。按上式得到的A律压扩特性是连续曲线,A的取值不同其压扩特性亦不相同,而在电路上实现这样的函数规律是相当复杂的。为此,人们提出了数字压扩技术,其基本思想是这样的:利用大量数字电路形成若干根折线,并用这些折线来近似对数的压扩特性,从而达到压扩的目的。为了便于采用数字电路实现量化,通常采用13折线近似代替A律。

2.4 lloyds函数

优化标量量化的阈值和码本。

通过一个2位通道优化正弦传输量化函数

>> x = sin([0:1000]*pi/500);
>> [partition,codebook,distor,reldistor]=lloyds(x,2^2)

2.5 quantiz函数

用于产生一个量化序号和输出量化值

用训练序列和lloyd算法,对一个正弦信号数据进行标量量化。

>> N =2^4;    %以4位传输信道
>> t=[0:100]*pi/20;
>> u=sin(t);
>> [p,c]=lloyds(u,N);
>> [index,quant,distor]=quantiz(u,p,c);
>> plot(t,u,t,quant,'+');

3.信道函数

3.1 awgn函数

对输入的锯齿波进行高斯白噪声叠加

>> t=0:.1:10;
>> x=sawtooth(t);
>> y=awgn(x,10,'measured');
>> plot(t,x,t,y)
>> legend('原始信号','叠加高斯白噪声信号');

参考文献

[1].吴茂. MATLAB R2016a 通信系统建模与仿真 28 个案例分析[M]. 清华大学出版社 (崧博), 2018.

  • 15
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值