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

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

    关注

    160

    文章

    7725

    浏览量

    177630
  • 数据
    +关注

    关注

    8

    文章

    6867

    浏览量

    88799
  • 基带
    +关注

    关注

    4

    文章

    159

    浏览量

    30825
  • PSK
    PSK
    +关注

    关注

    1

    文章

    27

    浏览量

    20967
  • 仿真程序
    +关注

    关注

    0

    文章

    36

    浏览量

    10136

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

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

收藏 人收藏

    评论

    相关推荐

    同步电机模型的MATLAB仿真

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

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

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

    同步电机模型的matlab仿真

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

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

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

    MATLAB教程_MATLAB仿真_MATLAB软件下载

    本专题为你详述MATLAB编程与MATLAB仿真设计知识。内容包括MATLAB入门教程,MATLAB画图,
    发表于 10-19 17:44
    <b class='flag-5'>MATLAB</b>教程_<b class='flag-5'>MATLAB</b><b class='flag-5'>仿真</b>_<b class='flag-5'>MATLAB</b>软件下载

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

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

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

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

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

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

    降抖动的同步环路设计(GARDNER)

    在数字通信系统中,为了实现正确的数据通信任务,需要实现多种同步功能。同步同步系统的关键,其质量的好坏直接影响整个通信系统的性能。因此,关于
    发表于 11-02 15:22 1次下载
    降抖动的<b class='flag-5'>位</b><b class='flag-5'>同步</b><b class='flag-5'>环路</b>设计(GARDNER)

    基于Matlab-Simulink的永磁同步电机(PMSM)矢量控制仿真

    基于Matlab-Simulink的永磁同步电机(PMSM)矢量控制仿真
    发表于 05-05 10:18 31次下载

    基于MATLAB的电机仿真精华50例包括同步异步直流电机的详细介绍

    基于MATLAB的电机仿真精华50例包括同步异步直流的详细介绍有源代码,对学习MATLAB和初学电力拖动很有帮助。
    发表于 05-30 16:07 42次下载

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

    本文档的主要内容详细介绍的是《现代永磁同步电机控制原理及MATLAB仿真》_袁雷编著随书的仿真模型详细资料免费下载。
    发表于 10-22 08:00 843次下载
    现代永磁<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 139次下载

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

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

    并网型虚拟同步发电机控制Matlab/simulink仿真说明

    并网型虚拟同步发电机控制Matlab/simulink仿真说明
    发表于 03-28 10:37 9次下载
    并网型虚拟<b class='flag-5'>同步</b>发电机控制<b class='flag-5'>Matlab</b>/simulink<b class='flag-5'>仿真</b>说明