实验二:PCM系统仿真

更新时间:2023-10-14 07:41:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验二:PCM系统仿真

一、实验目的:

1、掌握脉冲编码调制原理;

2、理解量化级数、量化方法与量化信噪比的关系。 3、理解非均匀量化的优点。

二、实验内容:

1、对模拟信号进行抽样和均匀量化,改变量化级数和信号大小,根据MATLAB仿真获得量化误差和量化信噪比。(必做)

2、对模拟信号进行抽样、A律压缩量化,改变量化级数和信号大小,根据MATLAB仿真获得量化误差和量化信噪比。(选做)

3、对抽样值进行A律13折线编码。(选做)

三、实验步骤 1、均匀量化(必做)

1) 产生一个周期的正弦波x(t) = cos(2 * pi *t ),以1000Hz频率进行采样,并进行8级均匀量化,用plot函数在同一张图上绘出原信号和量化后的信号。(保存为图2-1)

2) 以32Hz的抽样频率对x(t)进行抽样,并进行8级均匀量化。绘出正弦波波形(用plot函数)、样值图,量化后的样值图、量化误差图(后三个用stem函数)。(保存为图2-2)

3) 以2000Hz对x(t)进行采样,改变量化级数,分别仿真得到编码位数为2~8位时的量化信噪比,绘出量化信噪比随编码位数变化的曲线。另外绘出理论的量化信噪比曲线进行比较。(保存为图2-3)

4)在编码位数为8和12时采用均匀量化,在输入信号衰减为0~50 dB时,以均匀间隔5 dB仿真得到均匀量化的量化信噪比,绘出量化信噪比随信号衰减变化的图形。注意,输入信号减小时,量化范围不变;抽样频率为2000 Hz。(保存为图2-3-2)

2) 在编码位数为8和12时均匀量化、编码位数为8时A律压扩量化,在输入信号衰减为0~50dB时,以均匀间隔5dB仿真得到量化信噪比,绘出量化信噪比随信号衰减变化的图形。另外绘出8和12位编码时采用均匀量化的理论量化信噪比曲线进行比较。注意,输入信号减小时,量化范围不变;抽样频率为2000Hz。(保存为图2-5)

二、实验思考题:

1、图2-3表明均匀量化信噪比与量化级数(或编码位数)的关系是怎样的?

答:量化信噪比随着量化级数的增加而提高,当量化级数较小是不能满足通信质量的要求

2、分析图2-5,A律压缩量化相比均匀量化的优势是什么?(选做)

答:量化信噪比随着量化级数的增加而提高,当量化级数较小是不能满足通信质量的要求

源程序: %第一图源程序 close all clear clc fs=1000;ts=1/fs;t=0:ts:1; s=sin(2*pi*t); % figure(1); % subplot(2,1,1); plot(t,s,'-b');%产生信号 delt=2/8;%8级量化,delt为最小值 sign_s=(s>=0)*2-1; qs=((ceil(abs(s)/delt)*delt-delt/2).*sign_s); hold on; plot(t,qs,'-r'); title('输入信号和量化信号') grid on; %第二图源程序 fs=32;ts=1/fs;t=0:ts:1; s=sin(2*pi*t); % figure(1); subplot(2,1,1); plot(t,s,'-b');%产生信号 delt=2/8;%8级量化,delt为最小值 sign_s=(s>=0)*2-1; qs=((ceil(abs(s)/delt)*delt-delt/2).*sign_s); q_error=s-qs; title('采样样值和8级均匀量化后的样值'); xlabel('t(s)'); hold on; stem(t,s,'b','filled');%采样值 stem(t,qs,'r')%量化后样值 subplot(2,1,2); stem(t,q_error,'r','filled') title('量化误差'); xlabel('t(s)'); %第三图源程序 clc clear fs=2000;ts=1/fs;t=0:ts:1; s=sin(2*pi*t); P_s=mean(s.^2); snrq=zeros(1,7); for n=2:1:8 M=2^n; delt=2/M;%8级量化,delt为最小值 sign_s=(s>=0)*2-1; qs=((ceil(abs(s)/delt)*delt-delt/2).*sign_s); q_error=s-qs; P_n=mean(q_error.^2); P_n=mean(q_error.^2); snrq(n-1)=10*log10(P_s/P_n); end; n=2:1:8; plot(n,snrq,'-rd'); hold on; snrq_t=6.02*n+1.76; plot(n,snrq_t,'-b'); xlabel('编码位数'); ylabel('量化级数(单位:db)'); legend('理论值','仿真值'); grid on; %第四图源程序 clc clear fs=2000;ts=1/fs;t=0:ts:1; s0=sin(2*pi*t); L_db=0:5:50; delt=2/2^8; L=10.^(L_db/20); snrq=zeros(1,11); for k=1:1:11; s=s0/L(k); sign_s=(s>=0)*2-1; qs=((ceil(abs(s)/delt)*delt-delt/2).*sign_s); q_error=s-qs; P_s=mean(s.^2); P_n=mean(q_error.^2); snrq(k)=10*log10(P_s/P_n); end; n=2:1:8; plot(L_db,snrq,'-b');%量化值 hold on; delt=2/2^12; L=10.^(L_db/20); snrq=zeros(1,11); for k=1:1:11; s=s0/L(k); sign_s=(s>=0)*2-1; qs=((ceil(abs(s)/delt)*delt-delt/2).*sign_s); q_error=s-qs; P_s=mean(s.^2); P_n=mean(q_error.^2); snrq(k)=10*log10(P_s/P_n); end; plot(L_db,snrq,'-rd');%量化值 hold on; xlabel('信号衰减(单位:db)'); ylabel('量化性噪比(单位:db)'); title('量化信噪比随信号衰减的变化情况') legend('均匀量化(8 bit)','均匀量化(12 bit)'); grid on; %第五图源程序 clc clear fs=2000;ts=1/fs;t=0:ts:1; s0=sin(2*pi*t); L_db=0:5:50; delt=2/2^8; L=10.^(L_db/20); snrq=zeros(1,11); for k=1:1:11;s=s0/L(k); sign_s=(s>=0)*2-1; qs=((ceil(abs(s)/delt)*delt-delt/2).*sign_s); q_error=s-qs; P_s=mean(s.^2); P_n=mean(q_error.^2); snrq(k)=10*log10(P_s/P_n); end; n=2:1:8; plot(L_db,snrq,'-rd');%量化值 hold on; snrq_t=(6.02*8+1.76)*ones(1,11)-L_db; plot(L_db,snrq_t,'-b');%理论值 hold on; delt=2/2^12;L=10.^(L_db/20);snrq=zeros(1,11); for k=1:1:11;s=s0/L(k); sign_s=(s>=0)*2-1; qs=((ceil(abs(s)/delt)*delt-delt/2).*sign_s); q_error=s-qs;P_s=mean(s.^2); P_n=mean(q_error.^2); snrq(k)=10*log10(P_s/P_n); end; % n=2:1:8; plot(L_db,snrq,'-or');%量化值 hold on; snrq_t=(6.02*12+1.76)*ones(1,11)-L_db; plot(L_db,snrq_t,'-*b');%理论值 xlabel('信号衰减(单位:db)'); ylabel('量化性噪比(单位:db)'); title('量化信噪比随信号衰减的变化情况') legend('均匀量化(8 bit)','均匀量化理论值(8 bit)','均匀量化(12 bit)','均匀量化理论值(12 bit)'); grid on;

本文来源:https://www.bwwdw.com/article/wemf.html

Top