Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Обробка квазіпереодичних сигналів у реальному часі

Тип Реферат
Предмет Информатика
Просмотров
464
Размер файла
27 б
Поделиться

Ознакомительный фрагмент работы:

Обробка квазіпереодичних сигналів у реальному часі

Зміст

1. Вступ …………………………………………………………………………………………………………………………………………… 5

2. Призначення та область застосування……………………………………………………………… 6

3. Технічні характеристики……………………………………………………………………………………………… 7

3.1. Постановка задачі ……………………………………………………………………………………………………… 7

3.2. Опис функціонування програми ………………………………………………………………………… 9

3.3. Вхідні та вихідні дані ………………………………………………………………………………………… 10

3.4. Склад технічних і програмних засобів …………………………………………………… 11

4. Література ……………………………………………………………………………………………………………………………… 12

5. Додаток ……………………………………………………………………………………………………………………………………… 13

1. Вступ

Дана курсова робота присвячена розробці програмного модуля "rg.exe",який повинен виконувати обробку безперервного періодичного сигналу. Найбільше розповсюдження ця задача отримала в області медицини, де необхідно швидко і детально обробляти сигнал енцефалограма. Широке розповсюдження персональних комп'ютерів типу IBM PС XT/AT дало додатковий імпульс до розвитку апаратних і програмних засобів для рішення даних задач.

Розробка програмного продукту ведеться на основі завдання виданого кафедрою ВТіП Харківського державного політехнічного університету від 15.02.2000 р.

2. Призначення та область застосування

Програма вирішує задачу виведення на екран обробленої інформації від четирьохканального обробника сигналів в реальному масштабі часу. Прийом вищезгаданих сигналів проводиться через буферні масиви даних, які організовані у вигляді файлів на магнітному носії.

Програма призначена для адекватного відображення на екрані монітора вхідної, проміжної і вихідної інформації в системі обробки сигналів.

Областю застосування даної програми можна назвати будь-яку область людської діяльності, в якій може зажадатися визначити період квазіпереодичного сигналу і вивести результати на екран для їх подальшої обробки і використання.

3. Технічні характеристики

3.1. Постановка задачі

Для спеціалізованих автоматизованих систем (САС) ана-

ліза багатоканальної сигнальної інформації в реальному масштабі часу (РМЧ) характерні, поряд з іншими, такі основні функції, як введення і попередня (первинна) обробка сигналів.

Прогрмний модуль повинен працювати як об'єкт обробки САС,що являє собою квазіпереодичні низькочастотні аналогові сигнали,які синхронно знімаються по декількох каналах та обробка яких проводиться у тимчасовій області.

Основними вимогами, що пред'являються до такий САС, є

відсутність втрат багатоканальної сигнальної інформації, що вводиться і попериодична оперативна обробка сигналів в кожному каналі.

Виходячи з особливостей об'єкта і характеру його обробки

процес, що реалізовує багатоканальне введення і попередню обробку сигналів,визначення параметрів періодів і сигналів та формування файла параметрів,повинен виконувати наступні функціональні дії:

- рахунок і контроль тривалості сеансу;

- завдання інтервалу дискретизації сигналів;

- комутація каналів введення;

- перемикання каналів для попередньої обробки;

- отримання відфільтровувати відліку сигналу;

- обчислення першою похідною (різниці) сигналу;

- обчислення другою похідною (різниці) сигналу;

- перевірка на екстремум сигналу;

- перевірка на перегин (екстремум першої різниці) сигналу;

- накопичення інформації об екстремумах сигналу;

- накопичення інформації про перегини;

- аналіз структури виявленого періоду сигналу;

- прийняття рішення про передачу інформації о знайденом

періоді сигналу для подальшої обробки;

- гарафічна візаулізація результатів;

Для глобального процесу, що розглядається виділені ло-

кальные процеси, з яких до основних віднесені наступні:

- рахунок часу сеансу;

- квазисинхронный багатоканальне введення відліку сигналів;

- цифрова фільтрація сигналів;

- цифрове диферинцирование (перше і друге) сигналу;

- отримання особливих відліків (точок экстремумов і перегинів)

сигналу;

- виділення періодів сигналу для подальшої обробки.

Програмна реалізація на машинно-орієнтованій мові у вигляді спеціалізованого модуля повинна функціонувати в середовищі ДОС і забезпечувати роботу з таймером.

