Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 9

Синус в chart определенной частоты

26.01.2019, 23:22. Показов 2681. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в общем, как вывести синус, я понял. не могу разобраться как задавать частоту синуса. пытался написать
C#
1
chart1.Series[0].Points.AddXY(j, Math.Sin(2*Math.PI*1000*j));
ничего нормального из этого не получается.
в общем, необходимо, что бы сигнал(синус) имел частоту, которую я задаю.
и еще один вопрос, не смог разобраться как задать самому значения осей. пытался так:
C#
1
chart1.ChartAreas[0].AxisX.ScaleView.Zoom(0, 7);
но как я понял, этим я задаю только количество j, т.е. сколько измерений будет. что б допустим задал длительность 0,5 секунды, с частотой сигнала 100, и там соответственно изобразилось 50 колебаний.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.01.2019, 23:22
Ответы с готовыми решениями:

Детектор определенной частоты
Здравствуйте. Хотелось бы узнать мнения и мысли вот по какому вопросу. Есть поток звуковых волн разной частоты и амплитуды. Как создать...

Создание звуковых волн определенной частоты
Всем привет, у меня такой вопрос. Можно с помощью динамика создать звук определенной частоты, например 5 Гц.Я так понимаю, что мне нужно...

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

4
 Аватар для Aferuga
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
28.01.2019, 09:15
Цитата Сообщение от stirvet Посмотреть сообщение
что бы сигнал(синус) имел частоту, которую я задаю.
Я телепатический посох в другой мантии оставил, можно поподробней по какой именно формуле вы задаете? Ещё лучше будет если график нарисуете какой вам ориентировочно нужен.

Цитата Сообщение от stirvet Посмотреть сообщение
не могу разобраться как задавать частоту синуса.
Это можно сделать как-то так:
Кликните здесь для просмотра всего текста
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
        private void button128_Click(object sender, EventArgs e)
        {
            double Xmin = double.Parse(textBox1_1.Text);
            double Xmax = double.Parse(textBox1_2.Text);
            double Step = double.Parse(textBox1_3.Text);
            int count = (int)Math.Ceiling((Xmax - Xmin) / Step) ;
            double[] x = new double[count];
            double?[] y1 = new double?[count];
            double freq = double.Parse(textBox1_4.Text);
            for (int i = 0; i < count; i++)
            {
                try
                {
                    x[i] = Xmin + Step * i;
 
                    y1[i] = Math.Sin(degToRad(freq*x[i]));
                }
                catch (Exception ex) { };
            }
 
 
            chart3.Series[0].Points.DataBindXY(x, y1);
        }
      private double degToRad (double deg)//перевод из градусов в радианы
    {
        return (Math.PI * deg) / 180;
    }

Цитата Сообщение от stirvet Посмотреть сообщение
не смог разобраться как задать самому значения осей.
Цитата Сообщение от stirvet Посмотреть сообщение
chart1.ChartAreas[0].AxisX.ScaleView.Zoom(0, 7);
Эм... а масштабирование зачем? Под синусоиду с началом кратном 90 градусов, если не кратно подставить нужное значение в IntervalOffset во всех трех позициях:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
            chart3.ChartAreas[0].AxisX.Minimum = Xmin-Step;
            chart3.ChartAreas[0].AxisX.Maximum = Xmax+Step;
            chart3.ChartAreas[0].AxisX.MajorGrid.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Number;
            chart3.ChartAreas[0].AxisX.MajorGrid.Interval = 90;
            chart3.ChartAreas[0].AxisX.MajorGrid.IntervalOffset = Step;
            chart3.ChartAreas[0].AxisX.MajorTickMark.IntervalType = System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Number;
            chart3.ChartAreas[0].AxisX.MajorTickMark.Interval = 90;
            chart3.ChartAreas[0].AxisX.MajorTickMark.IntervalOffset = Step;
 
            chart3.ChartAreas[0].AxisX.LabelStyle.IntervalType= System.Windows.Forms.DataVisualization.Charting.DateTimeIntervalType.Number;
            chart3.ChartAreas[0].AxisX.LabelStyle.Interval = 90;
            chart3.ChartAreas[0].AxisX.LabelStyle.IntervalOffset = Step;


Добавлено через 31 минуту
З. Ы. Это переделка с другой хрени поэтому и задается таким образом.
0
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 9
08.02.2019, 22:50  [ТС]
Цитата Сообщение от Aferuga Посмотреть сообщение
Я телепатический посох в другой мантии оставил, можно поподробней по какой именно формуле вы задаете?
здесь указано ведь, формула синуса, с соответствующими аргументами. j шаг, а то что после нее, функция синуса с определенными параметрами
Цитата Сообщение от stirvet Посмотреть сообщение
chart1.Series[0].Points.AddXY(j, Math.Sin(2*Math.PI*1000*j));
0
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 9
08.02.2019, 23:25  [ТС]
взяв за основу ваш пример, такой вод код
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
double Xmin = 0;
            double Xmax = 10;
            double Step = 0.1;
            int count = (int)Math.Ceiling((Xmax - Xmin) / Step);
            double[] x = new double[count];
            double?[] y1 = new double?[count];
            double freq = 1000;
            for (int i = 0; i < count; i++)
            {
                try
                {
                    x[i] = Xmin + Step * i;
 
                    y1[i] = Math.Sin(degToRad(freq * x[i]));
                }
                catch (Exception ex) { };
            }
 
 
            chart1.Series[0].Points.DataBindXY(x, y1);
        }
        private double degToRad(double deg)//перевод из градусов в радианы
        {
            return (Math.PI * deg) / 180;
        }
получаю лажу, которую прикрепил как фото. амплитуда гуляет, и не понятно частота, явно не соответствует заданной, или относительно какой то другой длительности
Миниатюры
Синус в chart определенной частоты  
0
 Аватар для Aferuga
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
11.02.2019, 03:10
Цитата Сообщение от stirvet Посмотреть сообщение
амплитуда гуляет
Просто не хватает точек в 1 и -1 (например задайте шаг 0.001 и уже нечего гулять не будет)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.02.2019, 03:10
Помогаю со студенческими работами здесь

Как подать на колонки звук определенной частоты
вобщем задача пропищать частотой 1 000 гц на колонках в течении 200 мс. подскажите как можно реализовать ? я вобщем хочу получить чтото...

Работа со звуком: генерация звука определенной частоты
Всем привет! Помогите пожалуйста:есть ли в Delphi какая-то функция на подобии sound(x) в паскале. Нужно написать прогу которая генерирует...

Воспроизвести звук определённой частоты через звуковую карту
вообщем пишу виртуальное пианино.при нажатие на кнопку надо воспроизвести определённый звук определённой частотой . пробовал beep но это...

Как издать на внутреннем динамике звук определённой частоты? (LinuxMintx64)
Доброго времени суток, уважаемые форумчане. Вопрос прост: как издать на внутреннем динамике звук определённой частоты? Гугл...

Синус, который не похож на синус
f = 120e+6; t=-10e-6:1/f:10e-6; y = 2048*sin(2*pi*f*t); plot(t,y) Получаем нечто, как на картинке. Как я понимаю, чтобы от...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru