基于MATLAB的通信系统仿真—PCM系统仿真通信原理课程设计 联系客服

发布时间 : 星期四 文章基于MATLAB的通信系统仿真—PCM系统仿真通信原理课程设计更新完毕开始阅读929701d748fe04a1b0717fd5360cba1aa9118c46

tt(x)=(q(x-1)+q(x))/2; %存放第几个电平段的电平值 end tt=[tt,1]; nu=ceil(log2(n)); decode=[];

for i=1:length(y)/(nu+1)

decode(i,[1:(nu+1)])=y((i-1)*(nu+1) + 1 : i*(nu+1)); end

ab=[] ; % 存放的十进制数,到tt中去找对应值

[w,z]=size(decode); for j=1:w L=nu; value=0; for i=0:L

value=decode(j,i+1)*(2^(L-i))+ value; end

ab(j)=value; end decode; w;

a3=[] ; % 存放信源译码值

for i=1:w a3(i)=tt(ab(i)); end

此函数的功能是将接收到的0、1比特流分为八位二进制一组一组的,再将每八位二进制转换为十进制数,再到每段中去寻到与发关端有相同约定段号值。即可恢复原信号的量化值。

子函数6:

function y5=Ayi(y,A) for i=1:length(y)

if((abs(y(i))>=0)&(abs(y(i))<=(1/(1+log(A))))) y1(i)=y(i)*(1+log(A))/A;

else if((abs(y(i))<=1)&(abs(y(i))>(1/(1+log(A))))) y1(i)=(1/A)*sign(y(i))*exp(abs(y(i))*(1+log(A))-1); end end end y5=y1; end

此函数的功能是将恢复的量化值通过A律反转换公式得到对应的值,是用13拆线转换的反过程。因为在当A=86.5时,可以用13折线用13条折线近似A律的平滑曲线,在实际工程中A律的平滑曲线不易实现,而用13折线法可以降低工程实现中的难度。

主函数:

clc clear all t=0:0.1:6*pi;

a1=sin(t); %模拟信源 figure(1) plot(t,a1);

title ( '原始模拟信号' );

t1=0:2*pi/32:6*pi; %抽样 a=sin(t1); figure plot(t1,a); stem(t1,a);

title ( '抽样信号' );

y4=zhexian(a) ; 折线 n=256; %量化电平数; bitstream=bianma(y4,n); bit1=BPSK(bitstream); y2=yima(bit1,n); y5=Ayi(y2,87.65); figure plot(y5);

stem(y5,'r')

axis([0,100,-1,1.01]) figure plot(y5,'r'); hold on plot(y5,'.b'); axis([0,100,-1,1.01])

主函数的功能是是产生模拟信号并且进行抽样得到抽样值,然后将各个子函数衔接到一块,形成一个比较完整的通信系统,进行仿真画出各个阶段重要的图形,以便观察和分析。

调试过程:

将各个子程序和主程序都放入MATLAB的工作空间中,双击main.m文件后,

点击Debug Run 运行程序。

在 这次通信系统仿真编程中,我遇到了很多问题,例如在利用13折线进