bpskModulator = comm.BPSKModulator;bpskDemodulator = comm.BPSKDemodulator;errorRate = comm.ErrorRate;EsNo = 5;for counter = 1:100 txData = randi([0 1],500,1); % Generate data modSig = bpskModulator(txData); % Modulate rxSig = awgn(modSig,EsNo); % Pass through AWGN rxData = bpskDemodulator(rxSig); % Demodulate errorStats = errorRate(txData,rxData); % Collect error statsendfprintf('Error rate = %f\nNumber of errors = %d\n', ... errorStats(1), errorStats(2))% Create binary data symbolsdata = randi([0 1],1000,1);% Create a BPSK modulator System objectbpskModulator = comm.BPSKModulator;bpskDemodulator = comm.BPSKDemodulator;% Change the phase offset to pi/16bpskModulator.PhaseOffset = pi/16;% Modulate and plot the datamodData = bpskModulator(data);scatterplot(modData)% add noiseSig_awgn = awgn(modData, EsNo 1);% Demodulate the datademodData = bpskDemodulator(Sig_awgn);% compare datafigureplot(demodData-data)err_num = sum(abs(demodData-data))aaa = 1;
在仿真软件中,实现这个BPSK调制解调器的过程可以很简单!涉及的理论也简单!但细细看来,发现涉及的内容非常的多!星座图、高斯白噪声、采样率、信噪比、误码率、dB、蒙特卡罗方法、同步等知识都涉及了。这些理论知识涉及《通信原理》和《数字信号处理》,大家需要反复的看书,直到弄懂为止。仿真程序可以加深大家对概念的理解,但深入学习理论肯定是第一步!
原理、代码、案例的讲解风格必然会让大家觉得通信理论不再枯燥,不再虚无飘渺!找到好资料!让跨时空的作者带你飞!(扫码试看)
MATLAB通信工程师的必修课 第一章 调制解调器仿真 第一讲 BPSK
很多案例可以参考也值得参考!在算法工匠写的文章中,很多内容都是实际产品中涉及的仿真代码。看看GPS接收机的相关文章吧,这就是一个典型案例。讲解的顺序呢?依旧是原理仿真慢慢的过渡到产品级的代码仿真!用实际的采样数据作为仿真的对象,那么写出的代码自然具有实用性。这些概念在视频课程《MATLAB通信工程师的必修课 第四章 信号捕获和同步 第三部分》中也有涉及。
MATLAB通信工程师的必修课 第四章 信号捕获和同步 第三部分