Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.12.2012, 18:16
Dmitry_DM Dmitry_DM вне форума
Активный
 
Регистрация: 07.08.2012
Сообщения: 258
Версия Delphi: Delphi 7
Репутация: 11
По умолчанию Нужна помощь, и будет нужна не 1 раз!

Здравствуйте! Пришел прогресс к моей работе по защите wav файла с помощью математической модели. Так вот: многое, что нужно сделать, проделано мною в EXEL документе. Это конечно хорошо, но! Нужно это сделать по-человечески в Delphi. Так вот: не буду долго рассказывать что и зачем нужно. Но для начала первый вопрос:
Нужно найти границы интервалов. Для этого нужно к мин амплитуде прибавить ранее найденный дельта X. Сделал в delphi это по калеченому. Как это сделать нормально.. думаю вы поймете о чем я.
Внизу EXEL. Пока интересующий столбик - это A34:F47.
Вот по-калеченому:
Код:
   For i:=1 to m do
   begin
    Gran[1]:=WavInfo.MinAmplitude+delX;
    Gran[2]:=Gran[1]+delX;
    Gran[3]:=Gran[2]+delX;
    Gran[4]:=Gran[3]+delX;
    Gran[5]:=Gran[4]+delX;
    Gran[6]:=Gran[5]+delX;
    Gran[7]:=Gran[6]+delX;
    Gran[8]:=Gran[7]+delX;
    Gran[9]:=Gran[8]+delX;
    Gran[10]:=Gran[9]+delX;
    Gran[11]:=Gran[10]+delX;
    Form1.Memo3.Lines.Add('Gran ' +FloatToStr(Gran[i]));
   end;

Но нигде не известно, что интервалов 11. Их может быть сколько угодно..
Как сделать правильно, где-то в 2 строки.. Помогите.. Позже будут еще вопросы.. Кто отзовется помогать - тому нечеловеческое СПАСИБО!
Вложения
Тип файла: rar EXEL.rar (31.5 Кбайт, 1 просмотров)
Ответить с цитированием
  #2  
Старый 26.12.2012, 18:42
zibert zibert вне форума
Прохожий
 
Регистрация: 28.08.2012
Адрес: NikolayevCity
Сообщения: 40
Версия Delphi: Семерка))
Репутация: 10
По умолчанию

я бы сделал так..
Код:
Gran[1]:=WavInfo.MinAmplitude;
Form1.Memo3.Lines.Add('Gran ' +FloatToStr(Gran[1]));
For i:=2 to m do
begin 
 Gran[i]:=Gran[i-1]+delX;
 Form1.Memo3.Lines.Add('Gran ' +FloatToStr(Gran[i]));
end;

Последний раз редактировалось zibert, 26.12.2012 в 18:45.
Ответить с цитированием
Этот пользователь сказал Спасибо zibert за это полезное сообщение:
Dmitry_DM (26.12.2012)
  #3  
Старый 28.12.2012, 18:57
Dmitry_DM Dmitry_DM вне форума
Активный
 
Регистрация: 07.08.2012
Сообщения: 258
Версия Delphi: Delphi 7
Репутация: 11
По умолчанию

Здравствуйте, уважаемые участники форума! Помогите мне составить 3 массива.. В ниже прикрепленном файле наведен пример обработки данных. Все массивы я сделал.. кроме последних трех. (В ячейках O, P, Q). Ниже прилагаю код уже сделанного. Прошу только грамотно сделать те 3 массива, так как они сделаны в EXCEL.
Код:
//////////////////////////////////////////////////////////////////////
    m:=trunc(3.3*log10(NumSamples)+1);
    //delX:=(WavInfo.MaxAmplitude - WavInfo.MinAmplitude) / m;
    delX:=((WavInfo.MaxAmplitude - WavInfo.MinAmplitude)/WavInfo.MaxAmplitude) / m;

//////////////////////////////////////////////////////////////////////
Gran[1]:=WavInfo.MinAmplitude/wavinfo.MaxAmplitude;
Form1.Memo3.Lines.Add('Gran[1] ' +FloatToStr(Gran[1]));
  For i:=2 to m+1 do
begin
 Gran[i]:=Gran[i-1]+delX;
 Form1.Memo3.Lines.Add('Gran['+inttostr(i)+']' +FloatToStr(Gran[i]));
end;

//////////////////////////////////////////////////////////////////////
  For i:=1 to m+1 do
   begin
 Ap.Cells[i,1]:=Gran[i];
 ppp[i]:= Ap.Cells[i,3];
 Form1.Memo3.Lines.Add('ppp['+inttostr(i)+']' +FloatToStr(ppp[i]));
   end;

//////////////////////////////////////////////////////////////////////
     for f:=1 to m do
    begin
     for I := 1 to NumSamples do
        for J := 1 to WavInfo.WaveFormat.nChannels do
        if  Samp2[j,i]<Gran[f+1]
        then Kol[f]:=Kol[f]+1 ;
     Form1.Memo3.Lines.Add('Kol['+ inttostr(f) +']='+FloatToStr(Kol[f]));
    end;

//////////////////////////////////////////////////////////////////////
    Nj[1]:=(Kol[1]/delX/NumSamples);
    Form1.Memo3.Lines.Add('Nj[1] ' +FloatToStr(Nj[1]));
    for f:=2 to m do
    begin
    Nj[f]:=((Kol[f]-Kol[f-1])/delX/NumSamples);
    Form1.Memo3.Lines.Add('Nj['+ inttostr(f) +']='+FloatToStr(Nj[f]));
    end;

//////////////////////////////////////////////////////////////////////
    pp[1]:= kol[1];
    Form1.Memo3.Lines.Add('pp[1]='+FloatToStr(pp[1]));
    for i:=2 to m do
    begin
    pp[i]:=(Kol[i]-Kol[i-1]);
    Form1.Memo3.Lines.Add('pp['+ inttostr(i) +']='+FloatToStr(pp[i]));
    end;

//////////////////////////////////////////////////////////////////////
    for i:=1 to m do
    begin
    p[i]:=(ppp[i+1]-ppp[i])*NumSamples;
    Form1.Memo3.Lines.Add('p['+ inttostr(i) +']='+FloatToStr(p[i]));
    end;

//////////////////////////////////////////////////////////////////////
    for i:=1 to m do
    begin
     pppp[i]:= sqr(PP[i]-p[i])/p[i];
     Form1.Memo3.Lines.Add('pppp['+ inttostr(i) +']='+FloatToStr(pppp[i]));
    end;

 //////////////////////////////////////////////////////////////////
    for i:=1 to m do
    SUMM:=summ+ pppp[i];
Прошу, помогите мне, пожалуйста!
P.S Пример только для одного набора сэмплов, равен 2000 шт. Работать должно для любого файла так, как происходит это с массивами, которые я уже сделал.
И еще вложу книгу, там на 4 ст. красивее написано, чем на рисунках.
Вложения
Тип файла: rar Книга.rar (364.5 Кбайт, 1 просмотров)
Тип файла: rar EXEL.rar (443.1 Кбайт, 1 просмотров)

Последний раз редактировалось Dmitry_DM, 28.12.2012 в 21:40.
Ответить с цитированием
  #4  
Старый 28.12.2012, 23:22
Dmitry_DM Dmitry_DM вне форума
Активный
 
Регистрация: 07.08.2012
Сообщения: 258
Версия Delphi: Delphi 7
Репутация: 11
По умолчанию

Ну мне кто-то поможет? Поймите, это очень важно!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:03.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025