资源简介
这是关于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_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
评论
共有 条评论