• 大小: 6.49MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-02
  • 语言: Matlab
  • 标签: MATLAB  

资源简介

数字通信中PLL同步实现的MATLAB仿真代码,具有较好参考学习价值

资源截图

代码片段和文件信息

function [convert_para_sconvert_para_sourcesignal_sourcesource_phase]=create_signal_source(ifsfifdthetaTCNRBnconvert)
    global convert_set;
    convert_para_s=0;
    convert_para_source=0;
    
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%产生信号源%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  M=T*fs;%采样点数
  %n=((i-1)*T):1/fs:(i*T)-1/fs;%一次积分清除有T*fs=6000个采样点
  n=((i-1)*M):(i*M)-1;%一次积分清除有T*fs=6000个采样点
  %theta_org=mod(2*pi*((fi+fd-50*cos(0.16*0.001*i+pi/2))*n)/fs+theta2*pi);%采样点对应的相位
  %varyphase = -pi*80*(n/fs).^2;
  %varyphase = -2*pi*3125*cos(0.16*n/fs-pi/2);
  varyphase = 0;
  theta_org=mod(varyphase+2*pi*(fi+fd)*n/fs+theta2*pi);%采样点对应的相位
  signal_source=cos(theta_org);%得到源信号
  
  
  source_phase = theta_org(M);%最后一个点的相位作为信号相位
  source_phase = mod(source_phase2*pi);%相位设到0~2*pi之间
  source_phase = source_phase*360/(2*pi); %转化为度数
  
 %%%%%%%%%%%%%%%%%%%%%%%%%%加入载噪比%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 if CNR ~= 888
 SNR = CNR - 10*log10(Bn*2);%由载噪比计算信噪比
 SNR = SNR + 10*log10(Bn*4/fs); % 考虑现在加入的噪声是平均加到整个采样率范围内的,之后信号会通过带通滤波器,噪声只通过了Bn*2,所以要减小信噪比,这样才是对的
 SNR = 10^(SNR/10);% 将噪声转化为十进制的比例
 std_noise = 1;% 噪声的标准差为 1
 A_signal = sqrt(2*SNR*(std_noise^2));% 计算信号幅度
 randn(‘state‘1);
 noise_org = std_noise*randn(1M);% 产生无限带宽的噪声序列
 
 % 信号源中FIR的带通滤波器的参数
 global bofsourceFIR;
 global noise_sourceFIR;
 
 %%%%%%%%%%%%%%%%%%%%%%%%%对噪声序列进行带通滤波%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 noise = zeros(1M);% 初始化矩阵提高运算速度
 sourceb_size = length(bofsourceFIR);% 滤波器级数
 for m=1:M
     % 循环得到新的输入序列   
     noise_sourceFIR(2:sourceb_size) = noise_sourceFIR(1:(sourceb_size-1));
     noise_sourceFIR(1) = noise_org(m);
     noise(m) = bofsourceFIR*noise_sourceFIR‘;% 与系数相乘得到本次滤波的输出
 end% 结束本循环滤波
 
 % 将噪声限制在 3sigma的范围内
 noise(find(noise > 3*std_noise)) = 3*std_noise;
 noise(find(noise < (-3)*std_noise)) = -(3*std_noise);
 
 signal_source = A_signal*signal_source + noise;% 对信号添加噪声
 else
 SNR = 10^(CNR/10);
 A_signal = sqrt(2*SNR);
 signal_source = A_signal*signal_source;% 对信号添加噪声
 end
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 %%%%%%%%%%%%%%%%%%%%%%%%%记录信号源量化设置%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
   if convert==1
       convert_para_s=8;%量化为8位,1位符号位,2位整数位,5位小数位
       convert_para_source = convert_para_s - 3;
       signal_source = round(signal_source*2^convert_para_source);
       for m=1:fs*T
           %因为量化范围是-128~127,所以当出现128时要强制转换为127
           if signal_source(m) == 128 
               signal_source(m) = 127;
           end
       end
       if i == 1
           fprintf(convert_set‘信号源量化为%dbit:1bit符号,%dbit整数,%dbit小数\r\n\r\n‘convert_para_sconvert_para_s-convert_para_source-1convert_para_source);
       end
   end
     
 
 
  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      30967  2012-11-07 20:31  PLL_matlab\100Hz.jpg

     文件      35068  2012-11-07 16:14  PLL_matlab\350Hz_15Hz.jpg

     文件      35892  2012-11-07 16:45  PLL_matlab\352Hz_15Hz.jpg

     文件      35582  2012-11-07 16:50  PLL_matlab\355Hz_10Hz.jpg

     文件      34724  2012-11-07 16:56  PLL_matlab\355Hz_30Hz.jpg

     文件      39217  2012-11-07 17:00  PLL_matlab\355Hz_40Hz.jpg

     文件      38619  2012-11-07 17:04  PLL_matlab\355Hz_50Hz_1.203.jpg

     文件      34893  2012-11-07 16:34  PLL_matlab\360Hz_15Hz.jpg

     文件      36140  2012-11-07 16:20  PLL_matlab\370Hz_15Hz.jpg

     文件      13120  2012-11-08 19:28  PLL_matlab\500_std2.fig

     文件       3176  2012-11-14 10:18  PLL_matlab\create_signal_source.asv

     文件       3204  2012-11-14 20:45  PLL_matlab\create_signal_source.m

     文件          0  2012-11-14 21:37  PLL_matlab\Data_Record\BitData_para_filter.txt

     文件         31  2012-11-14 21:48  PLL_matlab\Data_Record\DecData_para_filter.txt

     文件       1010  2012-11-13 20:39  PLL_matlab\discriminator.m

     文件       2035  2012-11-13 16:21  PLL_matlab\NCO_process.asv

     文件       2033  2012-11-13 20:05  PLL_matlab\NCO_process.m

     文件       9770  2012-11-14 21:20  PLL_matlab\pll.asv

     文件       9777  2012-11-14 21:20  PLL_matlab\pll.m

     文件       2984  2012-11-13 00:25  PLL_matlab\Pll_loop_lockjudge.asv

     文件       2989  2012-11-13 14:04  PLL_matlab\Pll_loop_lockjudge.m

     文件        386  2012-11-05 20:53  PLL_matlab\RecordDec.m

     文件       2625  2012-11-14 20:09  PLL_matlab\set_para_filter.m

     文件       2397  2012-11-07 16:02  PLL_matlab\set_para_pll.asv

     文件       2402  2012-11-14 20:58  PLL_matlab\set_para_pll.m

     文件        103  2012-11-06 16:10  PLL_matlab\sum_signal_IQ.m

     文件   10782517  2012-11-09 20:39  PLL_matlab\tixing.fig

     文件      41602  2012-11-09 21:05  PLL_matlab\zhexianxing.jpg

     目录          0  2012-11-12 22:48  PLL_matlab\Data_Record

     目录          0  2012-12-03 11:20  PLL_matlab

............此处省略3个文件信息

评论

共有 条评论