您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页AGC测试

AGC测试

来源:华佗小知识

代码1

close all;
clear all;
clc;
file_I = fopen('fe_agc_in.in', 'r');
sig_I = fread(file_I, 'float32');
sig_points_I = numel(sig_I);
fclose(file_I);
x=sig_I;

[N col]=size(x);
Px=zeros(size(x));
Py=zeros(size(x));
y=zeros(size(x));
g=zeros(size(x));
a=0.2;
mu=0.5;
Pref=0.4;
%Pmin=0.000000001;
%Pmax=0.5;
g(1,1)=1;
y(1,1)=x(1,1);
Py(1,1)=(1-a)*x(1,1)*x(1,1);
Px(1,1)=(1-a)*x(1,1)*x(1,1);
for n=2:N
  Px(n,1)=a*Px(n-1,1)+(1-a)*x(n,1)*x(n,1);
  g(n,1)=g(n-1,1)*(1+mu*Px(n,1)*(Pref-Py(n-1,1)));
  y(n,1)=g(n,1)*x(n,1);
    
  if y(n,1)>2
      y(n,1)=2;
  end
    if y(n,1)<-2
      y(n,1)=-2;
  end
 Py(n,1)=g(n,1)*g(n,1)*Px(n,1);
end

figure;
plot(x);
figure;
plot(y);

  代码2

close all;
clear all;
clc;
file_I = fopen('fe_agc_in.in', 'r');
sig_I = fread(file_I, 'float32');
sig_points_I = numel(sig_I);
fclose(file_I);

% file_Q = fopen('fir_q_f100k.f100k', 'r');
% sig_Q = fread(file_Q, 'float32');
% sig_points_Q = numel(sig_Q);
% fclose(file_Q);


I = sig_I;
Q = zeros(length(I),1);
N = length(I);
gain = zeros(N,1);

alpha = 0.01;
y2_prime = zeros(N,1);


for i = 1:N
    gain(i) = 1.0;
    y2_prime(i) = 1.0;
end

for i = 1:N - 2
    yi(i) = I(i) * gain(i);
%     yq(i) = Q(i) * gain(i);
    
    y2(i) = real((yi(i) + yq(i) * 1i) .*(yi(i) - yq(i) * 1i));
%     y2(i) = yi(i) * yi(i);
    y2_prime(i + 1) = (1.0 - alpha) .* y2_prime(i) + alpha * y2(i);
    
    if(y2_prime(i + 1) > 1e-6)
        temp(i) = exp(-0.5 * alpha * log(y2_prime(i + 1)));
        gain(i + 1) = gain(i) *temp(i) ;
    else
%         gain(i + 1) = gain(i);
    end
    
        
    if( gain(i + 1) > 1e6)
        gain(i + 1) = 1e6;
    end
end
figure;
plot(I);
figure;
plot(yi);
figure;
plot(gain);
figure;
plot(temp);
figure;
plot(y2_prime);

  

转载于:https://www.cnblogs.com/yssrf-possible/p/11303708.html

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务