继续给出程序中相关函数的内容,上次给到了M序列生成函数。这次来QPSK调制和解调的函数。
function [iout,qout]=qpskmod(paradata,para,nd,ml)
%****************** variables *************************
% paradata : input data (para-by-nd matrix)
% iout :output Ich data
% qout :output Qch data
% para : Number of paralell channels
% nd : Number of data
% ml : Number of modulation levels
% (QPSK ->2 16QAM -> 4)
% *****************************************************
paradata2=paradata.*2-1;
for jj=1:nd
isi = zeros(para,1);
isq = zeros(para,1);
for ii = 1 : m2
isi = isi + 2.^( m2 - ii ) .* paradata2((1:para),ii+count2);
isq = isq + 2.^( m2 - ii ) .* paradata2((1:para),m2+ii+count2);
iout((1:para),jj)=isi;
qout((1:para),jj)=isq;
count2=count2+ml;
再来解调的函数!
function [demodata]=qpskdemod(idata,qdata,para,nd,ml)
%****************** variables *************************
% idata :input Ich data
% qdata :input Qch data
% demodata: demodulated data (para-by-nd matrix)
% para : Number of paralell channels
% nd : Number of data
% ml : Number of modulation levels
% (QPSK ->2 16QAM -> 4)
% *****************************************************
demodata=zeros(para,ml*nd);
demodata((1:para),(1:ml:ml*nd-1))=idata((1:para),(1:nd))>=0;
demodata((1:para),(2:ml:ml*nd))=qdata((1:para),(1:nd))>=0;
还有两个函数下堂课讲,这样就能运行第一课给出的直扩主程序了。
未完,待续!
修订记录
介绍使用matlab仿真工具和其各种类型的算法,讲解高校涉及matlab的相关课程,免费提供通信类、导航类的产品级物理层算法、数据统计分析算法、图像处理算法、AI算法。义务为各高校的MATLAB学习社团和生物医学领域的科研人员做技术支持。
值得您关注!
希望同学们转发并且宣传,本人只会实实在在的教书育人。
算法工匠
讲解高校电子及通信相关专业的课程,交流人文历史及教育心得,介绍和推广信号处理算法、通信算法和大数据算法。帮助学生了解信号处理和通信涉及的仿真知识并介绍算法在实际工作中的运用。提供matlab仿真程序供交流使用。大数据算法侧重生物医学领域,义务帮助医务人员进行数据统计分析。
如果你觉得我是努力教学的老师,愿意看我的文章,愿意和我分享您的经验和建议,请扫描公众号的二维码,关注我。
介绍和推广matlab仿真的文章及源代码,介绍和共享相关资料。为各高校和研究机构的MATLAB学习爱好者提供技术支持,义务为生物医学领域的科研人员做数据分析。