首页/文章/ 详情

通信原理与matlab仿真 第一章 BPSK调制解调器(4)

5年前浏览4467

在视频课程里面,我提到了一些编程技巧!

同学们还有印象吗?

比如:循环仿真误码的时候要注释掉某些语句。

画图语句是肯定要注释掉的。

某些参数的显示语句也可以注释掉。

这样可以节省仿真时间。

接着看程序吧。

%%%%%%%%      接收机      %%%%%%%%      

%%%%%% 解调器

%%% 载波恢复

% 生成本地载波

rcos_msg_source_noise = rcos_msg_source_carrier_noise.*cos(2*pi*fre_carrier.*time/fre_sample);

% 滤波高频,保留基带信号

LPF_fir128 = fir1(128,0.2);  %  生成低通滤波器

rcos_msg_source_LP = filter( LPF_fir128, 1, rcos_msg_source_noise );

% 延时64个采样点输出。

% figure(5)

% plot(rcos_msg_source_LP)

% title('时域波形')

% figure(6)

% plot(abs(fft(rcos_msg_source_LP)))

% title('频域波形')

% 生成匹配滤波器

rolloff_factor = 0.5;  % 滚降因子

rcos_fir = rcosdesign(rolloff_factor, 6, symbol_sample_rate);         

%  生成匹配滤波器 a square-root raised cosine FIR filter with rolloff factor 

% 滤波

% filter

rcos_msg_source_MF = filter( rcos_fir, 1, rcos_msg_source_LP );

% figure(7)

% plot(rcos_msg_source_MF,'-*')

% title('时域波形')

% figure(8)

% plot(abs(fft(rcos_msg_source_MF)))

% title('频域波形')

%%% 最佳采样点

% 选取最佳采样点,一个符号取一个点进行判决

decision_site = 160; % (96+128+96)/2 = 160  三个滤波器延迟值

rcos_msg_source_MF_option = rcos_msg_source_MF(decision_site: symbol_sample_rate : end);

% 涉及三个滤波器,固含有三个滤波器延迟累加。

%%% 判决

msg_source_MF_option_sign = sign(rcos_msg_source_MF_option);

% figure(9)

% plot(rcos_msg_source_MF_option,'-*')

% title('时域波形')

%%%%%%%%% 解码器

% bchdecode  % BCH译码

%%%%%%%%         信宿       %%%%%%%%  

%%% 误码性能比对

% [err_number,bit_err_ratio] = biterr(x,y) 

[err_number(i),bit_err_ratio(i)] = biterr(msg_source(1:length(rcos_msg_source_MF_option)), (msg_source_MF_option_sign + 1)/2);

end  % for i

%%%%%     仿真结果       %%%%%%%

%%%%%%    结论   %%%%%%%% 

% 完成了BPSK调制解调器的仿真。

% 没有包含编译码内容。

% 2019-4-23

BPSK调制解调器是仿真知识的重要基础!

程序涉及到的每个知识点都要搞清楚,

这样才能学习更深的知识!

未完,待续!

MATLAB电子
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2019-04-26
最近编辑:5年前
算法工匠
博士后 | 高级工程师 诚信做事 认真讲课 传播知识
获赞 382粉丝 2475文章 242课程 38
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