Регулирование мощности шума по принципам адаптивной фильтрации, отвечающей высоким требованиям к точности настройки

Дипломная работа - Безопасность жизнедеятельности

Другие дипломы по предмету Безопасность жизнедеятельности



figure(2)(2,1,1)(K:K:K_ocenok*K, CKO_SHUM_IN)on(CKO IN (IN*0.5),CKO IN (IN*1),CKO IN (IN*2))on(2,1,2)(K:K:K_ocenok*K,CKO_OUT)on(CKO OUT (IN*0.5) ,CKO OUT (IN*1) ,CKO OUT (IN*2) ) on

% функция моделирующая алгоритм работы ШАРУ

function [Y,W_out, Wgp, CKO_OUT] =_disp_do_kv(X,CKOt,razr,K,M);= length(X);_ocenok = floor(N/K);

N_razr = 2^razr;

Wg = N_razr; % расчет необходимого G(целого)

Dt = CKOt^2;k=1:N_ocenok(((k-1)*K+1):((k-1)*K+K)) = floor(X( ((k-1)*K+1):

((k-1)*K+K)).*Wg./N_razr);= Z(((k-1)*K+1):((k-1)*K+K));= X(((k-1)*K+1):((k-1)*K+K));= floor(sum(Zn.^2)/K) ;= floor(sum(Xn.^2)/K) ;= floor(2*M*N_razr)*(Dt-Dz);= floor(Qm/Dx);_new = Wg+Qd;Wg_new>N_razr*2= N_razr*2;Wg_new<N_razr/2= N_razr/2;= Wg_new;_OUT(k) = floor(sqrt(floor(sum(Zn.^2)/K)));(k) = Wg;= Z;

W_out = Wg;

Приложение В

Функциональная схема ШАРУ

Рис.

Приложение Г

Программный код модуля ШАРУ

//n =15, TRANS_COEF[n+1] т.е. верхняя граница - усиление в 2 //раза.

// нижняя граница - 2^15/2=32768/2=16384=2^14 - ослабление в 2 //раза

module block_shary#(parameter=12,//входное слово 11+знак в прямом коде=15,//значение единичного коэффициента передачи

// т.е. W=1 -- Wq=2^n

k=5,// кол-во усреднений 2^k

DISP_ET=4900)// CКО=70, DISP=70^2

(input clk,enable,[WIDTH-1:0]IN,reg[WIDTH-1:0]OUT,

//transmission coefficientreg [n:0] TRANS_COEF

);N=1 << n,//2^n;=1 << k,//2^k;_COEF=2*N/100, //2*M*N, M=0.01_COEF_min=1 << (n-1),_COEF_CORR_max=4096;TRANS_COEF=N;[k-1:0] i;[3:0]j;//max(j)= Width-2

// т.е. 10, что умещается в 4 разряда.

wireclk_on;accum;[WIDTH-1:0]OUT_tmp;[WIDTH+n:0]OUT_mod_tmp;OUT_zn_tmp1,OUT_zn_tmp2,OUT_zn_tmp3,OUT_zn_tmp4;[WIDTH+WIDTH-3:0] OUT_kv;[WIDTH+WIDTH-3:0] IN_kv;[WIDTH+WIDTH-3:0] DISP_IN;// Dispersion on input[WIDTH+WIDTH-3:0] DISP_IN_tmp;[WIDTH+WIDTH-3+k:0] DISP_IN_sum;

// Dispersion on output

(*preserve*)reg [WIDTH+WIDTH-3:0] DISP_OUT;[WIDTH+WIDTH-3+k:0] DISP_OUT_sum;[WIDTH+WIDTH-3:0] DISP_ERROR;

//numerator to find the correction[WIDTH+WIDTH-3+n-6:0]NUM_TO_CORR;

//correction of the transmission coefficient[n-1:0] TRANS_COEF_CORR;TRANS_COEF_CORR_zn;[n-1:0] TRANS_COEF_CORR_tmp;[n+1:0] TRANS_COEF_tmp;clk_on = enable ? clk : 1b0;

//полечение выходных значений, задержка знака, проверка на //переполнение.

always @(posedge clk)_zn_tmp1<=IN[WIDTH-1];_zn_tmp2<=OUT_zn_tmp1;_zn_tmp3<=OUT_zn_tmp2;_zn_tmp4<=OUT_zn_tmp3;( OUT_mod_tmp[WIDTH+n:WIDTH+n-1]==2b00)_tmp <= { OUT_zn_tmp4, OUT_mod_tmp[WIDTH-2+n:n] };(j=0; j<=WIDTH-2; j= j+1)_tmp[j] <= 1;_tmp[WIDTH-1] <= OUT_zn_tmp4;

end

// выдача результата по заднему фронту

always @(negedge clk)<= OUT_tmp;

// подстройка TRANS_COEF при enable = 1@(posedge clk_on)<= i+1;

//накопление дисперсий(!accum)_IN_tmp k;_OUT_sum <=OUT_kv;_IN_sum <=DISP_IN_sum + IN_kv;_OUT_sum <=DISP_OUT_sum + OUT_kv;(i)

:begin<= 0;

:begin

Accum <= 1;

//сигнал ошибки и знак корректировки

if(DISP_ET >= DISP_OUT)_ERROR <= DISP_ET - DISP_OUT;_COEF_CORR_zn <= 0;_ERROR <= DISP_OUT - DISP_ET;_COEF_CORR_zn <= 1;

4:begin // подача знаменателя на делитель

DISP_IN <= DISP_IN_tmp;

end

:begin // ограничение корректировки сверху(TRANS_COEF_CORR_tmp < TRANS_COEF_CORR_max)_COEF_CORR <= TRANS_COEF_CORR_tmp;_COEF_CORR <= TRANS_COEF_CORR_max;

:begin // рассчет коректировки(!TRANS_COEF_CORR_zn)_COEF_tmp <= TRANS_COEF + TRANS_COEF_CORR;_COEF_tmp <= TRANS_COEF - TRANS_COEF_CORR;

end

:begin // проверка границ регулирования и введение

// корректировки(TRANS_COEF_tmp[n+1]||(TRANS_COEF_tmp<TRANS_COEF_min))_COEF <= TRANS_COEF ;_COEF <= TRANS_COEF_tmp;_multmult_IN_TRANS (// OUT_mod_tmp = IN * TRANS COEF

.dataa (IN[WIDTH-2:0]),

.datab (TRANS_COEF),

.clock (clk),

.result (OUT_mod_tmp),

.aclr (1b0),

.clken (1b1),

.sum (1b0));_IN_TRANS.lpm_hint = "MAXIMIZE_SPEED=6",_IN_TRANS.lpm_pipeline = 4,_IN_TRANS.lpm_representation = "UNSIGNED",_IN_TRANS.lpm_type = "LPM_MULT",_IN_TRANS.lpm_widtha = WIDTH-1,_IN_TRANS.lpm_widthb = n+2,_IN_TRANS.lpm_widthp = WIDTH+1+n;square_IN (// IN^2

.clock (clk_on),

.data (IN[WIDTH-2:0]),

.result (IN_kv),

.aclr (1b0),

.ena (1b1));_IN.data_width = WIDTH-1,_IN.lpm_type = "ALTSQUARE",_IN.pipeline = 4,_IN.representation = "UNSIGNED",_IN.result_width =WIDTH+WIDTH-2;square_OUT (// OUT^2

.clock (clk_on),

.data (OUT_tmp[WIDTH-2:0]),

.result (OUT_kv),

.aclr (1b0),

.ena (1b1));_OUT.data_width = WIDTH-1,_OUT.lpm_type = "ALTSQUARE",_OUT.pipeline = 4,_OUT.representation = "UNSIGNED",_OUT.result_width = WIDTH+WIDTH-2;_multmult_NUMER (// NUM_TO_CORR = SPEED_COEF * DISP_ERROR

.dataa (SPEED_COEF),

.datab (DISP_ERROR),

.clock (clk_on),

.result (NUM_TO_CORR),

.aclr (1b0),

.clken (1b1),

.sum (1b0));_NUMER.lpm_hint = "MAXIMIZE_SPEED=6",_NUMER.lpm_pipeline = 4,_NUMER.lpm_representation = "UNSIGNED",_NUMER.lpm_type = "LPM_MULT",_NUMER.lpm_widtha = n-6,_NUMER.lpm_widthb = WIDTH+WIDTH-2,_NUMER.lpm_widthp = WIDTH+WIDTH-2+n-6;_dividedivide_D(// TRANS_COEF_CORR=NUM_TO_CORR/DISP_IN

.denom (DISP_IN),

.clock (clk_on),

.numer (NUM_TO_CORR),

.quotient (TRANS_COEF_CORR_tmp),

.aclr (1b0),

.clken (1b1));_D.lpm_drepresentation = "UNSIGNED",_D.lpm_hint=

"MAXIMIZE_SPEED=6,LPM_REMAINDERPOSITIVE=TRUE",_D.lpm_nrepresentation = "UNSIGNED",_D.lpm_pipeline = 26,_D.lpm_type = "LPM_DIVIDE",_D.lpm_widthd = WIDTH+WIDTH-2,_D.lpm_widthn = 11+n+1;

Приложение Д

Электрическая принципиальная схема ячейки

Рис.

Рис.

Рис.

Таблица

Таблица

Таблица

Приложение Е

Перечень элементов

Рис.

Приложение Ж

Топология печатной платы. Слой питания

Рис.

Приложение З

Топология печатной платы. Сигнальный слой

Рис.

Приложение И

Таблица. Расчет надежности для цифровой системы ШАРУ

Наименование элементаlб*106, 1/чКэКрКднКфКs1КcтКcКRКккКксКктКмЧисло lЭ*106, 1/чnl*106, 1/чКонденсаторК10-17в-Н900,0350,0671,7540,01758750,07035К53-180,1750,319130,271150,81345К10-50в-Н900,0450,0671,59340,0213060,724404К10-50в-Н500,0450,0671,5910,0213060,021306МикросхемыEPF10K100ARI240-310,0640,064EPC2LI2010,0120,012MAX963ESD Maxim10,0390,039AD9042AST Analog Devices10,180,18530ЛН10,0191,51,3530,0384750,115425Дроссель Д2-0,15-330,002180,4730,016920,05076Индикатор единич.3Л3410,052,50,78630,098250,29475РезисторыР1-12-0,125<1кОм0,05250,4110,7270,074622,01474Р1-12-0,25=1кОм0,05250,410,70,7100,0522340,52234Розетка РПН23-3Г-В0,0231,0810,3220,0207360,041472Розетка СНП260-135РП320,001331,0810,650,3910,01749450,017494542Вилка СНП346-10ВП22*0,00131,082,580,3920,00326010,006520176Пайка с печатным монтажом0,002642210,01042,2984Пайка волной0,00006944620,0002760,127512Печатная плата10,689120,68912Итого: lэ=8,096523510-6 1/ч Тср=123509,8