APP下载

基于MATLAB的通信系统仿真

2014-08-12黄家彬

科技视界 2014年19期
关键词:系统仿真

黄家彬

【摘 要】本文主要尝试通过Matlab编程实现通信系统仿真。

【关键词】系统仿真;差分脉冲编码;huffman编码;汉明码;DPSK;Matlab编程

1 仿真设计

以30Hz和17Hz的正弦信号的叠加信号作为信号源。然后采用90Hz速率对这个信号持续1秒进行抽样,得到的是间隔为0.011s的离散抽样值。再进行32级(4bit)、1阶DPCM差分脉冲量化编码。对DPCM编码的数据流进行哈夫曼(huffman)编码压缩再汉明编码。随后进行调制,在发送端对码流进行DPSK数字键控调制,采用的载波是100kHz的正弦波,然后送上信道进行传输。信道是最常见的高斯加性白噪声信道,信号传输过程中受到高斯噪声的干扰,信噪比为20dB。在接收端对接收到的信号进行解调、汉明码解码,最后解DPCM信号并恢复所发送的信号。

本例只是就如何通过Matlab的编程实现整个系统的仿真,系统中的参数选取在现实应用中的意义不作考究。

2 仿真实现

Matlab代码如下:

Dt=0.0001;t=0:Dt:1;f1=30; f2=17;fs=90;n=7;k=4;m=2;snr=20;Fc

10000;Fd=5600;Fs=56000;unham=[];

source=sin(2*pi*f1*t)+sin(2*pi*f2*t)

sam=sampling(source,Dt,fs);len=2^4; ord=1;

[predictor,codebook,partition]=dpcmopt(sam,ord,len);

dpcm=dpcmenco(sam,codebook,partition,predictor);

[huff,htable]=huffman(dpcm,len);[ham,add]=encode(huff,7,4,'hamming');

dpsk=dmod(difcode(ham),Fc,Fd,Fs,'psk',m);gdpsk=awgn(dpsk,snr);

undpsk=undifcode(ddemod(gdpsk,Fc,Fd,Fs,'psk',m));

[unham_t,b1,b2,cerr]=decode(undpsk,n,k,'hamming');

for temp=1:length(unham_t)-add

unham(temp)=unham_t(temp);end

unhuff=dehuffman(unham,htable,len);

undpcm=dpcmdeco(unhuff,codebook,predictor);

unsam=unsampling(undpcm,t,Dt,fs);

3 数据分析

源信号与还原信号比较图(图1)如下:

图1

可以定义:D = 源信号的均方值 — 还原信号的均方值 为这两个信号的差异参数。

在代码末尾加上

D= (sum(source.^2-unsam.^2))/length(source)

Err= sum(cerr)

D值越大本系统对源信号的还原就越差,Err是差错控制纠正误码的数量,正常情况下Err为0表示没有误码。改变仿真代码中的snr变量的值即可改变仿真系统的信道信噪比,在不同信道信噪比之下,D和Err的变化结果如下(表1):

表1

上面仅为某几次试验的值,当不断重复运行仿真代码时即发现:信噪比大于5dB时,D和Err的值都分别衡定在0.0121和0,由此推断信道信噪比大于5dB时,还原信号的误差主要是由系统的抽样、量化和还原的环节造成的。……

登录APP查看全文

猜你喜欢

系统仿真
相控阵雷达系统仿真模型研究
基于Flexsim的集装箱码头物流作业系统建模与仿真
油气储运专业仿真系统的开发和应用
基于前馈补偿的直升机控制律设计与仿真
基于计算机系统仿真的电力机车模拟驾驶装置研究
苗圃大棚自动灌溉控制系统的设计
大滞后系统中单神经元PID控制器设计
双馈感应发电机不脱网运行的系统仿真
小型民用风力发电系统最大功率跟踪策略研究
基于AMESim的安溢活门系统动力学仿真