реклама на сайте
подробности

 
 
> Реализация AGC на FPGA, Автоматический контроль усиления
vea
сообщение Jan 8 2014, 14:25
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 5-12-11
Из: Киев
Пользователь №: 68 692



Здравствуйте!
Попробовал смоделировать схему (с целью дальнейшей реализации в FPGA), предложенную в статье Carrier Recovery and Automatic Gain Control on
FPGA’s based platform
, рис. 8.
Результат неадекватный (начиная с некоторого момента алгоритм расходится). Менял параметры (наугад, поскольку никакой понятной теории не нашел), результата нет.
Может быть, кто-то сталкивался с этим?
Для сравнения - код по Незами (рис. 4-27). Тут все нормально, но это для double точности.
Или посоветуйте другие варианты - поиск пока лучших результатов не дал.
Спасибо!
Код
% input signal gereration start
N=5*1000; % length of input signal
ft=N/5;
fs=(1-1/5)*N;
A(1:N/5)= 2^5; % max values
A(N/5+1:2*N/5)  = 2^5;
A(2*N/5+1:3*N/5)= 2^8;
A(3*N/5+1:4*N/5)= 2^11;
A(4*N/5+1:5*N/5)= 2^7;
x= A.*exp(2*pi*j*ft*[1:N]/fs);
x=x.';
% input signal end
% initialization start
y1   = zeros(1,length(x));
y2   = zeros(1,length(x));
norm = zeros(1,length(x));
A1(1)= 0;  % Gain for exp
A2(1)= 1;  % Gain for linear
avg  = 0;
acc  = 0;
% initialization end

% PARAMETERS of AGC
R  = 10;     % reference
a1 = 0.0001; % for exp
K  = 9;
B  = 2^3; % length of buffer
% ---------

% main
for k=1:length(x)-1
% exp AGC (Nezami)
    y1(k) = 2^[A1(k)] * x(k);
    A1(k+1) = A1(k) + a1*(2^R - [abs(real(y1(k))) + abs(imag(y1(k)))]);
% linear AGC
    y2(k) = A2(k) * x(k);
    norm(k) = abs(real(y2(k))) + abs(imag(y2(k)));
    if (k<=B) % AVG in buffer
        avg = avg + norm(k);
    else
        avg = avg + norm(k)-norm(k-B);
    end
    diff    = 2^R - floor(avg/B);   % 2^R is reference level
    acc     = acc + diff;           % accumulator
    result  = floor(acc/2^K);      
    A2(k+1) = result;  
end
figure
subplot(311); plot([ real(x).' ]); grid;shg
subplot(312); plot([ real(y1).']); grid;shg
subplot(313); plot([ real(y2).']); grid;shg
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 18:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01347 секунд с 7
ELECTRONIX ©2004-2016