资源简介
gardner位同步的仿真代码,实现了QPSK在存在采样频率误差的情况下恢复星座图

代码片段和文件信息
%File:timing_syn.m timing synchronization
clc
clear
Data_Len = 8030;
Fs = 10000; % Sampling Frequency
Fd = 2500; % Symbol Frequency
SNR_max = 12; % S/N Ratio for Chanel Simulatioin
SNR_min = 4;
RolloffCoef = 0.35; % Roll Off Coeff.
T_Gain = 0.09; % TED Loop Gain
Ratio = Fs/Fd/2; % = Ts/Td/2
Offset = 23; %
mm = 1;
%for snr=SNR_min:1:SNR_max
%for RolloffCoef_a=0.1:0.05:0.4
x= zeros(1Data_Len/2); %产生的符号数
timing_error = 0;
datalen = Fs / Fd * (Data_Len - Offset);
displaysize = 128;
ted_out = zeros(1displaysize);
%Interp_Pos = 2*Ratio + Ratio;
Interp_Pos = Ratio;
Rec_out = zeros(1displaysize);
h = [0.04 -0.36 0.60 -0.36 0.04];
disp(‘1 Data Send‘);
%1+++++++++++++Data Source+++++++++++++++++++
disp(‘ 1.1 Data Source‘);
%x = (-1).^(rand(1Data_Len)>0.5) + j * (-1).^(rand(1Data_Len)>0.5);
source = randint(1Data_Len);
sig_i = [1 source(1:2:end)];
sig_q = [1 source(2:2:end)];
DQpsk = zeros(2length(sig_i));
for i = 1:length(sig_i)
if i == 1
DQpsk(1i) = 1;
DQpsk(2i) = 1;
else
DQpsk(1i) = abs(xor(pre_ipre_q)-1)*xor(sig_i(i)pre_i) + xor(pre_ipre_q)*xor(sig_q(i)pre_i);
DQpsk(2i) = abs(xor(pre_ipre_q)-1)*xor(sig_q(i)pre_q) + xor(pre_ipre_q)*xor(sig_i(i)pre_q);
end
pre_i = DQpsk(1i);
pre_q = DQpsk(2i);
x(i)=(DQpsk(1i)*2-1)+j*(DQpsk(2i)*2-1);
end
DQpsk = DQpsk*2-1;
%tx_signal=rcosflt(xFdFs‘fir‘0.2510);
% figure(1)
% plot(x‘k*‘);
% xlabel(‘real‘)
% ylabel(‘image‘)
% xlim([-2.0 2.0]);
% ylim([-2.0 2.0]);
% title(‘Sending Conset‘)
% grid on;
%+++++++++++++pulse shaping+++++++++++++++++++
% Using Rolloff Setting
%+++++++++++++++++++++++++++++++++++++++++++++
disp(‘ 1.2 Pulse Shaping‘);
x_t=rcosflt(xFdFs‘sqrt‘RolloffCoef);
% figure(7);
% x_kk=fft(x_t);
% plot(abs(x_kk)‘-‘‘MarkerSize‘14);
%+++++++++++++channel simulation++++++++++++++
% Add White Offsetoise Using SOffsetR Setting
%+++++++++++++++++++++++++++++++++++++++++++++
disp(‘2 Channel Simulation‘);
c_t = awgn(x_t15‘measured‘);
%++++++++++++++++++receive++++++++++++++++++++
disp(‘3 Receive‘);
%4++++++++++Matching Filter++++++++++++++++++++
disp(‘ 3.1 Matching Filter‘);
%matched_data=rcosflt(r_tFdFs‘sqrt/Fs‘RolloffCoef);
r_c_t=resample(c_t1001710000);
r_t=rcosflt(r_c_tFdFs‘sqrt/Fs‘RolloffCoef);
matched_data=[r_t(Offset+1:end-Offset)];
%++++++++++++Timing Recovery+++++++++++++++++++
% =======Gardner Timing Recovery===============
% TE(k)={Y[(k-1)Td]-Y[kTd])*Y[(kTd-Td/2]
% =======Parabolic Interpolation===============
% C_2 = 0.5 * mu^2 - 0.5 * mu;
% C_1 = -0.5 * mu^2 + ( 0.5 + 1 ) * mu;
% C0 = -0.5 * mu^2 + ( 0.5 - 1 ) * mu + 1;
% C1 = 0.5 * mu^2 - 0.5 * mu;
%+++++++++++++++++++++++++++++++++++++++++++++++
disp(‘ 3.2 Timing Recovery‘);
C_2 = inline(‘0.
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8190 2012-07-27 10:51 timing_syn_Gardner.m
----------- --------- ---------- ----- ----
8190 1
- 上一篇:多轴传动控制系统原理图
- 下一篇:对射式光电传感器原理图及程序
相关资源
- STM32 led 时钟
- 单片机电子时钟 闹钟 日历
- 单片机数字时钟包附电路图 源程序
- 软件方法测试RTX时钟
- (MFC) 时钟日期程序
- 图形学集成程序dda、中点算法、多边
- flash透明时钟140个
- Analytical Studies of the (2+1)-Dimensiona
- actel fpga外部输入时钟毛刺问题排查与
- STM32F407实时时钟_DS1302实时时钟模块和
- 基于STM32F103的实时时钟程序,采用D
- 51单片机_DS1302时钟芯片_共阴数码管
- Qt时钟Demo,在原来基础上添加了秒针
- DS1302时钟带可调时间显示
- Lcd12864大时钟万年历 农历生肖温度
- 基于FFMPEG_SDL2_音视频播放_参考音频时
- Qt 日历可显示阴历生宵和时钟基于Q
- MSP430F5438 UCS 时钟操作实验
- 51单片机7种常见时钟电路图
- AVR多功能实验箱DS1302时钟实验源码资
- 畅学STM32多功能实验箱DS1302时钟芯片源
- “回收利用”数字系统中的时钟
- 基于单片机的电子时钟设计
- ESP8266+OLED屏实现天气预报+温度显示
- labview程序设计的电子时钟
- STM32指针式时钟工程项目
- 基于ISE的基本数字时钟工程
- stm32f103和时钟芯片ds1302
- 基于stm32辉光管时钟pcb
- 基于STC89C52单片机的数字时钟
评论
共有 条评论