0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅析位同步环路的matlab仿真

HOPE开放创新平台 来源:通信工程师专辑 作者:通信工程师专辑 2021-08-24 10:57 次阅读

理论内容基本在上一堂课讲清楚了,那么现在就该来看仿真程序了!通过程序来进一步的消化位定时算法

每一次写仿真程序都是一次完善的过程,仿真程序写的再好,它也会出现或多或少的问题,同时还要必须不断地向实际的情况去靠拢,这才是写程序最终的目的仿真,这是基础,最终能够和实际产品应用才是目的,所以我们在学仿真的时候,一定要清楚程序和实际产品最终还有多大的距离。因此,每次写程序都是一个长时间的不断修订的过程!大家如果走上算法研究的道路,务必记住:不断的完善仿真环境是一个漫长的过程,也是不断深化自己理解的过程!

先看看网络上的一段程序!

close all;clear all;

%%************** 程序主体 **************%%

N=20000; % 符号数

K=4; % 每个符号采4个样点

Ns=K*N; % 总的采样点数

w=[0.5,zeros(1,N-1)];

%环路滤波器输出寄存器,初值设为0.5

n=[0.7 zeros(1,Ns-1)];

%NCO寄存器,初值设为0.9

n_temp=[n(1),zeros(1,Ns-1)];

u=[0.6,zeros(1,2*N-1)];

%NCO输出的定时分数间隔寄存器,初值设为0.6

yI=zeros(1,2*N);

%I路内插后的输出数据

yQ=zeros(1,2*N);

%Q路内插后的输出数据

time_error=zeros(1,N);

%Gardner提取的时钟误差寄存器

i=1;

%用来表示Ts的时间序号,指示n,n_temp,nco,

k=1;

%用来表示Ti时间序号,指示u,yI,yQ

ms=1;

%用来指示T的时间序号,用来指示a,b以及w

strobe=zeros(1,Ns);

% 环路滤波器系数

c1=5.41*10^(-3);

c2=3.82*10^(-6);

%%% %%%PSK基带数据%%% %%%

bitstream=(randi(2,N,1)-1);

psk2=pskmod(bitstream,2);

xI=zeros(1,Ns);

xQ=zeros(1,Ns);

xI(18*N) = real(psk2);

%8倍插值,后面2倍抽取实现输入采样信号是输出插值符号速率的4倍

%即4个采样点确定一个插值

xQ(18*N) = imag(psk2);

% 截短后的根升余弦匹配滤波器

h1 = rcosfir(0.8,[-8,8],4,1,'sqrt');

aI1 = conv(xI,h1);

bQ1 = conv(xQ,h1);

L = length(aI1);

%仿真输入数据

aI = [aI1(22L),0,0]; %2倍抽取

bQ = [bQ1(22L),0,0];

%%%%%%% Gardner算法

ns=length(aI)-2;

