资源简介
此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算法
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论