当前位置:文档之家› 基于matlab的am调制系统仿真

基于matlab的am调制系统仿真

基于matlab的am调制系统仿真
基于matlab的am调制系统仿真

目录

第一章概述 (1)

一课题内容 (1)

二设计目的 (1)

三设计要求 (1)

四开发工具 (1)

第二章系统理论设计 (2)

一振幅调制产生原理 (2)

二调幅电路方案分析 (2)

三信号解调思路 (3)

第三章 matlab仿真 (4)

一载波信号与调制信号分析 (4)

二设计FIR数字低通滤波器 (6)

三 AM解调 (9)

四结果分析 (15)

结束语 (15)

参考文献 (16)

第一章概述

一课题内容

1.设计AM信号实现的Matlab程序,输出调制信号、载波信号以及已调信号波形以及频谱图,并改变参数观察信号变化情况,进行实验分析。

2.设计AM信号解调实现的Matlab程序,输出并观察解调信号波形,分析实验现象。

二设计目的

1.掌握振幅调制和解调原理。

2.学会Matlab仿真软件在振幅调制和解调中的应用。

3.掌握参数设置方法和性能分析方法。

4.通过实验中波形的变换,学会分析实验现象。

三设计要求

利用Matlab软件进行振幅调制和解调程序设计,输出显示调制信号、载波信号以及已调信号波形,并输出显示三种信号频谱图。对产生波形进行分析,并通过参数的改变,观察波形变化,分析实验现象。

四开发工具

计算机、Matlab软件、相关资料

第二章 系统理论设计

一 振幅调制产生原理

所谓调制,就是在传送信号的一方将所要传送的信号附加在高频振荡上,再由天线发射出去。这里高频振荡波就是携带信号的运载工具,也叫载波。振幅调制,就是由调制信号去控制高频载波的振幅,直至随调制信号做线性变化。在线性调制系列中,最先应用的一种幅度调制是全调幅或常规调幅,简称为调幅(AM )。在频域中已调波频谱是基带调制信号频谱的线性位移;在时域中,已调波包络与调制信号波形呈线性关系。

