信号处理趣学D9——教你仿真理解信号的调制和解调
信号的调制是一对信号的变换过程,信号输送中经常使用,下面小虎就来用MATLAB仿真理解一下这个过程。
信号的调制
调制(modulation)是指用测量信号去控制另一个作为载体的运输信号,让后者的某一参数(幅值、频率、相位和脉冲宽度等)按前者的值变化。调制的方法有幅值调制、角度调制和频率调制,调幅的话是在频域上的一个频移过程,下面的例子均匀幅值调制为例。
z
(
t
)
=
A
c
o
s
(
2
π
f
t
+
ϕ
)
z(t)=Acos(2\pi ft+\phi)
z(t)=Acos(2πft+ϕ)
x
m
(
t
)
=
x
(
t
)
z
(
t
)
=
A
x
(
t
)
o
s
(
2
π
f
t
+
ϕ
)
x_m(t)=x(t)z(t)=Ax(t)os(2\pi ft+\phi)
xm(t)=x(t)z(t)=Ax(t)os(2πft+ϕ)
信号的解调
解调(demodulation)是从已调制波(调幅波信号)中恢复原来的低频调制波(原始信号)的过程。幅值调制的解调是调幅波信号再乘一次(时域)载波信号,然后根据频移特性和时域上的图像特性得出。
仿真结果
待处理模拟信号为:
y
=
s
i
n
(
20
π
t
)
y=sin(20\pi t)
y=sin(20πt)
下面一组图中,从左到右、上到下依次是原始信号、载波、调幅波、解调波的时域图像。
利用MATLAB函数库的函数进行调制和解调:
- 可以看到,信号经过正确的调制和解调,能够还原出原来信号的幅值、频率和相位的信息。
- 上述例子是解调使用的是同步解调的方法,输入和输出相位是一样的,但是实际使用中往往不用。
- 载波的频率会比调制波的高,原因是高频率的信号更容易输送,信号还原程度高。
代码分析
参数设置
采样频率是44100,采样间隔1/44100。调质波为:
y
=
s
i
n
(
20
π
t
)
y=sin(20\pi t)
y=sin(20πt)
Fs=44100;
dt=1.0/Fs;
T=1; N=T/dt;
t=[0:N-1]/N;
x1=sin(2*pi*10*t);
调制
用MATLAB的ammod函数。其中Fc是载波频率,Fs是采样频率。
Y = ammod(X,Fc,Fs,INI_PHASE,CARRAMP)
本例子代码:
figure;
subplot(1,2,1)
x5=ammod(x1,300,Fs,0);
plot(t,x5);
axis([0,0.2,-1.2,1.2]);
解调
用MATLAB的amdemod函数。其中Fc是载波频率,Fs是采样频率。
Z = amdemod(Y,Fc,Fs,INI_PHASE,CARRAMP)
本例子代码:
subplot(1,2,2)
x6=amdemod(x5,300,Fs,0);
plot(t,x6);
axis([0,0.2,-1.2,1.2]);
完整代码
Fs=44100;
dt=1.0/Fs;
T=1; N=T/dt;
t=[0:N-1]/N;
x1=sin(2*pi*10*t);
figure;
subplot(1,2,1)
x5=ammod(x1,300,Fs,0);
plot(t,x5);
axis([0,0.2,-1.2,1.2]);
subplot(1,2,2)
x6=amdemod(x5,300,Fs,0);
plot(t,x6);
axis([0,0.2,-1.2,1.2]);
参考资料
[1] 张春华等,工程测试技术基础(第二版),华中科技大学出版社
[2] 何岭松等,中国大学MOOC——工程测试技术基础