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

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

噪声的干扰。

(8)、数字滤波器是将调制并加有噪声的信号,去除噪声,并

且解调后形成方波形式的信号。

(9)、抽样判决是将方波形号转换成0、1比特流。 (10)、信道译码是信道编码的反过程。 (11)、信源译码是信道编曲码的反过程。 (12)、最后还原成模拟信号。

六、详细设计与编码

1. 设计方案 (可以画出编程的流程图,阐述设计思路等)

经过我的思考,再加上查阅了大量资料后,有了以下编程设计思路。

主函数 产生模拟信源并得到抽样信号 通过13拆线得到转换后的值 通过编码子函数进行量化和编码 BPSK子函数 通过A侓公式反转成原始模拟信号 线性分组码编码 数字调制 数字滤波器 抽样判决 信道译码 在主函数中,先产生一个模拟信号,再经过抽样后得到抽样值,将抽样值通过13拆线法转换成对应值,将转换后的值

经过量化和编码后得到0、1比特流,再经过信道译码,再经过BPSK调制,再人为加入一些噪声,再通过数字滤波器将噪声和载波滤掉,取出直流分量,得到方波波形。再经过抽样判决后得到0、1比特流,再经过线性分组码译码,最后经过信源译码,再经过A侓公式反转成原始模拟信号,画出各阶段的波

形。

2. 编程工具的选择(本次仿真使用的工具软件,阐述为什么使用该软件,该软件的特点)

我这次选用的软件是MATLAB,因为这款软件的功能特很强大,学习方便,仿真容易实现。

MATLAB具有以下几个特点: 功能强大的数值运算功能 强大的图形处理能力 高级但简单的程序环境 丰富的工具箱

最重要的是MATLAB学习起来方便容易,以前有学C语言的基础,MATLAB与C语言有类似之处,编程流程大概差不多,但要注意的是MATLAB与C语言在程序代码上也有细微的差别,MATLAB是一种解释性语言,在写程序代码时容易方便,但是与C语言相比它的运算速度较慢,但功能强大。

3. 编码与测试 (写出源代码,分析核心代码完成的功能) 编程序代码过程:

子函数1:

function y1=zhexian(x) x=x/max(x); z=sign(x); x=abs(x); for i=1:length(x)

if((x(i)>0)&(x(i)<1/64)) y(i)=16*x(i);

else if((x(i)>=1/64)&(x(i)<1/32)) y(i)=x(i)*8+1/8;

else if((x(i)>=1/32)&(x(i)<1/16)) y(i)=4*x(i)+2/8;

else if((x(i)>=1/16)&(x(i)<1/8)) y(i)=2*x(i)+3/8;

else if((x(i)>=1/8)&(x(i)<1/4)) y(i)=x(i)+1/2;

else if((x(i)>=1/4)&(x(i)<1/2)) y(i)=1/2*x(i)+5/8; else if((x(i)>=1/2)&(x(i)<=1)) y(i)=1/4*x(i)+3/4; end; end; end; end; end; end; end; end; y1=z.*y; end

此子函数的功能是将抽样后得到的值用13拆线转换成对应的值。

子函数2:

function bit=bianma(y4,n) m=2/n; for i=1:n+1

q(i)=min(y4)+(i-1)*m; end

%量化过程 t=length(q);

ttt=[]; %存放将抽样信号量化后的值 tt=[]; e=1; tt(1)=-1; for x=2:length(q)

tt(x)=(q(x-1)+q(x))/2; %存放第几个电平段的电平值 end

tt=[tt,max(y4)];

b_duan=[]; %存放电平段 for x=1:length(y4) if y4(x)==q(t)

b_duan(x)=length(tt); else

if y4(x)==min(q) b_duan(x)=1; else

for y=1:t-1

if (q(y)<=y4(x))&& (y4(x)

联系合同范文客服:xxxxx#qq.com(#替换为@)