Контрольная работа по "Программированию"
Автор: katya___pi • Апрель 25, 2023 • Контрольная работа • 4,583 Слов (19 Страниц) • 161 Просмотры
Условие задания
[pic 1]
[pic 2]
[pic 3]
Результат работы программы:
[pic 4]
[pic 5]
Листинг программы:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>4_lab</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="https://unpkg.com/mathjs/lib/browser/math.js"></script>
</head>
<body>
<a>Лабораторная работа N4. Вариант 1. Екатерина Пищейко. 891051</a>
<div id="signal_1"></div>
<div id="signal_2"></div>
<div id="signal_2_ampl"></div>
<div id="signal_2_ph"></div>
<div id="signal_3"></div>
<div id="signal_3_ampl"></div>
<div id="signal_3_ph"></div>
<div id="signal_4"></div>
<div id="signal_4_ampl"></div>
<div id="signal_4_ph"></div>
<script>
$(function () {
function createChart(id, title, data, type = 'line', colors = ['rgba(5,141,199,0.5)']){
$('#'+id).highcharts({
chart: {
type: type,
},
title: {
text: title,
},
colors: colors,
series: [{
data:data
}]
});
}
function NoisySignal(amplitude, freq, phase, discrPoints)
{
const A = amplitude;
const n = discrPoints;
const f = freq;
const phi = phase;
const signal = generateSignal();
const data_1 = signal.map((item,index) => [2 * Math.PI * index / 360, item])
createChart('signal_1','Исходный сигнал', data_1);
//----------------------------------------------------------------------------
const ps = parabolicSmoothing();
const data_2 = ps.map((item,index) => [2 * Math.PI * index / 360, item]);
createChart('signal_2','Сглаживание параболой четвертой степени по 15 точкам (сглаживание Спенсера)', data_2);
let numHarm = ps.length;
let sineSp = getSineSpectrum(ps, numHarm);
let cosineSp = getCosineSpectrum(ps, numHarm);
let amplSp = getAmplSpectrum(sineSp, cosineSp, numHarm);
let phaseSp = getPhaseSpectrum(sineSp, cosineSp, numHarm);
let data_ampl = [];
let data_ph = [];
for (let i=0; i < 50; i++){
data_ampl[i] = [i, amplSp[i]];
data_ph[i] = [i, phaseSp[i]];
}
createChart('signal_2_ph', 'Фазовый спектр', data_ph, 'line', ['red']);
createChart('signal_2_ampl', 'Амплитудный спектр', data_ampl, 'scatter', ['green']);
//----------------------------------------------------------------------------
const ss = slidingSmoothing(3);
const data_3 = ss.map((item,index) => [2 * Math.PI * index / 360, item]);
createChart('signal_3','Сглаживание скользящим усреднением', data_3);
numHarm = ss.length;
sineSp = getSineSpectrum(ss, numHarm);
cosineSp = getCosineSpectrum(ss, numHarm);
amplSp = getAmplSpectrum(sineSp, cosineSp, numHarm);
phaseSp = getPhaseSpectrum(sineSp, cosineSp, numHarm);
data_ampl = [];
data_ph = [];
for (let i=0; i < 50; i++){
data_ampl[i] = [i, amplSp[i]];
data_ph[i] = [i, phaseSp[i]];
}
createChart('signal_3_ph', 'Фазовый спектр', data_ph, 'line', ['red']);
createChart('signal_3_ampl', 'Амплитудный спектр', data_ampl, 'scatter', ['green']);
...