LABA2_PROG
.docxФедеральное агентство связи
ордена Трудового Красного Знамени
Федеральное государственное
бюджетное образовательное учреждение высшего образования Московский технический университет связи и информатики
Лабораторная работа №2
«Генерация сложных сигналов»
Выполнил:
студент группы БРТ2102
Епифанов Георгий
Проверил:
Кандауров Николай
Москва 2023
Цель: Составить программу для генерации сложного сигнала, состоящего из четырех частей, каждая длиной 64 отсчета. Записать в текстовый файл отсчеты сложного сигнала (256 отсчетов).
Дано:
CONST GTI COS PILA
CONST : A = 3.12;
GTI : T = 12 отсчетов; Ширина 6 отсчетов;
COS : A = 1; f = 11 400 Гц; Fs = 48 кГц;
A*cos(2*pi*f*i/Fs)
PILA : A = 1; T = 12 отсчетов;
#define _USE_MATH_DEFINES
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
void write_ToFile(float* cord, int N)
{
ofstream write;
write.open("H:\\XFILE.txt");
for (int i = 0; i < N; i++)
{
write << cord[i] << endl;
}
write.close();
}
int main()
{
/*
CONST GTI COS PILA
cos = S(t) = A*cos(2*pi*f*i/Fs)
K=6 N=12
CONST : A = 3.12;
GTI : T = 12 отсчетов; Ширина 6 отсчетов;
COS : A = 1; f = 11 400 Гц; Fs = 48 кГц;
PILA : A = 1; T = 12 отсчетов;
*/
setlocale(LC_ALL, "Russian");
std::cout << "Cигнал сгенерирован. Проверьте файл!\n";
float MASS_DATA[256];
double FREQ_SAMPLING = 48000.0;
double COS_FREQ = 11400;
double CCconst = 3.12;
int Tpila = 0;
for (int i = 0; i < 64; ++i) // 1) цикл констаанты (CONST)
{
MASS_DATA[i] = float(CCconst);
}
MASS_DATA[64] = 1;
for (int i = 64; i < 128; i+=12) // 2) цикл импульса (GTI)
{
for (int j = 0; j < 6; j++)
{
MASS_DATA[i + j] = 1;
}
for (int j = 6; j < 12; j++)
{
MASS_DATA[i + j] = 0;
}
}
for (int i = 128; i < 192; ++i) // 3) цикл косинуса (СOS)
{
MASS_DATA[i] = cos(float(2 * M_PI * i * COS_FREQ / FREQ_SAMPLING));
}
MASS_DATA[192] = 0;
for (int i = 193; i < 256; ++i) // 4) цикл пилы (PILA)
{
MASS_DATA[i] = MASS_DATA[i - 1] + float(1.0 / 12.0);
if (MASS_DATA[i] > 1)
{
MASS_DATA[i + 1] = 0.0;
i++;
}
}
write_ToFile(MASS_DATA, 256);
}
XFILE.txt result
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
3.12
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
-0.809018
-0.649453
0.707107
0.760411
-0.587785
-0.852636
0.45399
0.923877
-0.309016
-0.972369
0.156433
0.996917
2.65024e-06
-0.996918
-0.156438
0.972371
0.309021
-0.923881
-0.453995
0.852642
0.58779
-0.760407
-0.707111
0.649449
0.809021
-0.522499
-0.89101
0.382683
0.951054
-0.233444
-0.987687
0.0784575
1
0.0784614
-0.987689
-0.233448
0.951058
0.382687
-0.891008
-0.522502
0.809019
0.649452
-0.707108
-0.76041
0.587786
0.852644
-0.453978
-0.923876
0.309017
0.972372
-0.156449
-0.996917
-1.22763e-06
0.996917
0.156421
-0.972371
-0.309019
0.923876
0.45398
-0.852642
-0.587788
0.760398
0.707099
-0.64945
0
0.0833333
0.166667
0.25
0.333333
0.416667
0.5
0.583333
0.666667
0.75
0.833333
0.916667
1
1.08333
0
0.0833333
0.166667
0.25
0.333333
0.416667
0.5
0.583333
0.666667
0.75
0.833333
0.916667
1
1.08333
0
0.0833333
0.166667
0.25
0.333333
0.416667
0.5
0.583333
0.666667
0.75
0.833333
0.916667
1
1.08333
0
0.0833333
0.166667
0.25
0.333333
0.416667
0.5
0.583333
0.666667
0.75
0.833333
0.916667
1
1.08333
0
0.0833333
0.166667
0.25
0.333333
0.416667
0.5
0.583333