Разложение сигнала в базисе Уолша
Пояснительная записка к курсовой работе по дисциплине "Прикладное программирование"
Разработал студент группы 96ПУ2 Cалимов Т.Р.
Пензенский государственный университет, Кафедра "АУИС"
Пенза 1998
Введение
В настоящее время индустрия производства компьютеров и программного обеспечения для них является одной из наиболее важных сфер экономики развитых стран. Ежегодно в мире продаются десятки миллионов компьютеров. Только в США объем продаж компьютеров составляет десятки миллионов долларов и постоянно продолжает расти.
В чем же причины такого стремительного роста индустрии персональных компьютеров и их сравнительная выгодность для многих деловых применений?
Простота использования, обеспеченная с помощью диалогового способа взаимодействия с компьютером.
Относительно высокие возможности по переработке информации, наличие программного обеспечения, а так же мощных систем для разработки нового программного обеспечения.
Язык С++ - универсальный язык общего назначения, область приложений которого - программирование систем в самом широком смысле. Кроме этого, С++ успешно используется как во многих приложениях, так и в мощных операционных системах. Реализация С++ осуществлена для машин в диапазоне от самых простых персональных компьютеров до самых мощных суперкомпьютеров и для всех операционных систем.
И потому в данном курсовом проекте необходимо применить язык программирования С++ , как наиболее подходящий для решения поставленной задачи.
Прикладное программирование
Задание на курсовую работу
Тема: разработка программы для разложения сигнала в базисе Уолша.
Исходные данные:
Программа должна выполнять следующие действия:
1) принять блок данных целого типа , первый элемент в файле указывает количество значений в файле (до 10000);
2) выделить кадр из 256 значений;
3) вычислить среднее арифметическое по формуле ;
4) удалить постоянную составляющую из значений кадра xi=xi - m;
5) разложить сигнал в базисе Уолша;
6) коэффициенты разложения сохранить в файле;
7) построить график сигнала;
8) построить график функции Уолша;
9) повторить пункты 2 - 8 до конца файла со смещением 256 значений;
Составить пояснительную записку по форме:
a) задание;
б) алгоритм;
в) программа;
г) контрольный пример;
д) описание работы программы.
1 Алгоритм работы программы
2 Текст программы
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>
FILE *f; //Указатель на файл данных
FILE *out; //Указатель на выходной файл
int arr[256]; //Массив кадрa
int uolsh[512]; //Массив коэффициентов Уолша
int code, to_int; //Переменные для преобразования
int clk2, loop, clk1; //Переменные циклов
float sum; //Среднее арифметическое
float stepx, stepy; //Шаги графика по х и по y
int delta; //Смещение оси абсцисс
char ch[10]; //Для чтения строки файла
int gdriver = DETECT, gmode, errorcode; //Для инициализации графики
int del=40; //Смещение оси ординат
int max() { //Поиск максимального числа
int tmp; //Временная переменная
tmp=0;
for (clk2=0;clk2<256;clk2++)
if (tmp<abs(arr[clk2])) tmp=abs(arr[clk2]);
return tmp;
}
int ffread (FILE *filptr,char st[10]) {
int flg=0; //Флаг наличия ошибки
size_t err; //Определяет наличие ошибки
*st--;
do {
*st++;
err=fread (st,1,1,filptr);
if (err!=1) {
flg=1;
break;
}
} while (st[0]!='n');
st[0]=0;
return flg;
}
void main () {
clrscr();
if ((f = fopen("int.dat", "rt"))== NULL) {
fprintf(stderr, "Входной файл отсутствует.n");
exit (1);
}
if ((out = fopen("out.dat", "wt"))== NULL) {
fprintf(stderr, "Ошибка создания файла.n");
exit (1);
}
if (ffread (f,ch)==1) { //Чтение длины файла
fprintf(stderr, "Ошибка при чтении файла.n");
exit (1);
}
code=atoi(ch); //Преобразование строки в число
if (code<256) {
fprintf(stderr, "Длина меньше одного кадраn");
exit (1); //Длина меньше одного кадра
}
for (clk1=0;clk1<code/256;clk1++) {
clrscr ();
for (clk2=0;clk2<256;clk2++) { //Чтение одного кадра
if (ffread (f,ch)==1) { //Чтение данных из файла
fprintf(stderr, "Ошибка при чтении файла.n");
exit (1);
}
arr[clk2]=atoi (ch); //вычисление значения
}
//Вычисление среднего арифметического кадра
sum=0;
for (clk2=0;clk2<256;clk2++) sum+=arr[clk2];
printf ("Среднее значение амплитуды сигнала в кадре равно %fn",
sum/256);
//Удаление постоянной составляющей
printf ("Удаляем постоянную с
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.