📄 freq_offset_compensate.m
字号:
function [quad_comp, inphase_comp, theta]=freq_offset_compensate(quad,inphase)% % % Short Theoretical Background for the Function:% % Compensating for rotation on symbols.% Assuming rotation is less than one circle!!!!!!% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% Function part of simulation for Space-Time%%% coding project, group Grey-2001.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Author: SU% Date: % Version: % Revision (Name & Date & Comment):%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%K = 100; % mean-window-length, nr of symbolscomplex_signal_in = complex(inphase, quad);figure(6), plot(angle(complex_signal_in))fi = angle(complex_signal_in);fi = fi(2000:4000); % Study only first third part of data if phase-shift is greater than 2*pi.A = [[1:length(fi)]' ones(length(fi),1)]; % Solving least-square for straight-line equationy = fi';x = A\y % x = A\y, d鋜 x = [k m]'first_angle = x(2)end_angle = x(1)*length(fi)+x(2)theta = (end_angle - first_angle)delta_theta = abs(theta/length(fi)) % Angle-change per symbol.a = 0:(length(complex_signal_in)-1);rotation_vector = exp(-j*a*delta_theta); % Rotation compensating vector.complex_signal_out = rotation_vector .* complex_signal_in;quad_comp = real(complex_signal_out);inphase_comp = imag(complex_signal_out);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -