Разработка программного обеспечения для Института космофизических исследований и распространения радиоволн

Особенность непрерывного мониторинга сигналов геоакустической эмиссии на различных стадиях сейсмической активности. Характеристика установления гидрофонов. Разработка программного обеспечения WavScreen, для отображения сигналов звукового wave файла.

Рубрика Программирование, компьютеры и кибернетика
Вид отчет по практике
Язык русский
Дата добавления 23.02.2016
Размер файла 238,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Камчатский государственный университет имени Витуса Беринга»

ОТЧЕТ

О предквалификационной практике

Студентки 4 курса физико-математического факультета направления подготовки «Прикладная математика и информатика»

Жилкиной А.В.

Проверил:

Марапулец Ю.В.

Петропавловск-Камчатский 2016

Научно-исследовательская деятельность во время практики

С 1999 года в ИКИР ДВО РАН ведется непрерывный мониторинг сигналов геоакустической эмиссии (ГАЭ) на различных стадиях сейсмической активности. Для регистрации этих сигналов используется система четырех направленных керамических приемников с предусилителями, предназначенная для работы в звуковом диапазоне частот с чувствительностью в сотни мВ/Па и объединенная в единую конструкцию (гидрофон). Гидрофоны устанавливаются у дна естественных и искусственных водоемов, что исключает возникновение помех от источников океанических шумов, мешающих выявлению сигналов сейсмического происхождения.

Сигналы геоакустической эмиссии возникают в результате деформации окружающей среды (образование микроразломов, трещин, подвижки в существующих разломах). Каждый источник деформации порождает свой единичный импульс. Эти импульсы, аддитивно сливаясь и искажаясь, создают результирующий сигнал, регистрируемый гидрофоном.

Геоакустические данные хранятся в звуковом формате WAVE. Исходя из этого, была поставлена следующая задача на разработку. Необходимо разработать и написать программу, которая должна обладать следующими возможностями:

· Загрузку файлов в звуковом формате WAVE из выбранного каталога.

· Построение графиков сигналов.

· Выделение единичных геоакустических импульсов и отображение их временных форм.

· Сохранение данных.

На практике мною было разработано программное обеспечение, под названием WavScreen, для отображения сигналов звукового WAVE файла. Для разработки я использовала среду Visual Studio C++.

Рис. 1.

Рис. 2.

Рис. 3.

Программа имеет 1 класс Form1 поля и методы которого присутствуют на Рис.2. и одну структуру WAVHEADER, поля которого присутствуют на Рис. 3. геоакустический гидрофон звуковой файл

При запуске программы нам предоставляется возможность выбрать Wave файл. Рис. 4.

Рис. 4.

После чего программа вырисовывает график импульсов выбранного звукового сигнала. Рис. 5.

Рис. 5.

При этом выдает информацию о частоте дискретизации файла, количестве каналов, глубине звучания и сжатии файла. Рис. 6.

Рис. 6.

Так же предоставляется возможность масштабирования графика. Рис. 7.

Рис. 7.

Код чтения wave файла.

/**********Открытие и считывание******/

//открытие wav файла

if ((wavFile = fopen((char*)(void*)Marshal::StringToHGlobalAnsi(fileDailog->FileName), "rb")) != 0)

{

//создаем пременную типа структуры wav файла и считываем в нее данные

fread(&header, sizeof(WAVHEADER), 1, wavFile);

//выделяем память под сигнал

wave = (short*)malloc(sizeof(short)*header.subchunk2Size / 2);

fread(wave, sizeof(short), header.subchunk2Size / 2, wavFile);

}

fclose(wavFile); //закрыть файл

int fs = header.sampleRate; //частота дискритизации

numSamples = header.subchunk2Size / 2; //длина массива

//выделение памяти

sDataInDouble = (double*)malloc(sizeof(double)*header.subchunk2Size / 2);

maxSample = minSample = (double)wave[0];

int k = 0; //переменная количества (проверка)

for (int i = 0; i<numSamples; i++)

{

sDataInDouble[i] = (double)wave[i]; //перевод из short в double

if (sDataInDouble[i] > maxSample)

maxSample = sDataInDouble[i];

if (sDataInDouble[i] < minSample)

minSample = sDataInDouble[i];

k++;

}

Код прорисовки графика импульсов

float x,y,x_last,y_last;

float scale = (maxSample - minSample)/ pictureBox1->Height;

int count = numSamples*size;

int count_move = (1-size)*shiftLoop*count;

int end = count_move+count;

if(end>=numSamples)

{

end = numSamples;

count_move = end - count;

}

int step = count/10;

int start;

if(count_move!=0) start= count_move;

else start = 0;

x = ((start-count_move)*1.0 / count)*pictureBox1->Width;

y = pictureBox1->Height / 2 + scale*avg(start);

for(int i = start;i<end;i+=SampleRate)

{

x_last = x;

y_last = y;

x = ((i-count_move)*1.0/count)*pictureBox1->Width;

y = pictureBox1->Height/2+ 2*scale*avg(i);

e->Graphics->DrawEllipse(gcnew Pen( Color::Black ),x,y,1.0,1.0);

e->Graphics->DrawLine(gcnew Pen(Color::Black), x_last,y_last,x,y);

}

Собственное мнение о практике

Прохождение предквалификационной практики на базе кафедры информатики физико-математического факультета Камчатского государственного университета имени Витуса Беринга - это очень интересны опыт для меня. Мне довелось почувствовать себя программистом, разрабатывая программное обеспечение для Института космофизических исследований и распространения радиоволн ДВО РАН.

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.