软件仿真实验一 模拟通信系统—AM

实验目的:

1、掌握AM信号的产生方法;

2、掌握AM信号波形和频谱的特点;

3、掌握AM信号的解调方法;

4、掌握AM系统的抗噪声性能。

知识要点:

1AM信号的产生方法;

2AM信号的波形和频谱;

3AM信号的解调方法;

4AM系统的抗噪声性能。

仿真要求:

建议时间参数:

基带信号频率: fm=100; 抽样速率 fs= 20000;信号时长:T = 2;

基带信号幅度:Am=1;  载波频率fc=1000

1记录调制信号与AM信号的波形和频谱;调制指数:Ma=0.5; 直流信号幅度:A0= Am/Ma;)

2采用相干解调,记录恢复信号的波形;

3*、采用包络检波,记录恢复信号的波形;

4、在接收机模拟带通滤波器前加入高斯白噪声SNR=2dB, SNR=20dB, SNR=100dB

观察并记录恢复信号波形的变化;

5、改变调制指数Ma=1观察并记录恢复信号波形的变化;

实验报告要求:

1、记录调制信号与AM信号的波形和频谱,分析AM信号波形和频谱的特点;

2、记录恢复信号波形的变化,分析噪声对恢复信号的影响。

实验内容:

记录调制信号与AM信号的波形和频谱;调制指数:Ma=0.5; 直流信号幅度:A0= Am/Ma;)

对于普通AM信号,我们有:

UAM=Uc(1+macosΩt)cosωt正在上传…重新上传取消

修改参数后我们运行代码:

图表 1调制信号与载波

图表 2AM信号及频谱

AM信号的分析:

波形分析:

AM信号是调制信号控制载波的振幅,波形的包络线即调制信号的波形。而且仅载波的振幅发生变化,其相位、频率均不变。

频谱分析:

AM信号的频谱包含三个成分:Wc、Wc+Ω、Wc-Ω。形状像一个“山”字,其中包含有用信息的边频功率在ma=0.5时候

边频功率:PSB=ma2*Um0^24正在上传…重新上传取消

载波功率:Pc=Um0^22正在上传…重新上传取消

边频功率仅占总功率的1/9,随着ma的减小,边频功率占比会大大减小,所以普通的AM调制方式在信息传输中能量利用率是很低的,所以有DSB、SSB调制来解决这一问题。

采用包络检波:
 

图表 3相干解调SNR=2

 图表 4SNR改为20

图表 5  SNR=100

图表 6  ma=1

采用相干解调:

图表 7包络检波波形及频谱SNR=2

图表 8  SNR=20

 图表 9  SNR=100

图表 10  ma=1

分析:

在接收机模拟带通滤波器前加入高斯白噪声,可以使信号质量下降,进而影响到恢复信号的波形。当 SNR=2dB 时,由于噪声功率远大于信号功率,恢复信号的波形会受到非常明显的噪声干扰,波形的细节和边缘会受到严重的模糊,甚至难以分辨信号的基本特征。当 SNR=20dB 时,噪声功率相对于信号功率有所降低,此时恢复信号的波形可能仍然存在一定的噪声干扰,但整体上表现为明显的信号波形,其细节和特征也比 SNR=2dB 时明显更加清晰和可辨别。当 SNR=100dB 时,由于噪声功率已经非常小,可以认为恢复信号波形与没有噪声的信号波形相同,即噪声在此时所产生的影响可以忽略不计。

附录MATLAB代码

% AM调制解调过程

基本参数

clear all;                  % 清除变量

close all;                  % 关闭所有窗口图像

fm = 100;                   % 基带信号频率

T = 2;                      % 信号时长

fs = 20000;                 % 采样频率 奈奎斯特采样定理为最大频率的两倍,这里取20倍为了绘制更多的细节,让时域信号更平滑

dt=1/fs;                    % 时间采样间隔,采样频率的倒数

N=T/dt;                     % 采样点个数,总时长除以采样间隔

t=[0:N-1]*dt;               % 采样点的时间序列,作为横坐标

****************调制信号时域波形******************

Am=1;                       % 基带信号幅度

mt=Am*cos(2*pi*fm*t);       % 基带信号

figure(1);                  % 绘制第一幅图

