資源簡介
此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算法
評論
共有 條評論