资源简介
这是关于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
相关资源
- 图像分割与腐蚀膨胀matlab代码
- 元胞自动机交通流模型代码matlab代码
- Buck-Boost充电Matlab仿真模型
- 霍夫圆边缘检测MATLAB
- matlab BP神经网络 0-9数字识别
- matlab椒盐高斯混合噪声滤波
- 背景差分 matlab 代码
- 最小二乘椭圆拟合matlab
- matlab 螺旋波模拟程序,基于FHN模型
- 清扫机器人路径规划算法仿真
- 基于MATLAB中级联分类器的人脸五官分
- 基于人工神经网络的信号预测在Matl
- 牛顿法matlab程序
- 共轭梯度法相关matlab程序
- 用matlab编写的小动画程序钟摆
- 基于改进遗传算法的路径规划MATLAB实
- RANSAC去除误匹配算法
- MATLAB图像二值化程序源代码
- 伪彩色 MATLAB代码
- (eWiley) Optimum Array Processing最优阵列
- Matlab 图像链码获取
- 任意大小矩阵的zigzag排序Matlab程序
- matlab图像拼接算法
- matlab求解共线方程公式以及生成等高
- 有关emd分解的matlab源程序
- 离散粒子群算法DPSOMatlab代码
- Hata传播模型Matlab代码
- 基于matlab的汉字识别系统和
- matlab批量读入excel表格,可以读文件和
- matlab画ROC曲线
评论
共有 条评论