subplot(221);               % 窗口分割,将一幅图分割成2*2

plot(t,mt,'Linewidth',2);   % 时间t为横坐标,基带信号mt为纵坐标绘图,线宽为2

xlabel('t/时间');           % 横坐标标注

ylabel('幅度');             % 纵坐标标注

title('基带信号');          % 图标题标注

axis([0,0.1,-1.1,1.1]);     % 横纵坐标范围设置

line([0,0.1],[0,0],'color','b','Linewidth',2);% 绘制一条从(0,0)(0.1,0)的蓝色实线,线宽为2

****************调制信号频域波形******************

subplot(222);

[mf,msf]=T2F(t,mt);         % 傅里叶变换,得到纵坐标频谱和横坐标频率

plot(mf,abs(msf),'Linewidth',2);    % 画出基带信号频谱,线宽为2

title('基带信号的频谱');            % 图标题标注

xlabel('f/Hz');                     % 横坐标标注

ylabel('幅度/H(f)');                % 纵坐标标注

axis([-150 150 -inf inf]);          % 横纵坐标范围设置

****************载波信号时域波形******************

subplot(223);

fc=1000;                            % 载波频率

zaibo=cos(2*pi*fc*t);               % 载波时域信号

plot(t,zaibo,'r','Linewidth',2);    % 时间t为横坐标,载波信号zaibo为纵坐标绘图,线宽为2,红色

xlabel('t/时间');                   % 横坐标标注

ylabel('幅度');                     % 纵坐标标注

title('载波信号');                  % 图标题标注

axis([0,0.01,-1.1,1.1]);            % 横纵坐标范围设置

line([0,0.01],[0,0],'color','b','Linewidth',2);% 绘制一条从(0,0)(0.01,0)的蓝色实线,线宽为2

****************载波信号频域波形******************

subplot(224);

[mf1,msf1]=T2F(t,zaibo);            % 傅里叶变换,得到纵坐标频谱和横坐标频率

plot(mf1,abs(msf1),'r','Linewidth',2);  % 载波信号频谱,线宽为2,红色

title('载波信号的频谱');            % 图标题标注

xlabel('f/Hz');                     % 横坐标标注

ylabel('幅度/H(f)');                % 纵坐标标注

axis([-1200 1200 -inf inf]);        % 横纵坐标范围设置

****************AM信号时域波形******************

Ma=1;

Am=1;

A0=Am/Ma;

AM=Am*(1+Ma.*cos(2*pi*fm*t)).*zaibo;                      % 画出AM信号波形

SNR=100;                              %信噪比为  dB

AM=awgn(AM,SNR,'measured');

figure(2);                          % 绘制第二幅图

subplot(211);                       % 窗口分割,将一幅图分割成2*1

plot(t,AM,'Linewidth',2);          % 画出AM信号波形,线宽为2

title('AM调制信号');               % 图标题标注

xlabel('t/时间');                   % 横坐标标注

ylabel('幅度');                     % 纵坐标标注

axis([0,0.02,-3.1,3.1]);            % 横纵坐标范围设置

line([0,0.02],[0,0],'color','b','Linewidth',2);% 绘制一条从(0,0)(0.02,0)的蓝色实线,线宽为2

****************AM信号频域波形******************

[mf2,msf2]=T2F(t,AM);              % 傅里叶变换,得到纵坐标频谱和横坐标频率

subplot(212);

plot(mf2,abs(msf2),'Linewidth',2);  % 画出AM信号频谱

title('AM信号的频谱');           % 图标题标注

xlabel('f/Hz');                     % 横坐标标注

ylabel('幅度/H(f)');                % 纵坐标标注

axis([-1500 1500 -inf inf]);        % 横纵坐标范围设置

****************相干解调******************

****************已调信号与载波信号相乘******************

st=AM.*zaibo;                      % 已调信号与载波信号相乘

figure(3);                          % 绘制第三幅图

subplot(211);                       % 窗口分割,将一幅图分割成2*1

plot(t,st,'Linewidth',2);           % 时间t为横坐标,相乘信号st为纵坐标绘图,线宽为2

title('已调信号与载波信号相乘');    % 图标题标注

xlabel('t/时间');                   % 横坐标标注

ylabel('幅度');                     % 纵坐标标注

