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;
y
### AM包络检波MATLAB实现 AM包络检波是一种用于解调幅度调制信号的技术。通过检测已调波形的瞬时电平变化来恢复原始消息信号。下面是一个简单的AM包络检波算法在MATLAB中的实现例子[^1]。 ```matlab % 参数设置 Fs = 10e3; % 采样频率 (Hz) Fc = 500; % 载波频率 (Hz) Fm = 20; % 消息信号频率 (Hz) t = 0:1/Fs:0.1; % 时间向量 % 生成载波和消息信号 carrier = cos(2*pi*Fc*t); message = sin(2*pi*Fm*t); % 幅度调制过程 modulated_signal = (1 + message) .* carrier; % 添加噪声 noisy_modulated_signal = modulated_signal + 0.5 * randn(size(t)); % 绘制原始信号及其频谱 figure; subplot(3,1,1); plot(t, noisy_modulated_signal); title('Noisy Modulated Signal'); xlabel('Time (sec)'); ylabel('Amplitude'); % 使用低通滤波器进行包络检波 [b,a] = butter(4,Fm/(Fs/2)); % 设计四阶巴特沃斯低通滤波器 detected_message = abs(hilbert(noisy_modulated_signal)); demodulated_signal = filter(b,a,detected_message); % 显示结果 subplot(3,1,2); plot(t, detected_message); title('Detected Envelope'); xlabel('Time (sec)'); ylabel('Amplitude'); subplot(3,1,3); plot(t, demodulated_signal); title('Demodulated Message Signal'); xlabel('Time (sec)'); ylabel('Amplitude'); ``` 此代码片段展示了如何创建一个模拟环境来进行AM包络检波操作,并最终得到解调后的基带信号。这里采用了希尔伯特变换方法计算输入信号的解析形式,从而获得其绝对值作为估计出来的包络线;接着利用了一个适当设计好的低通滤波器去除高频分量并保留有用的音频部分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值