3.2. Опис функціонування програми

Програмний модуль являє собою цикл, вихід з якого проводиться закінченням роботи блока , який модолює роботу АЦП. При старті програми всі дані з файлів за допомогою яких модулюється АЦП завантажуються в масиви даних. Вся подальша робота проводиться вже над ними. Далі програма отримує наступний відлик сигналу, який прходить

2-х етапну фільтрацію ( медіанна та сглажування ). Потім програма отримує відфільтрова-ний відлік сигналу, бчислює першу похідну (різницю) сигналу,другу похідну (різницю) сигналу, виконує перевірку на екстремум та перегин,накопичує інформацію об екстремумах та перегини,аналізує структуру виявленого періоду сигналу,та якщо знайден період виконує обчислення параметрів сигналу.

Графічне відображення на екран проводиться шляхом використання стандартної бібліотеки для роботи з гпафікою. Графіки виводяться для 4-х каналів одночасно, та для кожного каналу – вхідний та відфільтрований сигнал.

Обчислені параметри сигналу зберігаются на диску з вказанням періода.

3.3. Вхідні та вихідні дані

Вхідні дані являють собою файл в якому в цілочисельному форматі знаходяться немасштабовані графіки вхідних сигналів (файли “kanal.dat").

Вихідні дані є графічні представлення масивів даних на екрані монітора, та файл з

параметрами періоду (“masp.res”).

3.4. Склад технічних і програмних засобів

Модуль попередньої обробки РЕГ сигналу розробляється для автоматизованої системи медичного контролю і діагностики, яка функціонує на базі ПЕОМ типу IBM PC/AT.

Для нормальної роботи модуля в режимі реального часу необхідна ПЕОМ на базі мікропроцесора i80386 і вище, операційна система MS DOS версії не нижче за 3.30.

Програма відкомпілювати в середовищі Windows'95 (MS DOS 4.00.950 ) під управлінням «Borland С++ 3.1 ».

4. Література

1. “Быстрые алгоритмы в цифровой обработке изображений“ . Под редакціей Т.С. Хуанга. Москва “ Радио и связь “ .1984.

2. “ Анализ результатов наблюдений ”. Дж.Тьюки. Москва “Мир”.1981.

3. “ Справочник по устройствам цифровой обработки информации “ . Под

редакціей д-ра техн. наук В.Н.Яковлева. Киев “Тэхника”. 1988.

5. Додаток

Лістинг програмного модуля

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <dos.h>

#include <graphics.h>

#include <string.h>

#define Size 1600

#define Meanings 500

#define KO 4

#define KMO 7

#define KSO 7

#define INTR 8 /* The clock tick interrupt */

#ifdef __cplusplus

#define __CPPARGS ...

#else

#define __CPPARGS

#endif

static int kf;

int stop=1;

FILE *outst;

/*--------------- входные данные (4 канала) ------------------*/

int

azp[4][Meanings],

out[4][Meanings];

int

outmed[28]={ 0,0,0,0,0,0,0,

0,0,0,0,0,0,0,

0,0,0,0,0,0,0,

0,0,0,0,0,0,0

},

outsr[28]={ 0,0,0,0,0,0,0,

0,0,0,0,0,0,0,

0,0,0,0,0,0,0,

0,0,0,0,0,0,0

},

mean[4]={0,0,0,0},

kpmo[4]={0,0,0,0},

krs[4]={0,0,0,0},

amvoi[4]={0,0,0,0},

ofsmed[4]={0,0,0,0},

sum[4]={0,0,0,0},

tmpmed[7]={0,0,0,0,0,0,0},

flags[4]={0,0,0,0},

flags1[4]={0,0,0,0},

fla[4]={0,0,0,0},

iper[4]={0,0,0,0},

iex[4]={0,0,0,0},

io[4]={0,0,0,0},

fex[4]={0,0,0,0},

imean[4]={-1,-1,-1,-1},

st[4]={2,2,2,2},

ipd[4]={0,0,0,0},

ips[4]={0,0,0,0},

per[4][10],

percnt[4]={-1,-1,-1,-1};

/*переменные программы*/

int

t,f1=0,flag,iex1=0,j,kk=0,

ps=0,z,pd=1,

dko=0,

k=1,i,m,fl=1,

dx=3,dx1=-4;

char str[5];

/*выходные данные*/

static int me[4][Meanings],/* экстремумы */

mp[4][Meanings],/* перегибы */

mo[4][Meanings],/* особые точки */

mr[4][Meanings],/* первые разности*/

ms[4][Meanings],/* секунды */

md[4][Meanings];/* дискретные отсчеты */

/* Переменные для процедуры обработки */

int ot1,ot2,ot3,ot4,ot5,ot6;

int tf,tf1,ne,vk,

int masp[4][11];

int kaz;

long sq,s;

void init_azp(int[][Meanings],char[] );

void interrupt ( *oldhandler)(__CPPARGS);

void interrupt handler(__CPPARGS)

{

if(--kf<0)

{

oldhandler();

kf=5;

}

else

outportb(0x20,0x20);

if(mean[dko]<Meanings-1)

{

amvoi[dko]=azp[dko][mean[dko]];

putpixel(dx,(dko*100+350)-amvoi[dko]/2,12);

putpixel(dx,dko*100+75,10);

mean[dko]++;

outmed[dko*7+ofsmed[dko]]=amvoi[dko];

if(mean[dko]>KMO-1)

{

for(i=0;i<7;i++)

tmpmed[i]=outmed[dko*7+i];

k=1;

while(k==1)

{

k=0;

for(i=0;i<6;i++)

if(tmpmed[i]<tmpmed[i+1])

{

m=tmpmed[i];

tmpmed[i]=tmpmed[i+1];

tmpmed[i+1]=m;

k=1;

}

}

outsr[dko*7+krs[dko]]=outmed[dko*7+3];

for(i=dko*7;i<dko*7+6;i++)

outmed[i]=outmed[i+1];

if(krs[dko]>=KSO-1)

{ // сглаживание

sum[dko]=0;

for(i=dko*7;i<dko*7+7;i++)

sum[dko]+=outsr[i];

for(i=dko*7;i<dko*7+6;i++)

outsr[i]=outsr[i+1];

++imean[dko];

out[dko][imean[dko]]=sum[dko]/7;

putpixel(dx1,(dko*100+350)-out[dko][imean[dko]]/2,14);

if(imean[dko]>=1)

{ // вычисление 1-ой разности

mr[dko][imean[dko]-1]=out[dko][imean[dko]] out[dko][imean[dko]-1];

if (imean[dko]>=3)

{ // вычисление второй разности

if(mr[dko][imean[dko]-2]<mr[dko][imean[dko]-3])

{

if(flags[dko]==1)

{

mp[dko][iper[dko]]=imean[dko]-2;

mo[dko][io[dko]++]=out[dko][imean[dko]-2];

md[dko][ipd[dko]++]=pd;

ms[dko][ips[dko]++]=ps;

iper[dko]++;

}

flags[dko]=-1;

}

else

if(mr[dko][imean[dko]-2]>mr[dko][imean[dko]-3])

{

if (flags[dko]==-1)

{

mp[dko][iper[dko]]=imean[dko]-2;

mo[dko][io[dko]++]=out[dko][imean[dko]-2];

md[dko][ipd[dko]++]=pd;

ms[dko][ips[dko]++]=ps;

iper[dko]++;

}

flags[dko]=1;

}

}

if((out[dko][1]-out[dko][0])>0)

flags1[dko]=1;

else

flags1[dko]=-1;

if((imean[dko]>14)&&(imean[dko]%6==0))

{

for(i=st[dko];i<imean[dko];i++)

{

if((out[dko][i]>out[dko][i-1])&&(flags1[dko]==-1))

{

st[dko]=i;

for(j=i+1,t=0;(t<13)&&(j<imean[dko]);t++,j++)

if(out[dko][j]<out[dko][i-1])

{fla[dko]=0;break;}

else fla[dko]=1;

if( (fla[dko]==1))

{

if(me[dko][iex[dko]-1]!=i-1 ){

me[dko][iex[dko]++]=i-1;

mo[dko][io[dko]++]=out[dko][me[dko][iex[dko]-1]];

fex[dko]=0;

md[dko][ipd[dko]++]=pd;

ms[dko][ips[dko]++]=ps;

circle(me[dko][iex[dko]-1]+10,(dko*100+350)-out[dko][ me[dko][iex[dko]-1]]/2,2);

floodfill(me[dko][iex[dko]-1]+10,(dko*100+350)-out[dko][ me[dko][iex[dko]-1]]/2,15);

}

flags1[dko]=1;

}

else

i=j;

}

else

if((out[dko][i]<out[dko][i-1])&&(flags1[dko]==1))

{

st[dko]=i;

for(j=i+1,t=0;(t<13)&&(j<imean[dko]);t++,j++)

if(out[dko][j]>out[dko][i-1])

{fla[dko]=0;break; }

else fla[dko]=1;

if((fla[dko]==1))

{

if(me[dko][iex[dko]-1]!=i-1 ){

me[dko][iex[dko]++]=i-1;

md[dko][ipd[dko]++]=pd;

ms[dko][ips[dko]++]=ps;

mo[dko][io[dko]++]=out[dko][me[dko][iex[dko]-1]];

fex[dko]=1;

circle(me[dko][iex[dko]-1]+10,(dko*100+350)-out[dko][ me[dko][iex[dko]-1]]/2,2);

floodfill(me[dko][iex[dko]-1]+10,(dko*100+350)-out[dko][ me[dko][iex[dko]-1]]/2,15);

}

flags1[dko]=-1;

}

else

i=j;

}

}

}

if((iex[dko]>1)&&(fex[dko]))

{

tf=me[0][1]-me[0][0]+1;

tf1=mo[0][14]-mo[0][12];

if(percnt[dko]==0)

line(me[dko][0]+10,dko*100+70,me[dko][0]+10,dko*100+80);

if(out[dko] [ me[dko] [iex[dko]-2]]<out[dko][ me[dko] [iex[dko]-iex[dko]]]+20)

{

fex[dko]=0;

++percnt[dko];

per[dko][percnt[dko]]=me[dko][iex[dko]-2];

if(percnt[dko]>0)

{

ne=iex[dko]-1+percnt[dko]-1;

if(ne%5)

goto End;

masp[dko][1] = dko + 1;

ot1=me[dko][(percnt[dko]-1)*4+0];

ot2=me[dko][(percnt[dko]-1)*4+1];

masp[dko][2]=out[dko][ot2];

ot3=me[dko][(percnt[dko]-1)*4+3];

masp[dko][5]=out[dko][ot3];

ot4=me[dko][(percnt[dko]-1)*4+2];

masp[dko][4]=out[dko][ot4];

masp[dko][3]=out[dko][ot4-4];

masp[dko][7]=per[dko][percnt[dko]]-per[dko][percnt[dko]-1];

if(!((masp[dko][7]>98)&&(masp[dko][7]<104) ))

goto End;

masp[dko][6]=me[dko][iex[dko]-1]-me[dko][iex[dko]-2]+1;

if(!( (masp[dko][6]>tf-3)&&(masp[dko][6]<tf+3)))

goto End;

for(int w =0;out[dko][ot2]!=mo[dko][w];w++);

if(! ( mo[dko][w]-mo[dko][w-2]+2) )

goto End;

line(me[dko][iex[dko]-2]+10,dko*100+70,me[dko][iex[dko]-2]+10,dko*100+80);

sprintf(str,"%d",masp[dko][7]);

setcolor(11);

outtextxy(me[dko][iex[dko]-2]-50,dko*100+85,str);

setcolor(15);

ot6=me[dko][(percnt[dko]-1)*4+4];

masp[dko][9]=me[dko][(percnt[dko]-1)*4+4]/100;

masp[dko][10]=me[dko][(percnt[dko]-1)*4+4]%100;

kaz=(out[dko][ot1]+out[dko][ot6])/2;

for(vk=2;vk<6;vk++)

masp[dko][vk]=masp[dko][vk]-kaz;

s=0;

for(vk=0;vk<ot4-1;vk++)

s=s+(out[dko][vk]+out[dko][vk+1])/2;

sq=(s/ot4-kaz)*masp[dko][7];

masp[dko][8]=sq;

fprintf(outst,"t%d",percnt[dko]);

fprintf(outst,"t");

for(z=1;z<11;z++)

fprintf(outst,"%5d ",masp[dko][z]);

fprintf(outst,"n");

}

}

}

}

}

else

++krs[dko];

}

else

++ofsmed[dko];

End:if(dko==3)

{

++pd;

if(pd==100)

{

++ps;

pd=0;

}

dko=0;

++dx;

++dx1;

}

else

++dko;

}

else

stop=-1;

}

void main(void)

{

int gdriver = DETECT, gmode, errorcode;

unsigned int newtic=10947,oldtic=65535L;// new tic for 100,1 in second

init_azp(azp,"kanal1.dat");

initgraph(&gdriver, &gmode, "");

errorcode = graphresult();

if (errorcode != grOk)

{

printf("Graphics error: %sn", grapherrormsg(errorcode));

printf("Press any key to halt:");

getch();

exit(1);

}

outst=fopen("masp.res","w");

if(outst==NULL){

puts("Anable open filen");

exit(1);

}

fprintf(outst,"ttttРезультаты обработки n");

fprintf(outst,"n");

fprintf(outst," ПериодttttПараметры сигнала n");

setbkcolor(0);

setcolor(1);

cleardevice();

line(1,100,640,100);

line(1,200,640,200);

line(1,300,640,300);

line(1,400,640,400);

line(1,1,1,400);

setcolor(15);

outportb(0x43,0x36);

outportb(0x40,newtic&0x00ff);

outportb(0x40,newtic>>8);

oldhandler = getvect(INTR);

setvect(INTR, handler);

while (stop==1)

{

}

setvect(INTR, oldhandler);

outportb(0x43,0x36);

outportb(0x40,oldtic&0x00ff);

outportb(0x40,oldtic>>8);

fclose(outst);

getch();

closegraph();

}

void init_azp(int mas[][Meanings],char filename[])

{

int i=0,j;

unsigned int *tmp;

FILE *f;

char mode[]="rt";

f=fopen(filename,mode);

if(f==NULL){

puts("Anable open filen");

exit(1);

}

for(i=0;i<4;i++)

{

for(j=0;j<500;j++)

{

fscanf(f,"%d",tmp);

mas[i][j]=*tmp;

}

rewind(f);

}

fclose(f);

}

Результати роботи програми


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Филиал государственного бюджетного образовательного учреждения высшего образования Московской област
Спасибо Елизавете за оперативность. Так как это было важно для нас! Замечаний особых не бы...
star star star star star
РУТ
Огромное спасибо за уважительное отношение к заказчикам, быстроту и качество работы
star star star star star
ТГПУ
спасибо за помощь, работа сделана в срок и без замечаний, в полном объеме!
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

решить 6 практических

Решение задач, Спортивные сооружения

Срок сдачи к 17 дек.

только что

Задание в microsoft project

Лабораторная, Программирование

Срок сдачи к 14 дек.

только что

Решить две задачи №13 и №23

Решение задач, Теоретические основы электротехники

Срок сдачи к 15 дек.

только что

Решить 4задачи

Решение задач, Прикладная механика

Срок сдачи к 31 дек.

только что

Выполнить 2 задачи

Контрольная, Конституционное право

Срок сдачи к 12 дек.

2 минуты назад

6 заданий

Контрольная, Ветеринарная вирусология и иммунология

Срок сдачи к 6 дек.

4 минуты назад

Требуется разобрать ст. 135 Налогового кодекса по составу напогового...

Решение задач, Налоговое право

Срок сдачи к 5 дек.

4 минуты назад

ТЭД, теории кислот и оснований

Решение задач, Химия

Срок сдачи к 5 дек.

5 минут назад

Решить задание в эксель

Решение задач, Эконометрика

Срок сдачи к 6 дек.

5 минут назад

Нужно проходить тесты на сайте

Тест дистанционно, Детская психология

Срок сдачи к 31 янв.

6 минут назад

Решить 7 лабораторных

Решение задач, визуализация данных в экономике

Срок сдачи к 6 дек.

7 минут назад

Вариационные ряды

Другое, Статистика

Срок сдачи к 9 дек.

8 минут назад

Школьный кабинет химии и его роль в химико-образовательном процессе

Курсовая, Методика преподавания химии

Срок сдачи к 26 дек.

8 минут назад

Вариант 9

Решение задач, Теоретическая механика

Срок сдачи к 7 дек.

8 минут назад

9 задач по тех меху ,к 16:20

Решение задач, Техническая механика

Срок сдачи к 5 дек.

9 минут назад
9 минут назад
10 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно