Форум программистов, компьютерный форум, киберфорум
Цифровая обработка сигналов
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 1
Регистрация: 29.10.2017
Сообщений: 114
1

Построение спектров sin и cos сигналов

16.05.2019, 19:21. Показов 2635. Ответов 0

Author24 — интернет-сервис помощи студентам
Здравствуйте. Написал программу для расчёта ДПФ, ОДПФ и амплитудного и фазового спектров.
Хочу построить фазовый и амплитудные спектры синусоидального и косинусоидального сигналов. Подскажите как это можно реализовать, т.к. у самого получается не то что должно быть. Может где-то ошибка((
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
#include "stdafx.h" 
#include "iostream"
#include "cmath"
 
using namespace std;
 
const float PI = 3.1415926535897932384626433832795;
const int N = 32;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    int s[N] = { 3, 5, 26, -23, -19, -18, 7, -8, 21, -27, 12, 13, 26, 4, 11, -11, -6, -21, 17, -2, 5, 12, 29, 4, -14, -13, -23, 7, 10, -5, 14, -2 };
    float mCos[N];
    float mSin[N];
 
    float sumCos = 0;
    float sumSin = 0;
 
    float ODPF = 0;
 
    float fCos, fSin, fCos2, fSin2;
 
    float amplitude;
    float fase;
 
    cout << endl;
    cout << "ДПФ: " << endl;
    for (int k = 0; k < N; k++)
    {
        for (int n = 0; n < N; n++)
        {
            fCos = (s[n] * (cos((2 * PI * k * n) / N)));
            fSin = (s[n] * (-sin((2 * PI * k * n) / N)));
 
            sumCos += fCos;
            sumSin += fSin;
 
            mCos[k] = sumCos;
            mSin[k] = sumSin;
        }
        cout << "     " << k << " -> " << "(" << sumCos << " | " << sumSin << "i" << ")" << endl;
 
        sumCos = 0;
        sumSin = 0;
    }
 
    cout << endl;
    cout << "ОДПФ: " << endl;
    for (int k = 0; k < N; k++)
    {
        for (int n = 0; n < N; n++)
        {
            fCos2 = (mCos[n] / N) * cos((2 * PI * n * k) / N) - (mSin[n] / N) * sin((2 * PI * n * k) / N);
 
            ODPF += fCos2;  
        }
        cout << "     " << k << " -> " << "(" << ODPF << ")" << endl;
 
        ODPF = 0;
    }
 
    cout << endl;
    cout << "Амплитуда:" << endl;
    for (int i = 0; i < N; i++)
    {
        amplitude = sqrt(pow(abs(mCos[i]), 2) + pow(abs(mSin[i]), 2));
        cout << "     " << i << " -> " << amplitude << endl;
    }
 
    cout << endl;
    cout << "Фаза:" << endl;
    for (int i = 0; i < N; i++)
    {
        fase = atan(mSin[i] / mCos[i]);
        cout << "     " << i << " -> " << fase << endl;
    }
 
    cout << endl;
 
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2019, 19:21
Ответы с готовыми решениями:

Построение спектров модулированных сигналов
Всем доброго времени суток!Недавно у меня возникли проблемы с построением графика спектра...

Вычислить сумму значений функций Z = F (SIN (X) + COS (Y), X + Y) + F (SIN (X), COS (Y) + F (SIN (X)^2 - 2 , A + B^2)
Решил выложить свои лабораторные работы 1-10 за первый курс, первого семестра...

Вычислить сумму значений функцииz=f(sin(x)+cos(y),x+y)+f(sin(x),cos(y))+(x-y,x)+f(sin^2(x)-2,a)+f(a+3,b+1)
Вычислите z-сумму значений функции...

Построение графиков Sin и Cos
Подскажите, пожалуйста код, который строит Sin и Cos - графики функции. Я для Параболы сделал, а...

0
16.05.2019, 19:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2019, 19:21
Помогаю со студенческими работами здесь

Построение графика sin, cos и tg в TChart
Я делаю &quot;Научный калькулятор&quot;. Помогите, пожалуйста, построить графики синуса, косинуса и тангенса...

Построение графика функции y=sin(x)*cos(x)
Разработать программу вычисления функций y=sin(x)*cos(x) и вывести на экран ее график. Вывести оси...

Построение графиков функций sin, cos (BCB6)
Ребята! Срочна нужна помощь девушке) Ниже приведена прога в Borland C++ Builder 6, в которой...

Построить массив по правилу: X[i]=(cos 1 +...+ cos i) / (sin 1 +...+ sin i)
Помогите, построить одномерный вещественный массив X из n элементов (n - константа).Я знаю, что...

Найти максимум функции y = sin(x) * cos(x)^2 - sin(x)^3 * cos(x)
Найти максимум функции y = sin(x) * cos(x)^2 - sin(x)^3 * cos(x) REM REM y = sin(x) *...

Обработка спектров и сигналов
Помогите пожалуйста..... Стоит следующая задача: 1.Обработка спектров(преобразование...

Построить график функции «Бабочка»: X=sin(At+B)cos(Ct), Y=sin(At+B)sin(Dt)
Написать программу построения графика функции. Вывод графика осуществлять в созданном на экране...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru