通信系统仿真上机实验指导书(2)

2019-03-22 12:11

Sx_av=Sx_av+Sx; % 功率谱密度之和 end;

Rx_av=Rx_av/10; % 自相关函数的整体平均 Sx_av=Sx_av/10; % 功率谱密度的整体平均 subplot(2,1,1); plot(t,Rx_av)

xlabel( '(a) 自相关函数' ); subplot(2,1,2); plot(s,Sx_av)

xlabel( '(b) 功率谱密度' );

%-------------------------------------------------------------------------------------------------------------- function [Rx]=Rx_est(X,M) % 估计随机序列X的自相关函数 % 计算出Rx(0),Rx(1),...,Rx(M) % Rx(m)代表实际中的Rx(m-1). N=length(X); Rx=zeros(1,M+1); for m=1:M+1 for n=1:N-m+1

Rx(m)=Rx(m)+X(n)*X(n+m-1); end;

Rx(m)=Rx(m)/(N-m+1); end;

程序运行结果如图1.1所示。

6

图1.1 例1-1的运行结果

三、设计内容

1.已知瑞利分布随机信号的概率密度函数为

?xx2?exp(?2) x?0 f(x)???22?? 0 x?0?用randn函数产生??2的瑞利分布随机变量。

提示:两个独立分布、均值为0、方差为?的高斯随机变量的平方和开根号所得的随机变量服从功率为2?的瑞利分布。

2.产生均值为0,方差为1的高斯随机信号,长度为0.5s,计算该信号的自相关函数,并绘制高斯信号及自相关函数的图形。

提示:计算机只能产生各种离散信号序列,对于模拟连续信号,本质上都是产生信号的采样序列。只要采样频率足够高,模拟就可以非常准确。在这里,假定信号的采样频率

22

2fs?1000Hz。

3.在(-1,1)内产生一均匀分布的随机数N=500的离散时间序列,计算该序列的自相关函数和功率谱密度,并绘制图形。

4.一个带限随机过程X(t)的功率谱为

?f?B?N02  P(f)??

0    f?B?? 计算它的自相关函数,并绘制自相关函数与功率谱密度的图形。

提示:X(t)的自相关函数Rx(?)?

?B?BN0j2?ftedf?N0BSa(2?B?)。 2

7

设计二 模拟信号的数字化

一、设计目的

1.掌握脉冲编码调制的基本原理。 2.理解均匀PCM与非均匀PCM。

3.利用MATLAB对抽样值进行A律13折线编码。

二、设计原理

在模拟信号数字化方式中,出现最早且应用最广泛的是脉冲编码调制,即PCM编码,它经过抽样(时间离散化)、量化(幅值离散化)和编码(多电平转换为二电平)3个步骤,将一个时间和幅值都连续变换的模拟信号变成二进制数字信号。

1.抽样

抽样是将模拟信号在时间上离散化。对于低通型信号,当抽样频率fs?2fH时,属于正常抽样,不会发生频谱混叠;当fs?2fH时,属于欠抽样,已抽样信号频谱发生混叠。下面通过举例来看如何利用MATLAB分析已抽样信号的频谱。

【例2-1】有一信号m(t)?50Sa2(200t),当抽样频率fs1=100Hz时,绘出原始信号和抽样后信号的波形及其频谱。

解 由题意可知,原始信号的最高频率fH?64Hz,因此用fs1=100Hz抽样时,会发生频谱混叠,MATLAB实现的源程序如下:

clear

t0=10; % 定义时间长度 ts=0.001; % 抽样周期 ts1=0.01; % 欠抽样周期 fs=1/ts;

fs1=1/ts1; % 抽样频率 df=0.5; % 定义频率分辨力 t=[-t0/2:ts:t0/2]; % 定义时间序列 x=sin(200*t); % 定义信号序列 m=x./(200*t);

w=t0/(2*ts)+1; % 确定t=0的点

m(w)=1; % 确定t=0的点对应的信号值为1 m=m.*m; m=50.*m;

[M,mn,dfy]=fftseq(m,ts,df); % 傅里叶变换 M=M/fs;

8

f=[0:dfy:dfy*length(mn)-dfy]-fs/2; % 定义频率序列 % 欠抽样过程

t1=[-t0/2:ts1:t0/2]; % 定义抽样时间序列

x1=sin(200*t1); % 计算对应抽样序列的信号序列 m1=x1./(200*t1); % 计算Sa函数序列

w1=t0/(2*ts1)+1; % 由于除0产生了错误值,计算该值的标号 m1(w1)=1; % 将错误值修正 m1=m1.*m1; m1=50.*m1;

[M1,mn1,df1]=fftseq(m1,ts1,df); % 对已抽样信号进行傅里叶变换 M1=M1/fs1;

% 将一个周期的图像扩展到多个周期

N1=[M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1]; f1=[-7*df1*length(mn1):df1:6*df1*length(mn1)-df1]-fs1/2; % 绘图 subplot(2,2,1) plot(t,m)

axis([-0.15,0.15,-1,50]);

xlabel('(a) 原始信号的时域波形'); subplot(2,2,2) plot(f,abs(fftshift(M))); axis([-500,500,0,1]);

xlabel('(b) 原始信号的频谱'); subplot(2,2,3) stem(t1,m1)

axis([-0.15,0.15,-1,50]);

xlabel('(c) 欠抽样信号的时域波形'); subplot(2,2,4)

plot(f1,abs(fftshift(N1))); axis([-500,500,0,1]);

xlabel('(d) 欠抽样信号的频谱');

%----------------------------------------------------------------------------------------------------------- function [M,m,df]=fftseq(m,ts,df)

9

fs=1/ts;

if nargin==2 % 判断输入参数的个数是否符合要求 n1=0; else

n1=fs/df; % 根据参数个数决定是否使用频率缩放 end

n2=length(m);

n=2^(max(nextpow2(n1),nextpow2(n2))); M=fft(m,n); % 进行离散傅里叶变换 m=[m,zeros(1,n-n2)]; df=fs/n;

程序运行结果如图2.1所示。

50403020100-0.1-0.0500.050.1(a) 原始信号的时域波形50403020100-0.1-0.0500.050.1(c) 欠抽样信号的时域波形0-5000(b) 原始信号的频谱5000.5110.80.60.40.20-5000(d) 欠抽样信号的频谱500

图2.1 例2-1运行结果

2.量化

在MATLAB中,quantiz函数可以实现信号的均匀量化,compand函数可以实现信号的压缩与扩张,二者结合起来,可以实现信号的非均匀量化。它们的调用格式如下。

(1) quantiz函数

① index=quantiz(sig,partition),参数sig表示输入信号,参数partition表示分区向量,分区向量给出了量化间隔端点的向量,长度为M?1,将信号分成M个区域。根据向量partition对输入信号sig产生量化索引index,index的长度与矢量sig的长度相同。向量partition是由

10


通信系统仿真上机实验指导书(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2013考前集训二:电化学溶液综合题 基础篇 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: