O’zbekiston aloqa va axborotlashtirish qo’mita toshkent axborot texnologiyalari universiteti


Download 1.31 Mb.
Pdf ko'rish
bet6/6
Sana04.12.2020
Hajmi1.31 Mb.
#158827
1   2   3   4   5   6
Bog'liq
signallarga spektrial ishlov berishning tezkor algoritmlarining dasturiy kompleksini yaratish


Adabiyotlar ro’yxati 

1.  Karimov  I.A.  Bosh  maqsadimiz  –  keng  ko’lamli  islohatlar  va 

modernizasiya  yo’lini qat’iyat   bilan davom ettirish: 2012-yilda mamlakatimizni 

ijtimoiy-iqtisodiy  rivojlantirish  yakunlari  hamda  2013-yilga  mo’ljallangan 

iqtisodiy dasturning eng mihim ustivor yo’nalishlariga   bag’ishlangan O’zbekiston 

Respublikasi VMning majlisidagi ma’ruza. –T.: O’zbekiston,   2013. -64 b. 

2.  O’zbekiston  Respublikasi  Prezidentining  Axborotlashtirish  sohasiga  oid 

hujjatlari.  http://lex.uz/pages/?sort_id=3985. 

3. Oliy ta’lim me’yoriy-huquqiy hujjatlar to’plami. 1-2-tom. Toshkent, «Niso 

Poligraf» ShK  bosmaxonasi, 2013.  

4.  Axborot  va  axborotlashtirishga  oid  normativ-huquqiy  hujjatlar  to’plami. 

//To’plovchilar: A.I.O’ralov, M.I.Ishbekov, D.S.Sa’dullayev. –Toshkent, “Adolat” 

nashriyoti, 2008. -464 b. 

5.  Aholini  va  hududlarni  favqulotda  vaziyatlardan  himoyalash.  O’quv 

qo’llanma. GSChS,  Toshkent, 2003. 

6.  Hayot  faoliyati  xavfsizligi.  A.  Qudratov,  T.  G’aniyev  va  boshqalar. 

Toshkent, Aloqachi,   2005. 

        7.  Оппенгейм  А.В.,  Шафер  Р.В.  Цифровая  обработка  сигналов:  Пер.  с. 

Англ./ Под ред.  С.Я. Шаца.-М.: Связь, 1979. - 416 с.  

        8.Уидроу Б., Стириз С. Адаптивная обработка сигналов: Пер. с англ- М.: 

Радио и связь, 1989.- 440 с.  

        9.  Айфичер,  Эммануил  С.,  Джервис,  Барри  У.    Цифровая  обработка 

сигналов:  Практический  подход  ,    2-е  издание.:  Пер.  с  англ.-  М.: 

Издательский дом «Вильямс»,  2004. – 992 с. 

10.  Р.  Богнера,  А.  Константинидиса.  Введение  в  цифровую  фильтрацию: 

Пер. с англ. – М.: Издательский дом «МИР», 1976 – 108 с. 

11.  Зверев В.А., Стомков А.А. Выделение сигналов из помех численными 

методоми. Нижний Новгород. ИПФ РАН, 2001. 188 с.   

12.  Лэй  Э.  Цифровая  обработка  сигналов  для  инженеров  и  технических 

специалистов:  практическое  руководство  /  Э.  Лэй  ;  [перевод  с  англ. 


63 

 

ООО  «Пропартнер»,  преводчик  Соголюб  Н.С.].-  М.:  ООО  «Группа 



ИДТ», 2007.-336 с.: ил., табл. 

13. Флеянов М.Е.  «Библия  Delphi.»  –  СПб.:  БХB  -  Петербург, 2004.  –  880 

стр. 

       14.  Сибаров  К.Г.,  Сколотнев  Н.Н.,  Васин  В.К.,  Начинаев  В.Н.  Охрана 



труда  в  вычислительных  центрах:  учебное  пособие,  М.:  Машиностроение, 

1995. –     342 с. 

       15.  Л.А.Залманзон.  Преобразования  Фурье,  Уолша,  Хаара  и  их 

применение  в      управлении,  связи  и  других  областях.М  «Наука»  Главная 

редакция Физико- Математической литературы.1989  

      16.  www.it-ebooks.info (Elektron kitoblar bazasi) 

      17. http://www.dspa.ru (Цифровая оброботка сигналов Pоссийский науно- 

технический журнал) 

      18. 

http://www.intuit.ru

 (Интернет университет информационных 

технологий ) 



      19. 

http://www.ziyonet.uz

 (Axborot ta’lim qidiruv portali) 


64 

 

ILOVALAR 

unit MainForm; 

interface 

uses 

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 



  Dialogs, StdCtrls, Spin, Grids, ExtCtrls, XPMan; 

type 


  TForm1 = class(TForm) 

    sg: TStringGrid; 

    sg2: TStringGrid; 

    Panel1: TPanel; 

    SpinEdit1: TSpinEdit; 

    Button1: TButton; 

    Button2: TButton; 

    sgful: TStringGrid; 

    CheckBox1: TCheckBox; 

    RadioGroup1: TRadioGroup; 

    XPManifest1: TXPManifest; 

    procedure SpinEdit1Change(Sender: TObject); 

    procedure Button1Click(Sender: TObject); 

    procedure Button2Click(Sender: TObject); 

    procedure sgfulDrawCell(Sender: TObject; ACol, ARow: Integer; 

      Rect: TRect; State: TGridDrawState); 

    procedure FormCreate(Sender: TObject); 

  private 

    { Private declarations } 

  public 

    { Public declarations } 

  end; 


type 

65 

 

  TArrayValues = array of Double; 



var 

  Form1: TForm1; 

implementation 

{$R *.dfm} 

const 

  TwoPi = 6.283185307179586; 



procedure FFTAnalysis(var AVal, FTvl: TArrayValues; Nvl, Nft: Integer); 

var 


  i, j, n, m, Mmax, Istp: Integer; 

  Tmpr, Tmpi, Wtmp, Theta: Double; 

  Wpr, Wpi, Wr, Wi: Double; 

  Tmvl: TArrayValues; 

begin 

  n:= Nvl * 2; SetLength(Tmvl, n); 



  for i:= 0 to Nvl-1 do begin 

    j:= i * 2; Tmvl[j]:= 0; Tmvl[j+1]:= AVal[i]; 

  end; 

  i:= 1; j:= 1; 



  while i < n do begin 

    if j > i then begin 

      Tmpr:= Tmvl[i]; Tmvl[i]:= Tmvl[j]; Tmvl[j]:= Tmpr; 

      Tmpr:= Tmvl[i+1]; Tmvl[i+1]:= Tmvl[j+1]; Tmvl[j+1]:= Tmpr; 

    end; 

    i:= i + 2; m:= Nvl; 

    while (m >= 2) and (j > m) do begin 

      j:= j - m; m:= m div 2; 

    end; 

    j:= j + m; 

  end; 


66 

 

  Mmax:= 2; 



  while n > Mmax do begin 

    Theta:= -TwoPi / Mmax; Wpi:= Sin(Theta); 

    Wtmp:= Sin(Theta / 2); Wpr:= Wtmp * Wtmp * 2; 

    Istp:= Mmax * 2; Wr:= 1; Wi:= 0; m:= 1; 

    while m < Mmax do begin 

      i:= m; m:= m + 2; Tmpr:= Wr; Tmpi:= Wi; 

      Wr:= Wr - Tmpr * Wpr - Tmpi * Wpi; 

      Wi:= Wi + Tmpr * Wpi - Tmpi * Wpr; 

      while i < n do begin 

        j:= i + Mmax; 

        Tmpr:= Wr * Tmvl[j] - Wi * Tmvl[j-1]; 

        Tmpi:= Wi * Tmvl[j] + Wr * Tmvl[j-1]; 

        Tmvl[j]:= Tmvl[i] - Tmpr; Tmvl[j-1]:= Tmvl[i-1] - Tmpi; 

        Tmvl[i]:= Tmvl[i] + Tmpr; Tmvl[i-1]:= Tmvl[i-1] + Tmpi; 

        i:= i + Istp; 

      end; 

    end; 

    Mmax:= Istp; 

  end; 

  for i:= 1 to Nft-1 do begin 



    j:= i * 2; FTvl[Nft - i - 1]:= Sqrt(Sqr(Tmvl[j]) + Sqr(Tmvl[j+1])); 

  end; 


  SetLength(Tmvl, 0); 

end; 


procedure TForm1.SpinEdit1Change(Sender: TObject); 

var 


 i,j:integer; 

begin 


 sg.ColCount:=round(exp(SpinEdit1.Value*ln(2))) +1; 

67 

 

 sgful.rowCount:=round(exp(SpinEdit1.Value*ln(2))) +1; 



 sgful.ColCount:=SpinEdit1.Value+1; 

 for i:=1 to sg.ColCount-1 do sg.Cells[i,0]:=inttostr(random(10)); 

end; 

procedure TForm1.Button1Click(Sender: TObject); 



var 

 AVal, FTvl: TArrayValues; 

 Nvl, Nft,i,j,k,m: Integer; 

begin 


 nvl:=sg.ColCount-1; 

 SetLength(aval,nvl+1); 

 //nft:=strtoint(edit1.Text); 

 nft:=nvl; 

 SetLength(ftvl,nft+1); 

// aval[3]:=4; 

 for i:=1 to nvl do aval[i-1]:=strtofloat(sg.Cells[i,0]); 

 FFTAnalysis(AVal, FTvl, Nvl, Nft); 

 sg2.ColCount:=nft+1; 

 for i:=1 to nft do 

 sg2.Cells[i,0]:=floattostr(ftvl[i-1]); 

end; 


procedure TForm1.Button2Click(Sender: TObject); 

var 


 AVal, FTvl: TArrayValues; 

 Nvl, Nft,i,j,k,m,ms,mf,t,l: Integer; 

begin 

 //Fure 


 if RadioGroup1.ItemIndex=3 then 

 begin 


  button1.Click; 

68 

 

  exit; 



 end; 

 nvl:=sg.ColCount-1; 

 SetLength(aval,nvl+1); 

 SetLength(ftvl,nvl+1); 

 for i:=1 to nvl do sgful.Cells[0,i]:=sg.Cells[i,0]; 

 t:=nvl div 2; 

 //ShowMessage(inttostr(t)); 

 if RadioGroup1.ItemIndex=1 then 

 for j:=0 to nvl div 4-1 do 

 begin 


   i:=2*j+1; 

   sgful.Cells[0,i]:=sg.Cells[i,0]; 

   sgful.Cells[0,i+1]:=sg.Cells[t+i,0]; 

   sgful.Cells[0,t+i]:=sg.Cells[i+1,0]; 

   sgful.Cells[0,t+i+1]:=sg.Cells[t+i+1,0]; 

 end; 


for k:=1 to SpinEdit1.Value do 

 begin 


  sgful.Cells[k,0]:='Qadam: '+inttostr(k); 

  for i:=1 to nvl do  aval[i-1]:=strtofloat(sgful.Cells[k-1,i]); 

  m:= round(exp((k-1)*ln(2))); 

  for j:=1 to m do 

  begin 

  //showmessage(inttostr(m)); 

   t:=(nvl div m) ; 

   ms:=(j-1)*t; 

   mf:=j*t-1; 

  //ShowMessage('m='+inttostr(t)+' ms='+inttostr(ms)+' mf='+inttostr(mf)); 

  for i:=ms to (ms+mf) div 2 do 


69 

 

   begin 



    //ShowMessage('k='+inttostr(k)+' j='+inttostr(j)+' i='+inttostr(i)); 

    FTvl[i]:=aval[i]+aval[i+t div 2]; 

    FTvl[i+(t div 2)]:=aval[i]-aval[i+(t div 2)]; 

    if (k=SpinEdit1.Value) and CheckBox1.Checked then 

    begin 

     FTvl[i]:=FTvl[i]/nvl; 

     FTvl[i+(t div 2)]:=FTvl[i+(t div 2)]/nvl; 

    end; 

     sgful.Cells[k,i+(t div 2)+1]:=floattostr(FTvl[i+(t div 2)]); 

     sgful.Cells[k,i+1]:=floattostr(FTvl[i]); 

    //ShowMessage('a['+inttostr(i)+']='+floattostr(aval[i])+' : a['+inttostr(i+(t div 

2))+']='+floattostr(aval[i+(t div 2)])); 

   end; 

  end; 


 end; 

 

// for i:=1 to nvl do  sgful.Cells[0,i]:='Vd['+inttostr(i)+']='+sg.Cells[i,0]; 



end; 

procedure TForm1.sgfulDrawCell(Sender: TObject; ACol, ARow: Integer; 

  Rect: TRect; State: TGridDrawState); 

var 


 AVal, FTvl: TArrayValues; 

 Nvl, Nft,i,j,k,m,ms,mf,t,l: Integer; 

begin 

if (acol=sgful.ColCount-1)and(arow=sgful.RowCount-1) then 



begin 

 nvl:=sg.ColCount-1; 

  //k:=2; 

 //i:=4; 



70 

 

    // sgful.Canvas.Pen.Width:=2; 



 sgful.Canvas.Pen.Color:=clGreen; 

 for k:=1 to SpinEdit1.Value do 

 begin 

  m:= round(exp((k-1)*ln(2))); 



  for j:=1 to m do 

  begin 


   t:=(nvl div m) ; 

   ms:=(j-1)*t; 

   mf:=j*t-1; 

  for i:=ms to (ms+mf) div 2 do 

   begin 

    // sgful.Canvas.MoveTo((k)*50+20,(i)*24+12); 

    // sgful.Canvas.LineTo((k+1)*50,(i)*24+12); 

    // sgful.Canvas.LineTo((k)*50+20,(i+(t div 2))*24+12); 

    // sgful.Canvas.MoveTo((k)*50+20,(i+(t div 2))*24+12); 

     //sgful.Canvas.LIneTo((k+1)*50+20,(i+(t div 2))*24+12); 

    //ShowMessage('a['+inttostr(i)+']='+floattostr(aval[i])+' : a['+inttostr(i+(t div 

2))+']='+floattostr(aval[i+(t div 2)])); 

   end; 

  end; 


 end; 

 end; 


end; 

procedure TForm1.FormCreate(Sender: TObject); 

begin 

 sg.Cells[0,0]:='Входные данные (Vd[ ]): '; 



 sg.ColWidths[0]:=150; 

 sg2.Cells[0,0]:='Преобразование Фурье: '; 

 sg2.ColWidths[0]:=150; 


71 

 

end; 



end. 

Download 1.31 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling