58 / 16 / 26
Регистрация: 07.02.2015
Сообщений: 346
1

Нахождение спектральной плотности

23.02.2016, 17:30. Показов 517. Ответов 0
Метки нет (Все метки)

На разработку проекта по учёбе но с хорошими перспективами дали задание,прямое и обратное преобразование Фурье.
Ознакомившись с материалом,решил постепенно строить программу по введённым коэффициентам строит спектральную плотность.

Собственно вопрос такой.Есть формула(приведена ниже)
Я ввожу Период и Амплитуду,передаю в форму где график и по заданной формуле должно что-то хотя бы построится.

Я знаю что много неправильного в программе,поэтому прошу подсказок или примерный алгоритм(НА СЛОВАХ,не КОД) как сделать расчёт и построить график по введённым амплитудам и периоде.

Величины f,w я нахожу уже в процессе программы.


Буду признателен если словами,А НЕ КОДОМ И ПОСЛЕДУЮЩИМ ТРОЛЛИНГОМ,поможете по шагово реализовать данную задачку.
Книги,ссылки на интересные ресурсы и так далее.

Библиотеку alglib не предлагать(по заданию запрещено использовать),библиотеку ZedGraph поставил.



Код формы 1

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
40
41
42
43
44
45
46
47
48
49
50
51
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace Furie
{
    public partial class MainForm : Form
    {
      
        public MainForm()
        {
            InitializeComponent();
        }
 
        public void button2_Click(object sender, EventArgs e)
        {
            textBox1.Clear();
            textBox2.Clear();
        }
 
        public void button1_Click(object sender, EventArgs e)
        {
           
           double w,f;
           double exs = 2.8;
           double Pi = 3.14;
 
           int U, T;
           if (int.TryParse(textBox1.Text, out U) && int.TryParse(textBox2.Text, out T))
           {
               Form1 f1 = new Form1();
               f1.Owner = this;
               f1.ShowDialog();
           }
           else
           {
               MessageBox.Show("Ошибка!");
           }
        }
 
        private void MainForm_Load(object sender, EventArgs e)
        {
 
        }
    }
}
Код формы 2
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ZedGraph;
 
namespace Furie
{
    public partial class Form1 : Form
    {
        
        public Form1()
        {
            InitializeComponent();            
        }
 
       
       
        private void Form1_Load(object sender, EventArgs e)
        {
            Dictionary<double, double> coordinats = new Dictionary<double, double>();// coordinats-хранит координаты точек функции
            
            double uit, u, ur, u1, Um = 2.0;
            double w, f;
            double exs = 2.8;
            const double Pi = 3.14;
            int U=0, T=0;
 
            MainForm main = this.Owner as MainForm;
            if (main != null)
            {
                U = Convert.ToInt32(main.textBox1.Text);//Text;               
                T = Convert.ToInt32(main.textBox2.Text);
               // main.textBox2.Text = "OK";
            }
 
            f = 1 / T;
            w = 2 * Pi * f;//частота основной синусоиды
 
            for (double x = -9; x <= 9; x += 0.2)//x от -9 до 9
 
                ///u = U * Math.Pow(exs, -j * w * t);
 
               /// ur = U * T * Math.Sin(w * T / 2) / w * T / 2 * Math.Pow(exs, -j * w * T / 2);//плотность
                /// // u1 = Um / -j * w * Math.Pow(exs, -j * w * t);           
                // uit = U * T;    */  
 
 
          ///  coordinats.Add(x, x * x);//расчитываем координаты
 
               /// coordinats.Add(x, U * T * Math.Sin(w * T / 2) / w * T / 2 * Math.Pow(exs, -j * w * T / 2));//расчитываем координаты);//расчитываем координаты
                coordinats.Add(x, U * T * (Math.Sin(w * T / 2) / w * T / 2));//расчитываем координаты
               
               GraphPane myPane = zedGraphControl1.GraphPane;
 
            myPane.XAxis.Min = -10;
            myPane.XAxis.Max = 10;
 
            myPane.YAxis.Min = -10;
            myPane.YAxis.Max = 10;
 
            myPane.XAxis.Title = "U(f),мВ*с";//подпись оси X
            myPane.YAxis.Title = "f, кГц";//подпись оси Y
            myPane.Title = "Результат выполнения";//подпись графика
            myPane.AxisFill.Type = FillType.None;
            myPane.Legend.Position = LegendPos.Float;
            myPane.Legend.IsHStack = false;
            LineItem myCurve = myPane.AddCurve("Спектральная плотность", coordinats.Keys.ToArray(), coordinats.Values.ToArray(), Color.Blue, SymbolType.None);//строим график, цвет линии синий
            myCurve.Symbol.Fill = new Fill(Color.White);
            zedGraphControl1.AxisChange();
            zedGraphControl1.Refresh();
            zedGraphControl1.Visible = true;
        
        }
 
        private void zedGraphControl1_Load(object sender, EventArgs e)
        {
 
        }
        
    }
}


Вид Формы1 и Формы2 на рисунках ниже
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Миниатюры
Нахождение спектральной плотности  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2016, 17:30
Ответы с готовыми решениями:

Модуль спектральной плотности
помогите пожалуйста построить график функции дана функция h=0,09 тау=8*10-5 график получается...

Оценка спектральной плотности мощности
Добрый день! Работаю в сфере изучения воздействия плазменных двигателей, а также магнитосферной...

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

Понятие спектральной плотности сигнала
Всем добрый день. Требуется объяснить что такое спектральная плотность непериодического сигнала....

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.02.2016, 17:30

Построить график спектральной плотности мощности
Мне нужно построить график спектральной плотности мощности с этими условиями Помогите!!! Как мне...

Найти фазу спектральной плотности (MathCAD)
Здравствуйте , подскажите пожалуйста как найти фазу спектральной плотности сигнала из текущего...

Подсчёт спектральной плотности и численное интегрирование
Пытаюсь посчитать спектральную плотность используя преобразование Фурье. Добрые люди подсказали...

График спектральной плотности гармонического сигнала в Mathcad
Здравствуйте, хотел бы спросить у вас совет. Мне дано задание определить спектральную плотность...


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

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

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