Математическое моделирование помех в телекоммуникации
Автор: huykrasivy • Январь 4, 2022 • Лабораторная работа • 8,962 Слов (36 Страниц) • 211 Просмотры
Лабораторная работа № 4.
Математическое моделирование помех в телекоммуникации
Цель работы: Ознакомление с методами формирования программных моделей помеховых процессов в телекоммуникационных каналах и практическими приемами их использования при создании образцов сосредоточенных радиопомех.
Ход работы.
⦁ Разработал программу для спектрального анализа сигналов (приложение 1). Реализован алгоритм быстрого преобразования Фурье на языке программирования С++ в IDE среде Visual Studio.
Интерфейс приложения показан на рис.1.
⦁
⦁ Исследуем гармонический сигнал без присутствия помех
АЧХ
ФЧХ
⦁ Добавляю гармоническую помеху. Исследую сигнал.
АЧХ
ФЧХ
⦁ Добавляю к сигналу помеху «белый шум». Осуществляю спектральный анализ.
ФЧХ
Выводы
⦁ Быстрое преобразование Фурье позволяет осуществить спектральный анализ дискретного сигнала.
⦁ Спектральный анализ позволяет выделить основные гармоники из сигнала и использовать их для подавления помех.
⦁ Особые сложности возникают при устранении случайных помех типа «белый шум» или смещенных в какую-либо частоту.
Приложение 1
Программная реализация быстрого преобразования Фурье с анализом гармонического сигнала, смешанного со случайными помехами типа «белый шум».
Program.cpp
#pragma once
#include "fft.cpp"
#include <math.h>
#include <random>
namespace CppCLRWinformsProjekt {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
/// <summary>
/// Zusammenfassung fьr Form1
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Konstruktorcode hier hinzufьgen.
//
}
protected:
/// <summary>
/// Verwendete Ressourcen bereinigen.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Button^ button1;
private: System::Windows::Forms::DataVisualization::Charting::Chart^ chart1;
private: System::Windows::Forms::Button^ button2;
private: System::Windows::Forms::GroupBox^ groupBox1;
private: System::Windows::Forms::Label^ label4;
private: System::Windows::Forms::TextBox^ textBox4;
private: System::Windows::Forms::Label^ label3;
private: System::Windows::Forms::TextBox^ textBox3;
private: System::Windows::Forms::TextBox^ textBox1;
private: System::Windows::Forms::Label^ label1;
private: System::Windows::Forms::GroupBox^ groupBox2;
private: System::Windows::Forms::Label^ label5;
private: System::Windows::Forms::TextBox^ textBox5;
private: System::Windows::Forms::Label^ label6;
private: System::Windows::Forms::TextBox^ textBox6;
private: System::Windows::Forms::TextBox^ textBox8;
private: System::Windows::Forms::Label^ label8;
private: System::Windows::Forms::Label^ label2;
private: System::Windows::Forms::TextBox^ textBox2;
...