MATLAB实现AM调制系统仿真(调制/相干解调/包络检波)

实现一:AM信号的调制与相干解调

一、实验要求:

1.绘制原始信号m(t)时域、频域波形;

      2.绘制发送信号sAM(t)时域、频域波形.

      3.绘制接收信号rAM(t)时域、频域波形;

       4.绘制相乘器后信号rAM_C(t)时域、频域波形;

      5.绘制LPF后信号yAM(t)时域、频域波形;

       6.绘制解调器输出信号的时域、频域波形。

 二、代码实现

clear all;
clc;
fn=5;
fs=1000;
Ts=1/fs;
n=0:999;
t=n*Ts;
fc=100;
y=sin(2*pi*fn*t);
zb=cos(2*pi*fc*t); %载波
%原始信号波形,时频域
figure(1);
subplot(3,2,1);
plot(t,y);
title('原始信号时域波形');
N=1000;
yf=fft(y,N);
yf=abs(yf);
f=fs*(0:N/2-1)/N;
subplot(3,2,2);
plot(f,yf(1:N/2));
title('原始信号频域波形');

A=2;                      %直流偏量
yam=(y+A).*zb;

%已调信号sam的时频域
subplot(3,2,3);
plot(t,yam);
title('已调信号时域波形');
N=1000;
yf=fft(yam,N);
yf=abs(yf);
f=fs*(0:N/2-1)/N;
subplot(3,2,4);
plot(f,yf(1:N/2));
title('已调信号频域波形');
%叠加加性高斯白噪声
AWGN=randn(1,1000);
ram=yam+AWGN;
%叠加加性高斯白噪声的时频谱
subplot(3,2,5);
plot(t,ram);
title('叠加高斯白噪声后的时域波形');
N=1000;
yf=fft(ram,N);
yf=abs(yf);
f=fs*(0:N/2-1)/N;
subplot(3,2,6);
plot(f,yf(1:N/2));
title('叠加高斯白噪声后的频域波形');

%滤波器设计与使用
%通带频率范围为[f_low, f_high](Hz)。    
% 参数设置  
fs = 1000; % 采样率  
f_low = 95; % 通带低频  
f_high = 105; % 通带高频  
N = 4; % 滤波器阶数  
Wn = [f_low/(fs/2) f_high/(fs/2)]; % 归一化通带频率  
  
% 设计带通滤波器  
[b, a] = butter(N, Wn, 'bandpass');  
  
% 应用滤波器到信号s上  
filtered_ram = filter(b, a, ram);  
  
% 现在filtered_ram就是经过带通滤波器处理后的信号

N=1000;
yf=fft(filtered_ram,N);
yf=abs(yf);
f=fs*(0:N/2-1)/N;
% subplot(3,2,1);
% plot(t,filtered_ram);
% title('已过BPF信号的时域波形');

% subplot(3,2,2);
% plot(f,yf(1:N/2));
% title('已过BPF信号的频域波形');

ramc=filtered_ram.*zb*2;
figure(2);
subplot(3,2,1);
plot(t,ramc);
title('乘法器后的时域波形');

N=1000;
yf=fft(ramc,N);
yf=abs(yf);
f=fs*(0:N/2-1)/N;
subplot(3,2,2);
plot(f,yf(1:N/2));
title('乘法器后的频域波形');

%设计低通滤波器 
% 其截止频率为f_cut(Hz)。  
  
% 参数设置  
fs = 1000; % 采样率  
f_cut = 7.5; % 截止频率  
N = 4; % 滤波器阶数  
Wn = f_cut / (fs/2); % 归一化截止频率  
  
% 设计低通滤波器  
[b, a] = butter(N, Wn, 'low');  
% 应用滤波器到信号s上  
yam = filter(b, a, ramc);  
  
% 现在yam就是经过低通滤波器处理后的信号

subplot(3,2,3);
plot(t,yam);
title('过LPF后的时域波形');
N=1000;
yf=fft(yam,N);
yf=abs(yf);
f=fs*(0:N/2-1)/N;
subplot(3,2,4);
plot(f,yf(1:N/2));
title('过LPF后的频域波形');

