资源简介
此matlab代码,给出了现代通信原理中的常规双边带调幅(AM)的matlab仿真程序,给出了调制与解调的过程,并分析了在不同信噪比条件下的解调性能。
代码片段和文件信息
clc;
close all;
clear all;
% 20181120
% ----------------
% by 吕冬治
% -----------------
% 此程序用于现代通信原理中的
% 模拟线性调制部分双边带调幅中的
% 常规双边带调幅(AM)的仿真实现
% 仿真给出了调制与解调过程
% 并分析了在不同的信噪比的条件下
% 利用demod()函数实现解调的解调性能分析
%% 信号参数
fm = 1e3; % 调制信号频率
fc = 10e3; % 载波频率
fs = 200e3; % 采样频率
Am = 1; % 调制信号幅度
A = 2; % 直流分量
N = 1e3; % 采样点数
K = N-1;
n = 0:K;
f = n*fs/N; % 频率
t = 0:1/fs:K/fs; % 信号时长
wm = 2*pi*fm; % 调制信号角频率
wc = 2*pi*fc; % 载波信号角频率
thm = 0; % 起始相位
thc = 0;
%% 信号调制
yt = Am*cos(wm*t+thm); % 调制信号
fft_yt = abs(fft(yt));
figure(1)
subplot(211);
plot(tyt);
xlabel(‘时间/s‘);
ylabel(‘幅值‘);
grid on;
title(‘频率为100Hz的调制信号LV‘);
subplot(212);
plot(f(1:N/2)fft_yt(1:N/2));
xlabel(‘频率/Hz‘);
ylabel(‘幅值‘);
grid on;
title(‘调制信号频谱‘);
y0 = A+yt; % 带有直流分量的调制信号
yc = cos(2*pi*fc*n/fs); % 载波信号
fft_yc = abs(fft(yc));
figure(2)
subplot(211);
plot(tyc);
xlabel(‘时间/s‘);
ylabel(‘幅值‘);
grid on;
title(‘频率为10kHz的载波信号LV‘);
subplot(212);
plot(f(1:N/2)fft_yc(1:N/2));
xlabel(‘频率/Hz‘);
ylabel(‘幅值‘);
grid on;
title(‘载波信号频谱‘);
sig_AM = y0.*yc; % 已调制信号
fft_sig_AM = abs(fft(sig_AM));
figure(3)
subplot(211);
plot(tsig_AM);
xlabel(‘时间/s‘);
ylabel(‘幅值‘);
grid on;
title(‘已调制信号LV‘);
subplot(212);
plot(f(1:N/2)fft_sig_AM(1:N/2));
xlabel(‘频率/Hz‘);
ylabel(‘幅值‘);
grid on;
title(‘已调制信号频谱‘);
%% 解调
sig = demod(sig_AMfcfs‘am‘); % 对AM调制信号进行解调
fft_sig = abs(fft(sig)); % 对AM解调信号进行傅里叶变换
figure(4)
subplot(211);
plot(tsig);
xlabel(‘时间/s‘);
ylabel(‘幅值‘);
axis([0 5e-3 0 2]);
grid on;
title(‘AM解调信号波形LV‘);
subplot(212);
plot(f(1:N/2)fft_sig(1:N/2));
xlabel(‘频率/Hz‘);
ylabel(‘幅值‘);
axis([0 1e5 0 500]);
grid;
title(‘AM解调信号频谱‘);
%% 加噪声
sig_noise_AM = awgn(sig_AM3); % 添加信噪比为6dB的高斯白噪声
fft_sig_noise_AM = abs(fft(sig_noise_AM)); % 对AM解调信号进行傅里叶变换
sig_noise_AM2 = awgn(sig_AM18); % 添加信噪比为15dB的高斯白噪声
fft_sig_noise_AM2 = abs(fft(sig_noise_AM)); % 对AM解调信号进行傅里叶变换
figure(5)
subplot(211);
plot(tsig_noise_AM);
xlabel(‘时间/s‘);
ylabel(‘幅值‘);
grid on;
title(‘添加信噪比为3dB噪声后的AM信号LV‘);
subplot(212);
plot(f(1:N/2)fft_sig_noise_AM(1:N/2));
xlabel(‘频率/Hz‘);
ylabel(‘幅值‘);
grid;
title(‘添加信噪比为3dB噪声后的AM信号频谱‘);
figure(7)
subplot(211);
plot(tsig_noise_AM2);
xlabel(‘时间/s‘);
ylabel(‘幅值‘);
grid on;
title(‘添加信噪比为18dB噪声后的AM信号LV‘);
subplot(212);
plot(f(1:N/2)fft_sig_noise_AM2(1:N/2));
xlabel(‘频率/Hz‘);
ylabel(‘幅值‘);
grid;
title(‘添加信噪比为18dB噪声后的AM信号频谱‘);
%% 解调
sig_noise = demod(sig_noise_AMfcfs‘am‘); % 对AM调制信号进行解调
fft_sig_noise = abs(fft(sig_noise)); % 对AM解调信号进行傅里叶变换
sig_noise2 = demod(sig_noise_AM2fcfs‘am‘); % 对AM调制信号进行解调
fft_sig_noise2 = abs(fft(sig_noise2)); % 对AM解调信号进行傅里叶变换
figure(6)
subplot(211);
plot(tsig_noise);
xlabel(‘时间/s‘);
ylabel(‘幅值‘);
axis([0 5e-3 0 2]);
grid on;
title(‘添加3dB噪声后AM解调信号LV‘);
subplot(212);
plot(f(1:N/2)fft_sig_noise(1:N
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3883 2018-11-20 20:03 AM_LV4.m
----------- --------- ---------- ----- ----
3883 1
- 上一篇:偏最小二乘matlab代码
- 下一篇:steger算法
相关资源
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
- matlab空间桁架计算程序
- 基于MATLAB的图像特征点匹配和筛选
- DMA-TVP-FAVAR
- GPS信号的码捕获matlab代码.7z
- 一维光子晶体MATLAB仿真代码吸收率折
- newmark法源程序
- 传统关联成像、计算鬼成像matlab
- pri传统分选算法
- 摆动滚子推杆盘形凸轮设计
- 医学图像重建作业matlab源码
- Matlab实现混沌系统的控制
- 检测疲劳驾驶
- Matlab锁相环仿真-Phase Locked Loop.rar
评论
共有 条评论