资源描述
计算机仿真的一般方法
一、时域取样及频域取样
对于任意信号S(t):对于时间T是连续的
定义域(–∞,+∞)
计算机处理的信号S(kt):对于时间T是离散的
定义域是有限域
在计算机中如何处理一个无限域的、关于时间连续的任意信号S(t)?
方法是首先对S(t)进行截短,截短区间为[-T/2,+T/2],得到一个截短信号ST(t),然后再对ST(t)按时间间隔△t均匀取样,得到N个样点值,N=T/△t。用这N个样点值代表S(t)信号放到计算机中进行研究。
S(t)
-T/2 0 T/2
△t
时域取样情况:
取样
截短
S(t) ST(t) ST(kt)
截短区间为:[-T/2,T/2]
取样间隔:△t,且有fH≤1/(2△t)(显然,△t越小,仿真的精度越高)
对于频域信号的处理办法:先将频域连续的信号S(f)截短,截短区间定义为系统带宽[-BS,+BS],将S(f)截短为ST(f)后再对其进行抽样,抽样间隔为△f,得到N'个样点值,N'=2BS/△f
S(f)
-Bs +Bs f
ST(f)
-Bs △f +Bs f
频域离散的信号对应到时域是一个周期信号,其周期为T'=1/△f
不发生混叠失真的条件为: T'≥2*(T/2) 即T≤1/△f
S(t)
T/2 T'
为使频域取样点数N'与时域取样点数N相等(便于我们研究问题),我们取1/△f=T,这样一来,
时域取样点数:N=T/△t=1/(△f△t)(1/△f=T)
频域取样点数:N'=2Bs/△f=1/(△f△t)(Bs=1/2△t)
所以:N= N'=1/△f△t,在仿真系统中,一般取N为2的整数幂
例:假如设计要求的系统带宽为1MHz,频域最小分辨率为10KHz。那么据此可求得N=2Bs/△f=2×106/10×103=200,取。再重推其它参数 ,,,。
二、频域分析:
在系统仿真中,我们要研究的一个重要指标是信号的功率谱密度,功率谱密度的求法如下
截短
采样
傅氏变换
S(t) ST(t) ST(kt) ST(f)
S(t)的能量:| ST(f)|2
S(t)在截短时间内的功率谱:| ST(f)|2/T
MATLAB中功率谱的求法:
P=(S.*conj(S))/T,其中,S为S(t)的傅氏变换,conj(S) 为S的共轭,则S.*conj(S)= | ST(f)|2
三、随机信号的产生
系统
输出{an’}
输入{an}
1、 随机码序列的产生
1) 产生M个取值,1、0等概的随机码
round(rand(1,M))
rand(1,M)产生一个含有M个元素的行向量,每元素的取值范围为
[0,1],round是四舍五入,变成0,1行向量
2) 产生M个取值,+1、-1等概的随机码
sign(randn(1,M))
randn(1,M)产生一个含有M个元素的行向量,向量中的元素服从正态分布,sign取符号后变成+1,-1行向量
等概的条件是M的取值足够大
2、 高斯噪声的产生
n0/2
-Bs +Bs
设高斯噪声限带为[-Bs,Bs],双边功率谱密度为n0/2,则总能量为
(n0/2)*(2Bs)=n0Bs
若高斯噪声幅度为x,则,x2= n0Bs,
所以,随机高斯噪声x=sqrt(n0* Bs)*randn(1,N) (N为取样点数)
3、 产生数字基带信号的一般方法
数字基带传输系统的框图
接收滤波
信道
波形
形成
基带码型
编码
信息源
n(t)
GR(ω)
C(ω)
GT(ω)
输出
码型译码
再生判决
即为PAM信号
1) 首先产生一个随机码序列{an},可用stem(an)
2) 然后产生冲击序列imp,
设总采样点数为N,码元数为M,每码元内采样点数为L,用一个窄脉冲代表imp,宽度为dt,
x
S= an=x*dt,则x=a/dt
所以在一个码元内的L个样点值上,只能有一个样点值上有冲击,而其它样点值均为0,步长为L
写成MATLAB语句的形式
imp=zeros(1,N) %产生有N个元素的行向量,并对向量清零
imp(L/2:L:N)=a/dt %起始值为L/2,步长为L
注意:规定N、M、L均为2的整幂
展开阅读全文