• 大小: 5KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: Matlab
  • 标签: AM  调制解调  matlab  

资源简介

这是关于AM调制解调系统仿真用matlab实现的代码,加了噪声的,写的子函数也都在压缩包里面。

资源截图

代码片段和文件信息

% AM调制解调实验
clear all;
close all;
%% ----------------系统仿真参数
A=3; %直流分量
fc=250; %载波频率(Hz)
t0=0.15;%信号时长
snr=25; %解调器输入信噪比dB
dt=0.001;% 系统时域采样间隔
fs=1/dt;%系统采样频率
df = 0.2; %所需的频率分辨率
t=0:dt:t0;
Lt=length(t);%仿真过程中,信号长度
snr_lin = 10^(snr/10); %信噪比
%% --------------------------figure(1)------------------------
% -------------------------------画出调制信号波形及频谱
% 产生模拟调制信号
m=[ones(1t0/(3*dt))-2*ones(1t0/(3*dt))zeros(1t0/(3*dt)+1)];
L=2*min(m);
R=2*max(abs(m))+A;

disp(‘画出调制信号波形及频谱‘);
pause
clf
figure(1)
subplot(321);
plot(tm(1:length(t)));% 画出调制信号波形
axis([0 t0 -R/2 R/2]);
xlabel(‘t‘);
ylabel(‘调制信号‘);

subplot(322);
[Mmdf1f]=T2F(mdtdffs);%求出调制信号频谱
[Bw_eq]=signalband(Mdft0);%求出信号等效带宽
f_start=fc-Bw_eq;
f_cutoff=fc+Bw_eq;
plot(ffftshift(abs(M)));% 画出调制信号频谱
xlabel(‘f‘);
ylabel(‘调制信号频谱‘);

% -------------------------------画出载波信号波形及频谱
disp(‘画出载波及频谱‘);
pause
subplot(323);
c=cos(2*pi*fc*t);%载波
plot(tc);
axis([0 t0 -1.2 1.2]);
xlabel(‘t‘);
ylabel(‘载波‘);

subplot(324)% 载波频谱
[Ccdf1f]=T2F(cdtdffs);
plot(ffftshift(abs(C)))% 画出载波频谱
xlabel(‘f‘);
ylabel(‘载波频谱‘);

% -------------------------------画出已调信号波形及频谱
disp(‘画出已调信号及其频谱‘);
pause
subplot(325)% 画已调信号
u=(A+m(1:Lt)).*c(1:Lt);%已调信号
plot(tu);% 画出已调信号波形
axis([0 t0 -R R]);
xlabel(‘t‘);
ylabel(‘已调信号‘);

subplot(326);
[Uudf1f]=T2F(udtdffs);
plot(ffftshift(abs(U)))% 画出已调信号频谱
xlabel(‘f‘);
ylabel(‘已调信号频谱‘);
%-------------------------该图为figure(1)--------------------------%
%% --------------------------figure(2)------------------------
% -----------------------------将已调信号送入信道画出信道高斯白噪声波形及频谱
%先根据所给信噪比产生高斯白噪声
signal_power = power_x(u(1:Lt)); %已调信号的平均功率
noise_power=(signal_power*fs)/(snr_lin*(2* Bw_eq));%求出噪声方差(噪声均值为0)
noise_std = sqrt(noise_power); %噪声标准偏差
noise = noise_std*randn(1Lt); %产生噪声

disp(‘画出信道高斯白噪声波形及频谱‘);%此时,噪声已实现,为确知信号,可求其频谱
pause
figure(2)
subplot(321);
plot(tnoise);% 画出噪声波形
axis([0 t0 -R R]);
xlabel(‘t‘);
ylabel(‘噪声信号‘);

subplot(322);
[noisefnoisedf1f]=T2F(noisedtdffs);%噪声频谱
plot(ffftshift(abs(noisef)))% 画出噪声频谱
xlabel(‘f‘);
ylabel(‘噪声频谱‘);

% -----------------------------画出叠加了噪声的已调信号波形及频谱
disp(‘画出叠加了噪声的已调信号波形及频谱‘);
pause
sam=u(1:Lt)+noise(1:Lt);%叠加了噪声的已调信号
subplot(323); %画出叠加了噪声的已调信号波形
plot(tsam);
axis([0 t0 -R R]);
xlabel(‘t‘);
ylabel(‘信道中的信号‘);

subplot(324);
[samfsamdf1f]=T2F(samdtdffs);%求出叠加了噪声的已调信号频谱
plot(ffftshift(abs(samf)))% 画出叠加了噪声的已调信号频谱
xlabel(‘f‘);
ylabel(‘信道中信号频谱‘);

% -----------------------------画出带通滤波器
disp(‘画出带通滤波器‘);
pause
[Hf]=bp_f(length(sam)f_startf_cutoffdf1fs1);%求带通滤波器
subplot(326);
plot(ffftshift(abs(H)))% 画出带通滤波器
xlabel(‘f‘);
ylabel(‘带通滤波器‘);
%-------------------------该图为figure(2)-------------------------%
%% --------------------------figure(3)------------------------
% -----------------------------经过带通滤波器后的信号及其频谱
disp(‘画出经过理想带通滤波器后的信号及其频谱‘);
pause
DEM = H.*samf; %滤波器输出的频谱
[dem]=F2T(DEMfs);%滤波器的输出波形
figure(3)
subplot(321)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-06-02 14:04  AM\
     文件         314  2017-09-01 13:57  AM\F2T.m
     文件         722  2018-06-02 14:00  AM\T2F.m
     文件        6150  2018-06-03 22:46  AM\am.m
     文件         632  2017-09-01 13:58  AM\bp_f.m
     文件         259  2018-06-02 14:03  AM\fftseq.m
     文件         536  2017-09-01 13:58  AM\lp_f.m
     文件          82  2017-09-01 13:56  AM\power_x.m
     文件         233  2018-06-03 22:47  AM\signalband.m

评论

共有 条评论