axis([0 0.02 -2 2]);                % 横纵坐标范围设置

line([0,0.02],[0,0],'color','b','Linewidth',2);% 绘制一条从(0,0)(0.02,0)的蓝色实线,线宽为2

****************已调信号与载波信号相乘的频谱******************

[f,sf]=T2F(t,st);                   % 傅里叶变换,得到纵坐标频谱和横坐标频率

subplot(212);                       % 窗口分割,将一幅图分割成2*1

plot(f,sf,'Linewidth',2);           % 绘制相乘信号st的频谱,线宽为2

title('已调信号与载波信号相乘的频谱');% 图标题标注

xlabel('f/Hz');                     % 横坐标标注

ylabel('幅度/H(f)');                % 纵坐标标注

axis([-2200 2200 -inf inf]);        % 横纵坐标范围设置

****************解调出来的信号******************

[t,st]=lpf(f,sf,2*fm);              % 频域低通滤波

figure(4);                          % 绘制第三幅图

subplot(211);                       % 窗口分割,将一幅图分割成2*1

plot(t,2*st,'Linewidth',2);           % 绘制解调波形

title('经过低通滤波的相干解调信号波形');% 图标题标注

xlabel('t/时间');                   % 横坐标标注

ylabel('幅度');                     % 纵坐标标注

axis([0 0.1 -1.1 1.1]);             % 横纵坐标范围设置

line([0,0.1],[0,0],'color','b','Linewidth',2);% 绘制一条从(0,0)(0.1,0)的蓝色实线,线宽为2

****************原信号******************

subplot(212);

plot(t,mt,'r-','Linewidth',2);      % 绘制原始基带信号

title('原始基带信号');              % 图标题标注

xlabel('t/时间');                   % 横坐标标注

ylabel('幅度');                     % 纵坐标标注

axis([0 0.1 -1.1 1.1]);             % 横纵坐标范围设置

line([0,0.1],[0,0],'color','b','Linewidth',2);% 绘制一条从(0,0)(0.1,0)的蓝色实线,线宽为2

%T2F.m文件,FFT功能

function [f,sf]= T2F(t,st)      % FFT

% dt = t(2)-t(1);

T=t(end);                       % 输入信号的时间最大值为T

df = 1/T;                       % dt=1/fs; 时间采样间隔,采样频率的倒数;

                                % N=T/dt;  采样点个数,总时长除以采样间隔

                                % 两式联合推导 df = 1/T

N = length(st);                 % 输入信号时间的长度为采样点数

f=-N/2*df : df : N/2 * df-df;   % 频率分布

sf = fft(st);                   % FFT

sf = T/N * fftshift(sf);        % 最后输出,将0-fs频谱搬移到-fs/2-fs/2频谱

end

%F2T.m文件,IFFT功能

function[t,st]=F2T(f,Sf)        % IFFT

df=f(2)-f(1);                   % 频率间隔

fmax=(f(end)-f(1)+df);          % 最大频率减最低频率加上频率间隔为带宽

dt=1/fmax;                      % 采样间隔

N=length(f);                    % 采样点数

t=[0:N-1] * dt;                 % 时间分布

Sf=fftshift(Sf);                % 0-fs频谱搬移到-fs/2-fs/2频谱

st=fmax * ifft(Sf);             % IFFT

st=real(st);                    % 取实部

end

%lpf.m文件,低通滤波功能

function[t,st]=lpf(f,sf,B)          % 频率LPF

df=f(2)-f(1);                       % 频率间隔

fN=length(f);                       % 采样点数

ym=zeros(1,fN);                     % 生成1fN列的0向量

xm=floor(B/df);                     % 低频带宽频率除以间隔后的点数向下取整

xm_shift=[-xm:xm-1]+floor(fN/2);    % 因为前面做FFT0频率搬移到中心处,

                                    % 因此,低通低频频率相应地搬移fN/2,才是对应的频率点

ym(xm_shift)=1;                     % 低通通过频率处幅度为1,其余为0,相当于理想低通

yf=ym.* sf;                         % FFT信号的频谱和对应低频带宽处频率值为1的行向量相乘

[t,st]=F2T(f,yf);                   % IFFT

end

猜你喜欢

转载自blog.csdn.net/m0_68749671/article/details/131265250
今日推荐