mt2=yam-A;
subplot(3,2,5);
plot(t,mt2);
title('解调器输出的时域波形');
N=1000;
yf=fft(mt2,N);
yf=abs(yf);
f=fs*(0:N/2-1)/N;
subplot(3,2,6);
plot(f,yf(1:N/2));
title('解调器输出的频域波形');

三、实验结果

 

实现二:AM信号的调制与包络检波

一、实验要求

7.绘制包络检波后信号rAM_N(t)时域、频域波形;

      8.绘制LPF后信号yAM(t)时域、频域波形;

      9.绘制解调器输出信号时域、频域波形。

二、代码实现

clear all;
clc;
fn=5;
fs=1000;
Ts=1/fs;
n=0:999;
t=n*Ts;
fc=100;
y=sin(2*pi*fn*t);
zb=cos(2*pi*fc*t);
N=1000;
yf=fft(y,N);
yf=abs(yf);
f=fs*(0:N/2-1)/N;

A=2;%直流偏量
yam=(y+A).*zb;


AWGN=randn(1,1000);
ram=yam+AWGN;

N=1000;
yf=fft(ram,N);
yf=abs(yf);
f=fs*(0:N/2-1)/N;


%滤波器设计与使用 
% 其通带频率范围为[f_low, f_high](Hz)。    
% 参数设置  
fs = 1000; % 采样率  
f_low = 95; % 通带低频  
f_high = 105; % 通带高频  
N = 4; % 滤波器阶数  
Wn = [f_low/(fs/2) f_high/(fs/2)]; % 归一化通带频率  
  
% 设计带通滤波器  
[b, a] = butter(N, Wn, 'bandpass');  
  
% 应用滤波器到信号s上  
filtered_ram = filter(b, a, ram);  
  
% 现在filtered_ram就是经过带通滤波器处理后的信号

N=1000;
yf=fft(filtered_ram,N);
yf=abs(yf);
f=fs*(0:N/2-1)/N;
figure(1);
subplot(2,1,1);
plot(t,filtered_ram);
title('已过BPF信号的时域波形');

subplot(2,1,2);
plot(f,yf(1:N/2));
title('已过BPF信号的频域波形');


%包络检波
% 计算解析信号  
y = hilbert(filtered_ram);  
  
% 计算包络  
ram_n = abs(y);  
  
figure(2);   
subplot(3,2,1);  
plot(t, ram_n);  
title('包络');  
xlabel('时间');  
ylabel('幅度');

N=1000;
yf=fft(ram_n,N);
yf=abs(yf);
f=fs*(0:N/2-1)/N;
subplot(3,2,2);
plot(f,yf(1:N/2));
title('包络频谱');

% 参数设置  
fs = 1000; % 采样率  
f_cut = 7.5; % 截止频率  
N = 4; % 滤波器阶数  
Wn = f_cut / (fs/2); % 归一化截止频率  
  
% 设计低通滤波器  
[b, a] = butter(N, Wn, 'low');  
  
% 假设你有一个信号s  
% s = ...; % 这里应该是你的信号  
  
% 应用滤波器到信号s上  
yam = filter(b, a, ram_n);  
  
% 现在yam就是经过低通滤波器处理后的信号

subplot(3,2,3);
plot(t,yam);
title('过LPF后的时域波形');
N=1000;
yf=fft(yam,N);
yf=abs(yf);
f=fs*(0:N/2-1)/N;
subplot(3,2,4);
plot(f,yf(1:N/2));
title('过LPF后的频域波形');

mt2=yam-A;
subplot(3,2,5);
plot(t,mt2);
title('解调器输出的时域波形');
N=1000;
yf=fft(mt2,N);
yf=abs(yf);
f=fs*(0:N/2-1)/N;
subplot(3,2,6);
plot(f,yf(1:N/2));
title('解调器输出的频域波形');

三、实验结果

 

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值