Форум программистов, компьютерный форум, киберфорум
Наши страницы
Алгоритмы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Gyayjid
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 13
1

Нужно сделать алгоритм нахождения скачка сигнала

25.05.2013, 14:54. Просмотров 618. Ответов 9
Метки нет (Все метки)

Дан U[ ] - массив оцифрованного потенциала. Дано еще U пороговое.
Найти скачек и вернуть время скачка.
0
Миниатюры
Нужно сделать алгоритм нахождения скачка сигнала  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2013, 14:54
Ответы с готовыми решениями:

Нужно сделать алгоритм
алгоритм - блок-схему(любую) связанную с планшетным пк.

Нужно сделать алгоритм!)
Составить алгоритм, вводящий значения элементов K последовательности n целых чисел (n>0 вводится в...

Нет сигнала на мониторе после скачка напряжения
Добрый день, уважаемые! Пишу челобитную, ибо нуждаюсь в помощи знающих! Случилась беда, и мой...

Нужно сделать преобразование Шаудера для аудио сигнала
Добрый день, нужно сделать преобразование Шаудера для аудио сигнала. Алгоритм есть, но не понимаю,...

нужно сделать алгоритм вычисления
Розробити алгоритм обчислення виразу (Таблиця 11.1), використовуючи функції. Варіант 9.

9
OldFedor
7456 / 4123 / 471
Регистрация: 25.08.2012
Сообщений: 11,503
Записей в блоге: 11
25.05.2013, 16:01 2
Цитата Сообщение от Gyayjid Посмотреть сообщение
Найти скачек и вернуть время скачка.
Нужно сделать алгоритм нахождения скачка сигнала


Удачи.
2
Gyayjid
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 13
26.05.2013, 02:58  [ТС] 3
Спасибо за быстрый ответ.

Добавлено через 54 минуты
Извини можешь объяснить этот алгоритм, вот что за dt ты указал?? И вообще не много ввести в курс дела.
0
OldFedor
7456 / 4123 / 471
Регистрация: 25.08.2012
Сообщений: 11,503
Записей в блоге: 11
26.05.2013, 10:45 4
Цитата Сообщение от Gyayjid Посмотреть сообщение
объяснить этот алгоритм
1. Вводим то, что дано. Это понятно.
- dt - шаг табуляции U(t) или шаг квантования,
- n - размерность массива U(),
- Uпорог - порог компаратора,
2. Зануляем начальные условия
- i - счетчик цикла,
- к - переменная, в которой накапливается количество точек U(t) выше Uпорог,
- Umax - амплитуда выброса (скачка).
- sumT - длительность скачка в сек, можно отсюда убрать.
3. Оформляем цикл по i от 1 до n, Ux - текущее значение U(t).
4. В теле цикла проверяем, если U(t) > Uпорог, то это начало скачка.
Одновременно в этом сценарии ищем текущий максимум проверкой U(t) > Umax.
Если условие выполняется, то очередное значение U(t) еще не максимум.
Переприсваиваем Umax. Первое значение всегда попадет в Umax, если кривая всегда положительна.
Для надежности начальное значение нужно установить отрицательным abs(- U) > adc(U(t)) на
интервале анализа.
Как только U(t) пойдет на спад, то в Umax сохраниться локальный экстремум.
И в том (на подъеме) и в другом (спад) случае считаем k, т.е. как долго
выполнялось условие U(t) > Uпорог или длительность скачка.
5. Если условие U(t) > Umax не выполняется, а в к есть значение, значит до этого был скачек и его надо обработать и вывести на печать.
Если к = 0 ни какого скачка не было и далее анализируем очередное значение U(t).
6. После вывода готовим переменные к поиску следующего пика.

Удачи. Учите.
2
Gyayjid
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 13
27.05.2013, 20:05  [ТС] 5
Огромное спасибо. Первый раз на этом форуме, да вообще на форумах... не думал что так быстро мне помогут... Благодарю!!!
0
Gyayjid
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 13
08.06.2013, 17:20  [ТС] 6
Я показал ваш алгоритм и вот мне человек написал программу но она выдает не то что надо. Вы не знаете как написать программу правильно или что исправить нужно в ней?
Вот программа:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
using namespace std;
 
int main(int argc, char** argv) {
    int *Un,Up,dt;
    int sizeUn;
    cout<<"Enter size of Un:";
    cin>>sizeUn;
    Un = new int [sizeUn];
    for(int i=0;i<sizeUn;i++){
        cin>>Un[i];
    }
    cout<<"Enter next data:"<<endl<<"Up:";
    cin>>Up;
    cout<<"dt:";
    cin>>dt;
    int sumT=0;
    int k=0;
    int Umax=0;
    for(int i=0;i<sizeUn;i++){
        int Ux=Un[i];
        if(Ux>Up){
            if(Ux>Umax){
                Umax=Ux;
            }
            k++;
        }else{
            if(k!=0){
                sumT=k*dt;
                k=0;
                int dU=Umax-Up;
                Umax=0;
                cout<<"dU:"<<dU<<"\tsumT:"<<sumT;
            }
        }
    }
    delete[] Un;
    return 0;
}
0
OldFedor
7456 / 4123 / 471
Регистрация: 25.08.2012
Сообщений: 11,503
Записей в блоге: 11
08.06.2013, 17:39 7
Цитата Сообщение от Gyayjid Посмотреть сообщение
Вот программа:
Си - не моя тема.
Что делать:
- программу вместе с рис. выложите в соответствующий раздел создав новую тему (лучше всего)
- проверьте алгоритм. Это не сложно.
Задайтесь десятком точек и прямо по блок-схеме идите. Записывайте как изменяются переменные.
Я еще раз проверю. Если найду - выложу.

Навскидку увидел, что Umax=0. Я же писал - возьмите отрицательное число, например -1000000.
1
Igor3D
1227 / 594 / 74
Регистрация: 01.10.2012
Сообщений: 2,844
08.06.2013, 18:16 8
Цитата Сообщение от OldFedor Посмотреть сообщение
Си - не моя тема.
За то время что Вы (только на моей памяти) потратили на помощь халявшикам и рисование блок-схем - Вы могли раз 10 тот С освоить. Это ж нормальный язык, не какой-то Васька. Что мешает?
0
OldFedor
7456 / 4123 / 471
Регистрация: 25.08.2012
Сообщений: 11,503
Записей в блоге: 11
08.06.2013, 18:33 9
Цитата Сообщение от Igor3D Посмотреть сообщение
Что мешает?
Еще Спиноза говорил - "Свобода - осознанная необходимость"
Значит острой необходимости [/B]не было.
А если серьезно, то конечно немного знаю, но не на столько, что бы советовать.
По большому счету, Igor3D, Вы правы.
0
Gyayjid
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 13
08.06.2013, 19:17  [ТС] 10
Цитата Сообщение от OldFedor Посмотреть сообщение

Навскидку увидел, что Umax=0. Я же писал - возьмите отрицательное число, например -1000000.
Поставил -1000000 и уже выдает что то похожее. Спасибо.
0
08.06.2013, 19:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2013, 19:17

Задан вид периодического сигнала и его числовые характеристики. Для данного сигнала необходимо сделать
Задан вид периодического сигнала и его числовые характеристики. Для данного сигнала необходимо:...

Есть программа, которая воспроизводит звуковой сигнал, нужно сделать, чтобы была возможность ставить определённое время длительности сигнала...
Есть программа, которая воспроизводит звуковой сигнал, нужно сделать, чтобы была возможность...

Нужно сделать функцию расшифровки (алгоритм Цезаря)
Всем привет ! Есть моя функция шифрования char find_and_encr_char(char what_find,int key){ ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru