原创 DSB-AM的MATLAB仿真

2008-2-17 22:28 7323 8 8 分类: 通信

DSB-AM调制<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


 


一.     原理与分析


 


DSB-AM系统中,已调信号的幅度正比与消息信号。这种调制通过使用乘法器完成,将消息信号吗m(t)与载波Accos(2πfct),如图1所示,表示为:


u(t)=Acm(t)cos(2πfct)                                      1


 



bb664123-f476-4b27-87d0-e769b65f79e5.GIF 


1 DSB-AM调制原理结构框图


 


其中


c(t)=Accos(2πfct)                                                     2


 

是载波,而m(t)是消息信号。若以单频正弦信号调制为例,那么典型波形如图3所示。


bb2ece71-401e-4c21-8114-96c399807880.gif



2 DSB-AM典型信号


 


现取u(t)的傅立叶变换,可以得到DSB-AM信号的频域表示为:


3c52a310-cf2a-4c11-93b8-a888f70ab231.GIF                                      3


 

其中M(f)是m(t)的傅立叶变换。很明显可以看出,这种调制方式将消息信号的频谱进行了搬移,并在幅度上乘以Ac/2,传输带宽Br是消息信号带宽的两倍,也就是说:


Br=2W                                                              4


 

3显示了一个典型的消息信号的频谱及其相对应的DSB-AM已调信号的频谱。


 



d0856494-d7a1-4c97-88d5-ca6416d52e4d.GIF


3 消息信号与DSB-AM已调信号的频谱


 


已调信号的功率为


234feba8-b883-40a5-8d95-425b41ec1618.GIF                                                          5


 

其中Pm是消息信号的功率。在DSB-AM通信系统中,信噪比SNR等于基带的SNR,也就是:


9270814e-0e0e-46b8-a362-677a223c265c.GIF                                                     6


 

其中PR是接收到的功率(在接收端已调信号的功率),N0是噪声功率谱密度(假定为白噪声),W是信号噪声的带宽。


 


二.     MATLAB示例


 


例子1


    定义一个消息信号m(t)为:


3a00db29-f585-41a8-93f7-bfc02890de32.GIF



该消息使用DSB-AM方式进行传输,调制载波为c(t)=Accos(2πfct),调制后得到的信号为u(t)假设t0=0.15,fc=250HZ


(1)    m(t),c(t)u(t)信号的时域波形图与频谱图。


(2)    现在调制过程中又噪声加在已调信号上,所得到的SNR20dB,求出噪声信号的时域与频域图和得到的调制信号时域与频域图。


 


解:


本题的MATLAB脚本语言如下:


 



 


%DSB_AM调制


%1求解


clear all;


clc;


echo on


t0 = 0.15;                               %定义信号持续时间


ts = 0.0001;                           %定义仿真时的信号采样率


fc = 250;                                %定义载波信号


snr = 20;                                %定义信噪比,单位dB


fs = 1/ts;                                 %采样频率


df = 0.2;                                 %定义频谱分辩力


t = [0:ts:t0];                             %时间矢量


snr_lin = 10^(snr/10);              %线性的信噪比


%传输的信号


m = [ones(1,ceil(t0/(3*ts))),-2*ones(1,ceil(t0/(3*ts))),zeros(1,ceil(t0/(3*ts)+1))]; 


c = cos(2*pi*fc.*t);                 %载波


u = m.*c;                                %调制


[M,m,df1]=fftseq(m,ts,df);       %传输的信号的频谱


M = M/fs;                               %频谱采样


[U,u,df1]=fftseq(u,ts,df);          %调制信号频谱


U=U/fs;                                   %频谱采样


[C,c,df]=fftseq(c,ts,df);            %载波信号频谱


C = C/fs;                                 %频率采样


%频谱矢量


f = [0:df1:df1*(length(m)-1)]-fs/2;


%信号的功率


signal_power=spower(u(1:length(t)));


%噪声的功率


noise_power=signal_power/snr_lin;


%噪声的标准差


noise_std=sqrt(noise_power);


%产生最后的噪声


n=noise_std*randn(1,length(u));


r=u+n;                                     %将信号加到噪声上


[N,n,df1]=fftseq(n,ts,df);          %对噪声进行fft


N = N/fs;                                 %频率采样


[R,r,df1]=fftseq(r,ts,df);            %对最后的信号进行fft


R = R/fs;                                  %进行采样


 


%显示出没有噪声的情况


figure                                       %显示第一张图片(第一题解)


subplot(3,2,1)                          %消息信号时域显示


plot(t,m(1:length(t)))


title('原始信号')


axis([0 0.15 -3 3])


subplot(3,2,2)                           %消息信号频域显示


plot(f,abs(fftshift(M)))


title('原始信号的频率')


axis([-500 500 0 0.15])


subplot(3,2,3)                           %调制载波时域显示


plot(t,c(1:length(t)))


title('载波信号')


axis([0 0.15 -3 3])


subplot(3,2,4)                           %调制载波频域显示


plot(f,abs(fftshift(C)))


title('载波的频率')


axis([-500 500 0 0.15])


subplot(3,2,5)                           %调制信号时域显示


plot(t,u(1:length(t)))


title('调制信号')


axis([0 0.15 -3 3])


subplot(3,2,6)                           %调制信号频域显示


plot(f,abs(fftshift(U)))


title('调制信号的频率')


axis([-500 500 0 0.15])


 


%噪声分析


figure                                        %显示第二章图片(第二题解)


subplot(2,2,1)                          %噪声时域显示


plot(t,n(1:length(t)))


title('采样的噪声')


axis([0 0.15 -1 1])


subplot(2,2,2)                           %噪声频域显示


plot(f,abs(fftshift(N)))


axis([-500 500 0 0.05])


title('信号频谱')


subplot(2,2,3)                           %加噪调制信号时域显示


plot(t,r(1:length(t)))


title('信号与噪声')


axis([0 0.15 -3 3])


subplot(2,2,4)                           %加噪调制信号频域显示


plot(f,abs(fftshift(R)))


title('信号与噪声')


axis([-500 500 0 0.15])


 


 


    最后得到的MATLAB图显示了题解:


 


d4ada2eb-7ae9-4ab0-8f17-f923d45ae29a.gif



4 没有噪声情况下的信号图示(题1解)



abd538d2-7301-4f08-92f7-c9c266ecf3ad.gif 


5 在噪声情况(SNR20)下,信号图示(题2解)


 


 


 


 本文的程序与PDF文档如下rar

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
8
关闭 站长推荐上一条 /3 下一条