设正弦载波为

)cos()(0?ω+=t A t c c

式中,A 为载波幅度;c ω为载波角频率;0?为载波初始相位(通常假设0?=0).

调制信号(基带信号)为)(t m 。根据调制的定义,振幅调制信号(已调信号)一般可以表示为

)cos()()(t t Am t s c m ω=

设调制信号)(t m 的频谱为)(ωM ,则已调信号)(t s m 的频谱)(ωm S :

)]()([2)(c c m M M A

S ωωωωω-++=

二 调幅电路方案分析

标准调幅波(AM )产生原理

调制信号是只来来自信源的调制信号(基带信号),这些信号可以是模拟的,亦可以是数字的。为首调制的高频振荡信号可称为载波,它可以是正弦波,亦可以是非正弦波(如周期性脉冲序列)。载波由高频信号源直接产生即可,然后经过高频功率放大器进行放大,作为调幅波的载波,调制信号由低频信号源直接产生,二者经过乘法器后即可产生双边带的调幅波。

设载波信号的表达式为t c ωcos ,调制信号的表达式为

t A t m m m ωcos )(= ,则调幅信号的表达式为

t t m A t s c AM ωcos )]([)(0+=

t

c ωcos )

(t m )

(t s AM 0A

图5.1 标准调幅波示意图

三信号解调思路

从高频已调信号中恢复出调制信号的过程称为解调(demodulation ),又称为检波(detection )。对于振幅调制信号,解调(demodulation )就是从它的幅度变化上提取调制信号的过程。解调(demodulation )是调制的逆过程。

可利用乘积型同步检波器实现振幅的解调,让已调信号与本地恢复载波信号相乘并通过低通滤波可获得解调信号。

第三章 matlab 仿真

一 载波信号与调制信号分析

% ======================载波信号===========================

t=-1:0.00001:1;

A0=10; %载波信号振幅 f=6000; %载波信号频率 w0=f*pi;

Uc=A0*cos(w0*t); %载波信号 figure(1);

subplot(2,1,1); plot(t,Uc);

title('载频信号波形'); axis([0,0.01,-15,15]); subplot(2,1,2);

Y1=fft(Uc); %对载波信号进行傅里叶变换 plot(abs(Y1));title('载波信号频谱'); axis([5800,6200,0,1000000]);

00.0010.0020.0030.0040.0050.0060.0070.0080.009

0.01

-10010载频信号波形

5800

58505900595060006050610061506200

05

10

5

载波信号频谱

图6.1载波信号

% ======================调制信号==============================

t=-1:0.00001:1;

A1=5; %调制信号振幅 f=6000; %载波信号频率 w0=f*pi;

mes=A1*cos(0.001*w0*t); %调制信号 subplot(2,1,1); plot(t,mes);

xlabel('t'),title('调制信号'); subplot(2,1,2);

Y2=fft(mes); % 对调制信号进行傅里叶变换 plot(abs(Y2));

title('调制信号频谱');

axis([198000,202000,0,1000000]);

-1-0.8

-0.6-0.4-0.2

00.20.40.60.81

-50

5

t

调制信号

1.98

1.985 1.99 1.9952

2.005 2.01 2.015 2.02x 10

5

05

10

5

调制信号频谱

如图6.2调制信号

% =======================AM 已调信号=========================

t=-1:0.00001:1;

A0=10; %载波信号振幅 A1=5; %调制信号振幅 A2=3; %已调信号振幅 f=3000; %载波信号频率

w0=2*f*pi;

m=0.15; %调制度

mes=A1*cos(0.001*w0*t); %消调制信号

Uam=A2*(1+m*mes).*cos((w0).*t); %AM 已调信号 subplot(2,1,1); plot(t,Uam); grid on;

title('AM 调制信号波形'); subplot(2,1,2);

Y3=fft(Uam); % 对AM 已调信号进行傅里叶变换 plot(abs(Y3)),grid;

title('AM 调制信号频谱'); axis([5950,6050,0,500000]);

-1

-0.8

-0.6-0.4-0.200.20.40.60.81

-10-50510AM 调制信号波形

5950

5960597059805990600060106020603060406050

01

23455

AM 调制信号频谱

如图6.3AM 已调信号

二 设计FIR 数字低通滤波器

FIR 滤波器比鞥采用间接法,常用的方法有窗函数法、频率采样法和切比雪夫等波纹逼近法。对于线性相位滤波器,经常采用FIR 滤波器。

对于数字高通、带通滤波器的设计,通用方法为双线性变换法。可以借助于模拟滤波器的频率转换设计一个所需类型的过渡模拟滤波器,再经过双线性变换将其转换策划那个所需的数字滤波器。具体设计步骤如下:

(1)确定所需类型数字滤波器的技术指标。

(2)将所需类型数字滤波器的边界频率转换成相应的模拟滤波器的边界频率,转换公式为Ω=2/T tan(0.5ω)

(3)将相应类型的模拟滤波器技术指标转换成模拟低通滤波器技术指标。

(4)设计模拟低通滤波器。

(5)通过频率变换将模拟低通转换成相应类型的过渡模拟滤波器。

(6)采用双线性变换法将相应类型的过渡模拟滤波器转换成所需类型的数字滤波器。

我们知道,脉冲响应不变法的主要缺点是会产生频谱混叠现象,使数字滤波器的频响偏离模拟滤波器的频响特性。为了克服之一缺点,可以采用双线性变换法。

下面我们介绍用窗函数法设计FIR滤波器的步骤。如下:

(1)根据对阻带衰减及过渡带的指标要求,选择串窗数类型(矩形窗、三角窗、汉宁窗、哈明窗、凯塞窗等),并估计窗口长度N。先按照阻带衰减选择窗函数类型。原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣的窗函数。(2)构造希望逼近的频率响应函数。

(3)计算h(n).。

(4)加窗得到设计结果。

接下来,我们根据语音信号的特点给出有关滤波器的技术指标:

低通滤波器的性能指标:

通带边界频率fp=300Hz,阻带截止频率fc=320Hz,阻带最小衰减As=100db , 通带最大衰减Ap=1dB

在Matlab中,可以利用函数fir1设计FIR滤波器,利用函数butter,cheby1和ellip设计IIR滤波器,利用Matlab中的函数freqz画出各步步器的频率响应。hn=fir1(M,wc,window),可以指定窗函数向量window。如果缺省window 参数,则fir1默认为哈明窗。其中可选的窗函数有Rectangular Barlrtt Hamming Hann Blackman窗,其相应的都有实现函数。

MATLAB信号处理工具箱函数buttp buttor butter是巴特沃斯滤波器设计函数,其有5种调用格式,本课程设计中用到的是

[N,wc]=butter(N,wc,Rp,As,’s’),该格式用于计算巴特沃斯模拟滤波器的阶数N和3dB截止频率wc。

MATLAB信号处理工具箱函数cheblap,cheblord和cheeby1是切比雪夫I型滤波器设计函数。我们用到的是cheeby1函数,其调用格式如下:

[B,A]=cheby1(N,Rp,wpo,’ftypr’)

[B,A]=cheby1(N,Rp,wpo,’ftypr’,’s’)

函数butter,cheby1和ellip设计IIR滤波器时都是默认的双线性变换法,所以在设计滤波器时只需要代入相应的实现函数即可。下面我们将给出FIR数字滤波器的主要程序。

%=========================FIR低通滤波器======================= Ft=2000; %采样频率

fpts=[100 120]; %通带边界频率fp=100Hz,阻带截止频率fs=120Hz

mag=[1 0];

dev=[0.01 0.05]; %通带波动1%,阻带波动5%

[n21,wn21,beta,ftype]=kaiserord(fpts,mag,dev,Ft);%kaiserord估计采用凯塞窗设计的FIR 滤波器的参数

b21=fir1(n21,wn21,Kaiser(n21+1,beta)); %由fir1设计滤波器

[h,w]=freqz(b21,1); %得到频率响应

plot(w/pi,abs(h));

grid on

title('FIR低通滤波器');

00.10.20.30.40.50.60.70.80.91

0.2

0.4

0.6

0.8

1

1.2

1.4

FIR 低通滤波器

如图6.6 FIR 低通滤波器

三 AM 解调

%=========================AM 信号解调=======================

t=-1:0.00001:1;

A0=10; %载波信号振幅 A1=5; %调制信号振幅 A2=3; %已调信号振幅 f=3000; %载波信号频率 w0=2*f*pi;

m=0.15; %调制度

k=0.5 ; %DSB 前面的系数

mes=A1*cos(0.001*w0*t); %调制信号

Uam=A2*(1+m*mes).*cos((w0).*t); %AM 已调信号

Dam=Uam.*cos(w0*t); %对AM 调制信号进行解调 subplot(2,1,1); plot(t,Dam); grid on;

title('滤波前AM 解调信号波形'); subplot(2,1,2);

Y5=fft(Dam); % 对AM 解调信号进行傅里叶变换 plot(abs(Y5)),grid;

title('滤波前AM 解调信号频谱'); axis([187960,188040,0,200000]);

-1-0.8

-0.6-0.4-0.200.20.40.60.81

02

46滤波前AM 解调信号波形

1.8796

1.8797 1.8798 1.8799 1.88 1.8801 1.8802 1.8803 1.8804x 10

5

00.5

11.525

滤波前AM 解调信号频谱

如图6.7 AM 解调信号

%=======================AM 解调信号FIR 滤波=================

t=-1:0.00001:1;

A0=10; %载波信号振幅 A1=5; %调制信号振幅

A2=3; %已调信号振幅 ************************************* f=6000; %载波信号频率 w0=f*pi;

m=0.15; %调制度 **************************************

Uc=A0.*cos(w0*t); %载波信号 subplot(5,2,1); plot(t,Uc);

title('载波信号'); axis([0,0.01,-15,15]);

T1=fft(Uc); %傅里叶变换 subplot(5,2,2); plot(abs(T1));

title('载波信号频谱');

axis([5800,6200,0,1000000]);

mes=A1*cos(0.001*w0*t); %调制信号

subplot(5,2,3);

plot(t,mes);

title('调制信号');

T2=fft(mes);

subplot(5,2,4);

plot(abs(T2));

title('调制信号频谱');

axis([198000,202000,0,2000000]);

Uam=A2*(1+m*mes).*cos((w0).*t); %AM 已调信号***************** subplot(5,2,5);

plot(t,Uam);

title('已调信号');

T3=fft(Uam);

subplot(5,2,6);

plot(abs(T3));

title('已调信号频谱');

axis([5950,6050,0,500000]);

Dam=Uam.*cos(w0*t); %对AM已调信号进行解调

subplot(5,2,7);

plot(t,Dam);

title('滤波前的AM解调信号波形');

T4=fft(Dam); %求AM信号的频谱

subplot(5,2,8);

plot(abs(T4));

title('滤波前的AM解调信号频谱');

axis([187960,188040,0,200000]);

z21=fftfilt(b21,Dam); %FIR低通滤波

subplot(5,2,9);

plot(t,z21,'r');

title('滤波后的AM解调信号波形');

T5=fft(z21); %求AM信号的频谱

subplot(5,2,10);

plot(abs(T5),'r');

title('滤波后的AM解调信号频谱');

axis([198000,202000,0,200000]);

载波信号

5

载波信号频谱

调制信号

1.98

1.985 1.99 1.9952

2.005 2.01 2.015 2.02x 10

5

6

调制信号频谱

-1-0.8-0.6-0.4-0.2

0.2

0.4

0.6

0.8

1

已调信号

595059605970598059906000601060206030604060505

已调信号频谱

滤波前的AM 解调信号波形

x 10

5

5

滤波前的AM 解调信号频谱

滤波后的AM 解调信号波形

x 10

5

5

滤波后的AM 解调信号频谱

如图6.9 AM 解调信号FIR 低通滤波

%=======================AM 解调信号FIR 滤波======加噪==========

t=-1:0.00001:1;

A0=10; %载波信号振幅 A1=5; %调制信号振幅

A2=3; %已调信号振幅 ************************************* f=6000; %载波信号频率 w0=f*pi;

m=0.15; %调制度 **************************************

Uc=A0.*cos(w0*t); %载波信号

subplot(5,2,1);

plot(t,Uc);

title('载波信号');

axis([0,0.01,-15,15]);

T1=fft(Uc); %傅里叶变换

subplot(5,2,2);

plot(abs(T1));

title('载波信号频谱');

axis([5800,6200,0,1000000]);

mes=A1*cos(0.001*w0*t); %调制信号

subplot(5,2,3);

plot(t,mes);

title('调制信号');

T2=fft(mes);

subplot(5,2,4);

plot(abs(T2));

title('调制信号频谱');

axis([198000,202000,0,2000000]);

Uam1=A2*(1+m*mes).*cos((w0).*t); %AM 已调信号***************** subplot(5,2,5);

plot(t,Uam1);

title('已调信号');

T3=fft(Uam1);

subplot(5,2,6);

plot(abs(T3));

title('已调信号频谱');

axis([5950,6050,0,500000]);

sn1=20; %信噪比

db1=A1^2/(2*(10^(sn1/10))); %计算对应噪声方差

n1=sqrt(db1)*randn(size(t)); %生成高斯白噪声

Uam=n1+Uam1;

Dam=Uam.*cos(w0*t); %对AM已调信号进行解调

subplot(5,2,7);

plot(t,Dam);

title('滤波前的AM解调信号波形');

T4=fft(Dam); %求AM信号的频谱

subplot(5,2,8); plot(abs(T4));

title('滤波前的AM 解调信号频谱'); axis([187960,188040,0,200000]);

z21=fftfilt(b21,Dam); %FIR 低通滤波 subplot(5,2,9);

plot(t,z21,'r');

title('滤波后的AM 解调信号波形');

T5=fft(z21); %求AM 信号的频谱 subplot(5,2,10); plot(abs(T5),'r');

title('滤波后的AM 解调信号频谱'); axis([198000,202000,0,200000]);

0.0050.01

载波信号

5800

5900

6000

6100

6200

0510x 10

5

载波信号频谱-1

-0.5

00.5

1-505调制信号

1.98

1.99

2

2.01

2.02x 10

5

012x 10

6

调制信号频谱-1

-0.5

0.5

1

-10010已调信号

5950

6000

6050

05x 10

5

已调信号频谱

-1

-0.5

0.5

1

-10010滤波前的AM 解调信号波形 1.87961.8798 1.88 1.88021.8804x 10

5

12x 10

5滤波前的AM 解调信号频谱-1

-0.5

0.5

1

-5

05滤波后的AM 解调信号波形 1.98

1.992

2.01 2.02x 10

5

012x 10

5

滤波后的AM 解调信号频谱

四结果分析

本设计圆满的完成了对AM信号实现调制与解调,与课题的要求十分相符;也较好的完成了对AM信号的时域分析,通过fft变换,得出了调制信号和解调信号的频谱图;在滤波这一部分,课题主要是从巴特沃斯滤波器入手来设计低通滤波器等入手,实现了预期的滤波效果。在设计FIR低通滤波器的时候,通带边界频率设定为载波信号频率Fp=f,阻带截止频率Fs=f+20,采样频率Ft=8f;在设计IIR低通滤波器的时候,通带边界频率设定为Fp=f-50,阻带截止频率Fs=f,采样频率Ft=10f。这样设定后,在改变载波信号频率的时候就有可能使滤波器无法进行正常的滤波,从而得不到正确的结果。载波频率f可以选的高一些,在设计的时候时间采样t的间隔就要大一些。

结束语

调制与解调技术是通信电子线路课程中一个重要的环节,也是实现通信必不可少的一门技术,也是通信专业学生必须掌握的一门技术。课题在这里是把要处理的信号当做一种特殊的信号,即一种“复杂向量”来看待。也就是说,课题更多的还是体现了数字信号处理技术。

从课题的中心来看,课题“基于Matlab的AM-DSB调制系统仿真”是希望将AM-DSB调制与解调技术应用于某一实际领域,这里就是指对信号进行调制。作为存储于计算机中的调制信号,其本身就是离散化了的向量,我们只需将这些离散的量提取出来,就可以对其进行处理了。这一过程的实现,用到了处理数字信号的强有力工具MATLAB。通过MATLAB里几个命令函数的调用,很轻易的在调制信号与载波信号的理论之间搭了一座桥。

课题的特色在于它将调制信号看作一个向量,于是就把调制信号数字化了。那么,就可以完全利用数字信号处理和通信电子线路的知识来解决AM—DSB调制问题。我们可以像给一般信号做频谱分析一样,来对调制信号做频谱分析,也可以较容易的用数字滤波器来对解调信号进行滤波处理。通过比较AM—DSB调制与解调前后,调制信号的频谱和时域,能明显的感觉到AM—DSB调制后AM—DSB解调与原始的调制信号有明显的不同,设计部同的滤波器得到的结果页是不同的,通过仿真可以看到FIR低通滤波器要比IIR低通滤波器要滤的好。由此可见,调制信

号主要分布在低频段,而载波信号主要分布在高频段。

参考文献

[1]樊昌信等. 通信原理(第6版)[M]. 国防工业出版社,2008.3

[2]John G. proakis等著, 刘树棠译. 现代通信系统(Matlab版)(第1版)[M], 西安交通大学出版社,

[3]唐向宏等著.MATLAB及在电子信息类课程中的应用,电子工业出版社,2008年6月

相关主题
文本预览
相关文档 最新文档