利用matlab实现AM调制解调

基本原理

幅度调制(AM)是用调制信号去控制高频载波的振幅,使之随调制信号作线性变化的过程。

 

 

上图给出了AM调制解调的原理模型,从图中可知发送信号m(t)和直流分量A0后乘以高频载波cos(wct)后即可形成AM调制信号。

具体时域波形为

 

对应的频谱波形为

 

在解调端信道输出信号SAM(t)乘以跟发送端同频同相的高频载波cos(wct)后,经过一个低通滤波器提取低频分量之后,得到的信号再扩大为原来的两倍在减去一个直流分量A0(因为经过低通滤波器之后,幅度会变为原来的一半),最后即可得到原始的基带信号。理论推导如下:

送入解调器的AM表达式如下:

 

与同频同相的相干载波相乘后得到的信号:

 

经历低通滤波器滤除高频信号后得

 

将上述经过低通滤波器之后信号乘以2再减去一个直流分量A0即可得到解调信号Sd(t)

 

利用代码实现AM调制解调

clc
close
A0=1;%直流分量
fc=1000;%载波频率
fs=5000;
t0=1;
t=0:1/fs:t0-1/fs;
x=2*cos(2*pi*100*t)+3*cos(2*pi*500*t);%原始信号
y1=cos(2*pi*fc*t);%载波
N=length(t);
X=fft(x);
Y1=fft(y1);
w=(-N/2:1:N/2-1)./t0;
figure(1)
subplot(211);plot(t,x);title('原始信号的时域波形');
subplot(212);plot(w,(2/N)*abs(fftshift(fft(x))));title('原始信号的频域波形');
figure(2)
subplot(211);plot(t,y1);title('载波信号的时域波形');
subplot(212);plot(w,(2/N)*abs(fftshift(fft(y1))));title('载波信号的频域波形');
y=(A0+x).*y1;%调制信号
Y=fft(y);
figure(3)
subplot(211);plot(t,y);title('调制信号的时域波形');
subplot(212);plot(w,(2/N)*abs(fftshift(Y)));title('调制信号的频域波形');

%解调部分
y2=y.*y1;%相干解调
Y2=fft(y2);
figure(4)
subplot(211);plot(t,y2);title('相干解调之后的时域波形');
subplot(212);plot(w,(2/N)*abs(fftshift(Y2)));title('相干解调之后的频域波形');
y2_filter=filter(hm,y2);%经过低通滤波器
y3=2*(y2_filter)-A0;
y3_fft=fft(y3);
figure(5)
subplot(211);plot(t,y3);title('解调信号的时域波形');
subplot(212);plot(w,(2/N)*abs(fftshift(y3_fft)));title('解调信号的频域波形');

hm.m

function Hd = hm
%HM Returns a discrete-time filter object.

% MATLAB Code
% Generated by MATLAB(R) 9.6 and Signal Processing Toolbox 8.2.
% Generated on: 12-May-2022 10:30:18

% FIR Window Lowpass filter designed using the FIR1 function.

% All frequency values are in Hz.
Fs = 2000;  % Sampling Frequency

N    = 200;       % Order
Fc   = 550;      % Cutoff Frequency
flag = 'scale';  % Sampling Flag

% Create the window vector for the design algorithm.
win = hamming(N+1);

% Calculate the coefficients using the FIR1 function.
b  = fir1(N, Fc/(Fs/2), 'low', win, flag);
Hd = dfilt.dffir(b);

% [EOF]
结果如下:

 

 

 

 

 

 

  • 12
    点赞
  • 199
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值