while(i

n_temp(i+1) = n(i)-w(ms);

if(n_temp(i+1)>0)

n(i+1)=n_temp(i+1);

else

n(i+1)=mod(n_temp(i+1),1);

% 内插滤波器

FI1 = 0.5*aI(i+2)-0.5*aI(i+1)-0.5*aI(i)+0.5*aI(i-1);

FI2 = 1.5*aI(i+1)-0.5*aI(i+2)-0.5*aI(i)-0.5*aI(i-1);

FI3 = aI(i);

yI(k) = (FI1*u(k)+FI2)*u(k)+FI3;

FQ1 = 0.5*bQ(i+2)-0.5*bQ(i+1)-0.5*bQ(i)+0.5*bQ(i-1);

FQ2 = 1.5*bQ(i+1)-0.5*bQ(i+2)-0.5*bQ(i)-0.5*bQ(i-1);

FQ3 = bQ(i);

yQ(k) = (FQ1*u(k)+FQ2)*u(k)+FQ3;

strobe(k) = mod(k,2);

% 时钟误差提取模块

if(strobe(k)==0)

% 每个符号计算一次时钟误差

if(k>2)

time_error(ms) = yI(k-1)*(yI(k)-yI(k-2))+yQ(k-1)*(yQ(k)-yQ(k-2));

else

time_error(ms) = (yI(k-1)*yI(k)+yQ(k-1)*yQ(k));

end

%环路滤波器,每个数据符号计算一次环路滤波器输出

if(ms>1)

w(ms+1)=w(ms)+c1*(time_error(ms)-time_error(ms-1))+c2*time_error(ms);

else

w(ms+1)=w(ms)+c1*time_error(ms)+c2*time_error(ms);

end

ms=ms+1;

end

k=k+1;

u(k)=n(i)/w(ms);

end

i=i+1;

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 滤波器
    +关注

    关注

    158

    文章

    7328

    浏览量

    174768
  • 数据
    +关注

    关注

    8

    文章

    6511

    浏览量

    87587
  • 基带
    +关注

    关注

    4

    文章

    156

    浏览量

    30566
  • PSK
    PSK
    +关注

    关注

    1

    文章

    25

    浏览量

    20898
  • 仿真程序
    +关注

    关注

    0

    文章

    37

    浏览量

    10039

原文标题:大学毕业设计一席谈之二十七 位同步环路的matlab仿真(2)

文章出处:【微信号:haierhope,微信公众号:HOPE开放创新平台】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    同步电机模型的MATLAB仿真

    同步电机模型的MATLAB仿真同步电机模型的MATLAB仿真
    发表于 05-24 22:09

    现代永磁同步电机控制原理及MATLAB仿真(附完整版仿真模型)

    `《现代永磁同步电机控制原理及MATLAB仿真》,该书是2016年刚出版的永磁同步电机控制书籍,讲解的非常详细,尤其是对于初学者很受用,主要是SVPWM控制,并附带详细的
    发表于 03-05 12:02

    matlab励磁系统接不了,基于MATLAB同步发电机励磁系统仿真

    基于MATLAB同步发电机励磁系统仿真,发电机matlab仿真,同步发电机励磁系统,
    发表于 06-30 06:05

    现代永磁同步电机控制原理及MATLAB仿真精选资料分享

    现代永磁同步电机控制原理及MATLAB仿真,本读书笔记主要把《现代永磁控制电机原理及MATLAB仿真》书中关于电控算法的介绍扣出来,主要是P
    发表于 07-09 06:58

    永磁同步电机控制原理及MATLAB仿真

    【实例简介】现代永磁同步电机控制原理及MATLAB仿真__袁雷编著里的随书附赠的程序【实例截图】【核心代码】随书仿真模型├── Chap1│ ├── Chap2
    发表于 08-27 08:12

    同步电机模型的matlab仿真

    同步电机模型的matlab仿真-终结版毕业设计(论文)??题目同步电机模型的MATLAB仿真
    发表于 09-03 06:00

    同步电机模型的MATLAB仿真的设计

    同步电机模型的MATLAB仿真的设计.doc》由会员分享,可免费在线阅读全文,更多与《同步电机模型的MATLAB
    发表于 09-03 09:00

    高阶QAM定时同步算法的MATLAB仿真及FPGA实现

    本文针对128 QAM调制信号,设计了定时同步算法结构,并且用MATLAB做了仿真验证,最后在FPGA平台上实现了该算法。
    发表于 11-23 11:15 6004次阅读

    同步电机模型的MATLAB仿真资料

    同步电机模型的MATLAB仿真资料,有兴趣的同学可以下载学习
    发表于 04-28 13:59 0次下载

    现代永磁同步电机控制原理及MATLAB仿真

    《现代永磁同步电机控制原理及MATLAB仿真》,袁雷、胡冰新等编写的PMSM经典教材,压缩包为完整的书籍配带的MATLAB仿真
    发表于 03-05 11:58 1391次下载

    现代永磁同步电机控制原理及MATLAB仿真__袁雷编著

    电子发烧友网站提供《现代永磁同步电机控制原理及MATLAB仿真__袁雷编著.zip》资料免费下载
    发表于 05-26 08:00 0次下载

    现代永磁同步电机控制原理及MATLAB仿真__袁雷编著

    电子发烧友网站提供《现代永磁同步电机控制原理及MATLAB仿真__袁雷编著.rar》资料免费下载
    发表于 05-31 08:00 0次下载

    现代永磁同步电机控制原理及MATLAB仿真电子教材的仿真模型免费下载

    本文档的主要内容详细介绍的是《现代永磁同步电机控制原理及MATLAB仿真》_袁雷编著随书的仿真模型详细资料免费下载。
    发表于 10-22 08:00 829次下载
    现代永磁<b class='flag-5'>同步</b>电机控制原理及<b class='flag-5'>MATLAB</b><b class='flag-5'>仿真</b>电子教材的<b class='flag-5'>仿真</b>模型免费下载

    现代永磁同步电机控制原理及MATLAB仿真源码/模型

    现代永磁同步电机控制原理及MATLAB仿真 源码/模型(matlab)分享
    发表于 09-05 09:18 38次下载

    大学毕业设计一席谈之二十七 位同步环路matlab仿真(7)更正错误和加入频偏

    继续讲解! 感谢作者的留言,指出不足之处! 在《大学毕业设计一席谈之二十七 位同步环路matlab仿真》系列文章里面 如何设置参数的呢 ? 到底哪个公式正确呢?上图的公式是正确的,感
    的头像 发表于 02-09 15:15 419次阅读