信号分析处理matlab教材Word格式文档下载.docx
《信号分析处理matlab教材Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《信号分析处理matlab教材Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
通信系统是为了有效可靠的传输信息,信息由信源发出,以语言、图像、数据为媒体,通过电(光)信号将信息传输,由信宿接收。
通信系统又可分为数字通信与模拟通信。
基于课程设计的要求,下面简要介绍模拟通信系统。
信源是模拟信号,信道中传输的也是模拟信号的系统为模拟通信,模拟通信系统的模型如图1所示。
图1模拟通信系统的模型
1.2相位调制与解调
相位调制简称调相,用PM表示,它是使高频振荡信号的相位按调制信号的规律变化,其振幅也保持不变。
调相信号的解调,称为鉴相或相位检波。
角度调制属于频谱的非线性变换,即已调信号的频谱结构不再保持原调制信号频谱的内部结构,且调制后的信号带宽比原调制信号的贷款要大得多。
虽然角度调制信号的频带利用率不高,但其抗干扰和噪声的能力较强。
1.3SIMULINK
SIMULINK是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。
而所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型,进而进行仿真与分析。
2调制与解调原理分析
2.1调相信号
在模拟调制中,一个连续波有三个参数可以用来携带信息而构成已调信号。
当幅度和频率保持不变时,改变载波的相位使之随未调信号的大小而改变,这就是调相的概念。
角度调制信号的一般表示形式为:
(2.1.1)
式中,A是载波的恒定振幅;
[ωct+φ(t)]是信号的瞬时相位,而φ(t)称为瞬时相位偏移;
d[ωct+φ(t)]/dt为信号的瞬时频率,而dφ(t)/dt称为瞬时频率偏移,即相对于ωC的瞬时频率偏移
设高频载波为Uc=UcmCOSωct,调制信号为UΩ(t),则调相信号的瞬时相位φ(t)=ωct+KpUΩ(t)
瞬时角频率
(2.1.2)
调相信号:
(2.1.3)
将信号的信息加在载波的相位上则形成调相信号,调相的表达式为:
(2.1.4)
这里KPM称为相移指数,这种调制方式,载波的幅度和角频率不变,而瞬时相位偏移是调制信号f(t)的线性函数,称为相位调制。
调相与调频有着相当密切的关系,我们知道相位与频率有如下关系式:
(2.1.5)
(2.1.6)
所以在调相时可以先将调制信号进行微分后在进行频率调制,这样等效于调相,此方法称为间接调相,与此相对应,上述方法称为直接调相。
调相信号的产生如图所示:
图2.1.1直接调相图2.1.2间接调相
2.2调制原理
实现相位调制的基本原理是使角频率为ωc的高频载波Uc(t)通过一个可控相移网络,此网络产生的相移Δφ受调制电压UΩ(t)控制,满足关系Δφ=KpUΩ(t)所以网络输出就是调相信号,可控相移网络调相原理图如图所示:
图2.2控相移网络调相原理
2.3解调原理
已调波的解调电路称为检波器,调相波的解调电路称为相位检波器或鉴相器。
采用乘积鉴相是最常用的方法。
若调相信号为:
(2.3.1)
其中
Δφ(t)=KpmΩ(t)
同步信号与载波信号相差pi/2
(2.3.2)
式中k为乘法器增益,低通滤波器增益为1,可以看到乘积鉴相的线性鉴相范围较小,只能解调Mp≦6π的调相信号。
乘积鉴相器的原理图如图所示,由于相乘的两个信号有pi/2的固定相位差,故这种方法又称为正交乘积鉴相。
原理如下图:
图2.3正交乘积鉴相
3函数实现的仿真
3.1M文件源代码
3.1.1下述傅里叶变换的子函数m文件以“fftseq.m”保存
function[M,m,df]=fftseq(m,ts,df)
fs=1/ts;
ifnargin==2,n1=0;
%nargin为输入参量的个数
elsen1=fs/df;
end
n2=length(m);
n=2^(max(nextpow2(n1),nextpow2(n2)));
%nextpow2(n)取n最接近的较大2次幂
M=fft(m,n);
%M为信号m的傅里叶变换,n为快速傅里叶变换的点数
m=[m,zeros(1,n-n2)];
%构建新的m信号
df=fs/n;
%重新定义频率分辨率
3.1.2下述求信号相角的子函数的m文件以“env_phas.m”保存
function[v,phi]=env_phas(x,ts,f0)
ifnargout==2%nargout为输出变数的个数
z=loweq(x,ts,f0);
%产生调制信号的正交分量
phi=angle(z);
%angle是对一个复数求相角的函数
end
v=abs(hilbert(x));
%abs用来求复数hilbert(x)的模
3.1.3下述产生调制信号的正交分量的m文件以“loweq.m”保存
function x1=loweq(x,ts,f0)
t=[0:
ts:
ts*(length(x)-1)];
z=hilbert(x);
%希尔伯特变换对的利用---通过实部来求虚部
x1=z.*exp(-j*2*pi*f0*t);
%产生信号z的正交分量并将z信号与它的正交分量加在一起
3.2主程序文件源代码
t0=0.2;
%信号的持续时间,用来定义时间向量
ts=0.001;
%抽样间隔
%抽样频率
fc=300;
%载波频率,fc可以任意改变
t=[-t0/2:
t0/2];
%时间向量
kf=100;
%偏差常数
df=0.25;
%所需的频率分辨率,用在求傅里叶变换时,它表示FFT的最小频率间隔
m=sin(100*t);
%调制信号,m(t)可以任意更改
int_m
(1)=0;
%求信号m(t)的积分
fori=1:
length(t)-1
int_m(i+1)=int_m(i)+m(i)*ts;
[M,m,df1]=fftseq(m,ts,df);
%对调制信号m(t)求傅里叶变换
M=M/fs;
%缩放,便于在频谱图上整体观察
f=[0:
df1:
df1*(length(m)-1)]-fs/2;
%时间向量对应的频率向量
u=cos(2*pi*fc*t+2*pi*kf*int_m);
%调制后的信号
[U,u,df1]=fftseq(u,ts,df);
%对调制后的信号u求傅里叶变换
U=U/fs;
%缩放
%通过调用子程序env_phas和loweq来实现解调功能
[v,phase]=env_phas(u,ts,fc);
%解调,求出u的相位
phi=unwrap(phase);
%校正相位角,使相位在整体上连续,便于后面对该相位角求导
dem=(1/(2*pi*kf))*(diff(phi)*fs);
%对校正后的相位求导再经一些线性变换来恢复原调制信号乘以fs是为了恢复原信号,因为前面使用了缩放
subplot(3,2,1),plot(t,m(1:
length(t))),axis([-0.10.1-11]),xlabel('
时间t'
),title('
原调制信号的时域图/'
)
subplot(3,2,2),plot(t,u(1:
length(t))),axis([-0.10.1-11]),xlabel('
已调信号的时域图/'
subplot(3,2,3),plot(f,abs(fftshift(M))),axis([-60060000.04]),xlabel('
频率f'
原调制信号的频谱图/'
subplot(3,2,4),plot(f,abs(fftshift(U))),axis([-60060000.04]),xlabel('
已调信号的频谱图/'
subplot(3,2,5),plot(t,m(1:
subplot(3,2,6),plot(t,dem(1:
解调后信号的时域波形/'
4SIMULINK实现