Matlab与通信仿真 3.设非周期信号s?t????1,t?T/4?0,其他,求该信号的傅里叶变换,MATLAB画出傅里叶变换
后的频谱,并对频谱进行反变换,画出s?t?的波形。
程序:
close all
clear all % 删除所有工作空间的变量 tao=1; % 脉宽
tao_sample=512; % 为了画波形,在脉宽内的采样点数 %N_sample=30; % 为了画波形,在时间窗内的采样点数
dt=tao/ tao_sample; % 时间分辨率 add_zeros=1000;
t=(-tao/2-add_zeros*dt):dt:tao/2+(add_zeros-1)*dt; % 所有时间采样值 N_sample=length(t); % 为了画波形,在时间窗内的采样点数 T=t(end)-t(1); % 时间窗的大小
st=[zeros(1,add_zeros) ones(1,(N_sample-2*add_zeros)) zeros(1,add_zeros)]; % 依据T将信号离散化
subplot(411); % 设置3*1的1号窗 plot(t,st); % 在1号窗中画时间波形 axis([-1 1 0 2]); % 设置1号窗坐标轴的范围 xlabel('t');ylabel('s(t)'); % 标出横轴、纵轴变量 subplot(412) ; % 设置3*1的2号窗 [f,sf]=T2F(t,st) ; % 求st的FFT
plot(f,abs(sf)) ; % 在2窗中画st频谱sf波形的绝对值 axis([-10 10 0 2]); % 设置2号窗坐标轴的范围 xlabel('f');ylabel('|S(f)|'); % 标出横轴、纵轴变量 %sff=tao*sinc(f*tao) ; %例6信号谱
sff=tao*(sin(tao*pi*f)./(tao*pi*f)) ; %例6信号谱 subplot(413) ; % 设置3*1的2号窗
plot(f,abs(sff),'r') % 在2窗中画st频谱sf波形的绝对值,用红色 axis([-10 10 0 2]); % 设置2号窗坐标轴的范围 [tt,st]= F2T_3(f,sf); % 进行离散傅立叶反变换,求原始信号 subplot(414) ; % 设置3*1的3号窗 xlabel('t');ylabel('恢复的s(t)'); % 标出横轴、纵轴变量 plot(tt,st) ;hold off ; % 在3窗中画sf回复的st波形,关闭共画开关 axis([-1 1 0 2]); % 标出横轴、纵轴变量 结果:
14
Matlab与通信仿真 2s(t)10-12-0.8-0.6-0.4-0.20t0.20.40.60.81|S(f)|10-10210-10210-1-0.8-0.6-0.4-0.200.20.40.60.81-8-6-4-20246810-8-6-4-20f246810
实验三 随机信号与数字基带实验
一、实验目的
? 掌握库函数产生随机数方法 ? 基带信号波形生成和其功率谱密度 ? 理解采用蒙特卡罗算法仿真的思想
二、实验原理
(一).库函数产生随机数
① 均匀分布的随机数
利用MATLAB库函数rand产生。rand函数产生(0,1)内均匀分布的随机数,使用方法如下:
1)x=rand(m);产生一个m×m的矩阵,所含元素取值均为在(0,1)内均匀分布的随机数。
2)x=rand(m,n);产生一个m×n的矩阵,所含元素取值均为在(0,1)内均匀分布的随机数。
3)x=rand;产生一个随机数。
4)调用rand(1,N)给出均值为0.5,功率为1/12=0.083的白噪声。
25)调用rand(1,N)给出均值为0.5,功率为?n现在要均值为0,?1/12?0.83的白噪声,
15
Matlab与通信仿真 功率为0.01。 调整均值:用u(n)减上均值即可;调整功率:令希望的功率为P,则需要求出常数a,a?2P/?n?12P,用a乘u(n)。
② 高斯分布的随机数
randn函数产生均值为0,方差为1的高斯分布的随机数,使用方法如下:
1)x=randn(m);产生一个m×m的矩阵,所含元素都是均值为0,方差为1的高斯分布的随机数。
2)x=randn(m,n);产生一个m×n的矩阵,所含元素都是均值为0,方差为1的高斯分布的随机数。
3)x=randn;产生一个均值为0,方差为1的高斯分布的随机数。
4)调用randn,生成均值为0,方差为1,服从高斯分布的白噪声信号u(n)。调整均值:
用u(n)加上均值即可;调整功率:令希望的功率为P,则需要求出常数a,a?u(n)。
(二).基带信号波形生成和信号的功率谱密度
1).要画出完整的基带信号波形,每一个码元要采 n个样。 2)信号f(t)的功率谱密度为:P(?)?limP,用a乘
FT(?)T2T??。
(三).蒙特卡罗算法
蒙特卡罗估计是指通过随机实验估计系统参数值的过程。蒙特卡罗算法的基本思想:由概率论可知,随机实验中实验的结果是无法预测的,只能用统计的方法来描述。故需进行大量的随机实验,如果实验次数为N,以NA表示事件A发生的次数。若将A发生的概率近似为相对频率,定义为NAN。这样,在相对频率的意义下,事件A发生的概率可以通过重复无限多次随机实验来求得,即:P?A??NA limNN??
在二进制数字通信系统中,若N是发送端发送的总码元数,NA是差错发生的次数,则
总误码率可通过蒙特卡罗算法计算。
三、实验内容
1.产生随机数
利用rand函数产生5×4的(0,2)内均匀分布的随机数;
利用randn函数产生5×4的均值为0,方差为2的高斯分布的随机数。
2. 利用随机数产生单极性基带信号,每一个码元要采 8个样值,并画出其波形和功率谱密。 3.利用蒙特卡罗算法仿真二进制基带通信系统的误码率
假定通信系统满足以下条件:
① 信源输出的数据符号是相互独立和等概的双极性基带信号
16
Matlab与通信仿真 ② 发送端没有发送滤波器,接收端没有接收滤波器 ③ 信道是加性高斯白噪声信道
数字基带信号传输系统模型如图1所示:
发送滤波器噪声图1 数字基带信号传输系统模型
接收滤波器抽样判决器
限:Vd??0,误码率:
当P?1??P?0??12时
?E?1?r?11Pe?erfc??erfc,利用Q(x)????2???2??222???n??可得Q(x)???xe?t/2dt,erfc(x)?22???xe?tdt,
21xerfc(),故可用Q函数表示误码率Pe?Q(r)。抽样判决器输入信噪比:22?r1?E?n1,发12 抽样判决器输入信号为:? r?E2?n?r0??E?n0,发02?E为判决器输入有用信号电压,n1,n0为信道输入的均值为0,方差为?n高斯噪声。
通信系统的蒙特卡罗仿真模型如图2所示。编程实现二进制基带通信系统的误码率的蒙特卡罗仿真,并和理论误码率比较。
图2 通信系统的蒙特卡罗仿真模型
四、预习报告:(原理,流程图,编程思想,基本程序)
17
Matlab与通信仿真 18