Главная » Просмотр файлов » Сергиенко А.Б. Цифровая обработка сигналов (2002)

Сергиенко А.Б. Цифровая обработка сигналов (2002) (1095939), страница 102

Файл №1095939 Сергиенко А.Б. Цифровая обработка сигналов (2002) (Сергиенко А.Б. Цифровая обработка сигналов (2002)) 102 страницаСергиенко А.Б. Цифровая обработка сигналов (2002) (1095939) страница 1022018-12-31СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 102)

В результате мы чаще всего даже не задумываемся над тем, что в действительности происходит при выполнении простейшего (с точки зрения пользователя) оператора присваивания. Рассмотрим небольшой пример: 1ог К = 1:Ы Ж какие-нибудь вычисления БЗ7 Программирование 5000: 0.770 весомое 6000: 1.040 зесопоз 7000. 1.210 зесопез 8000: 1.430 зесопез 9000: 1.590 зесопоз 10000: 1.810 зесопез Как видите,по мере роста размера массивов скорость работы сильно падает— для добавления последней тысячи элементов понадобилось в 30 раз больше времегги, чем для первой1 Решением этой проблемы является предварительное выделение памяти под заполняемые в цикле массивы, Для этого необходимо создать переменную нужного размера, скажем, с помощью функции иегов, формирующий массив, заполненный нулями.

Модифицируем препыдущий пример; » с1еаг а11 Ж ллЯ чистоты эксперимента » х - аегоз(1. 1е4): Ж создаем массивы » у = тегоз(1, 1е4); Ж заранее » тгс » тог и = 1 1е4 » х('х) - гамом: » ут~) = гапоп; » т~ геа)1'и, 1е3)=-0 » с=тес; » тргтптт11. ' 10: $.3т зесопг)зтп', и. 1) » Отс » епО » епс 1000: 0.060 зесопоз 2000: 0.000 зесопоз 3000: 0.000 зесопоз 4000: 0.050 весомое 5000: 0.000 зесопез 6000: О.ООО зесопОз 7000: 0.060 зесопОз 8000. 0.000 зесопоа 9000: 0.000 зесопоз 10000: 0.050 зесопез Результат налицо: работа цикла проходит равномерно, не замедляясь.

ЗАМЕЧАНИЕ Функция тос измеряет время дискретными порциями, размер которых лежит между 50 и 60 мс. Этим и обьяспяются нулевые значения, несколько раз полученные при выполнении последнего примера. При использовании оператора и)г)1е чнсло проходов цикла заранее не известно. Поэтому не известен и итоговый размер наращиваемых в таком цикле массивов. В этой ситуации можно применить компромиссный подход, увеличивая массивы 538 Приложение А. Основы работы с МАТЦАВ внутри цикла, но не при каждом проходе, а изредка, зато большими кусками.

Получается код наподобие следующего; зтзе тпсг - 10000: Ж дискретность прирашениЯ х = зегоз( 1. зтзе тпсг): Ж создание пассивов у " зегоз(1, втзе тпсгз: х-1: Ж счетчик зпенентов ыП11е сопс Ж проверЯеи. не исчерпана ги текушаЯ длина пассивов тГ 'к>1епрти(хз Ж выдепЯен допопннтепьнуа памЯть х = (х зегоз(1.

зтзе зпсгП: у = (у зегоз( 1, з1ае 1псгП, епб Ж какие-нибудь вь.чисгениЯ х(кз = ... у(к) - ... 'к 'к+1: Ж увегнчиваен значение счетчика епб Ж после завершениЯ цикла удапЯен нулевые «хвосты» х(к:епоз - П; у(д;епоз = Г3, Данный подход позволяет существенно ускорить вычнслешви если число проходов цикла заранее пе известно. До сих пор мы измеряли время выполнения фрагмсцтов программы с помощью функций Ж1с и Жос. Они весьма полезны, но в (т(АТЕЛВ имеется и более серьезный хронометрирую(ций инструмент — утилита профилирования, вызываемая командой рготт1е оп В качестве примера создадим несколько вариантов функции 1пб 01 тт, вычисляющей квадратную матрицу, значения элементов которой равны разногтти пх индексов: Ад - т — у'.

Единствепным входным параметром является размер М создаваемой матрицы. Первая версия кода будет наиболсс прямолипсшнтй — с использованием двух вложенных циклов: гопсзтоп у = 1пб бтГГ(МЗ ГОГ к = 1:М гог! =1:М у(к.1) - х - 1: епб епб Сохраняем текст функции в виде файла (пс( сп(1лп, включаем профилирование и вызываем фу. "цию: » ргогтзе оп у тпб бзтГ(100): 539 Программирование Для вывода результатов 1трофили)зевания используется следуюгцая команда; » рга111е герагт МАТ| АВ сгсисрирует отчет в НТМВ-формате и покажет его в установленном в системс шсЬ-броузере (рис. А.В).

Рио. А.в. Итоговый отчет о профилировании В итоговом отчете показаны общее время профплироваиия, число вызванных функций и время, затраченное иа их выполисиие. В данном случае кроме самой функции рго111е вызывалась только наша фуикцця 1по' б1тт. Чтобы получить подробпую ищ1тормацшо о результатах профилирования этой функции, необходимо щслкиуть иа ее имени в таблице.

После перехода по гпперссылке откроется стращща детализированной ииформации (рис. А.9). Наибольатий интерес здесь представляют выведенные под таблицей отдельные строки листинга функции, рядом с которыми показано абсолютное (в секундах) и относительное (в процентах) время их выполнения. Проапализируем получспиые результаты. Нскоторос время потрачено па обслуживаиие циклов (строки 5 и 6), ио основные затраты (71%) пришлись иа оператор присваиваиия (строка 4). Воспользуемся данным ранее советом и заранее выделим память под создаваемый массив: 1апст1оп у - 1по' о1т1(11) у - гегоз(в, иН 540 Приложение А.

Основы работы с МАТСАВ Гог К - 1'.К тог1=1И у1~.11= ~ -1; епо епб Рио. А.в. Отчет о результатах профилирования — детальная информация о вызываемых функциях Сохраняем новую версию и снова включаем профилирование (команда рготт1е герогс выключает режим профилирования): » ргот11е оп » у = 1пб б1ГГ(эбб1: » ргоГ11е герогт 541 Программирование Сгенерированный детальный отчет показан на рис.

А.10. Кзк видите, время, затрачиваемое на выполнение присваивания внутри цикла, сушсствснно уменьшилось. Завершаем работу с утилитой профилирования: » ргот11е отт Рис. А.10. Результаты профилирования оптимизированного кода ЗАМЕЧАНИЕ Приведенные варианты кода были рассмотрены лишь с целью продемонстрировать профилирование. Время выполнения данной функции можно ешс сильнее уменьшить, отказавшись от циклов вовсе. Если вам действительно нужно создать такую матрицу, следует заметить, что вдоль сс диагоналей, параллельных главной, стоят одинаковые числа, и воспользоваться функцией тоер111ж у = тоер1~тг(0:Н-1.

-(О:Н-1)): Это, пожалуй, наиболее быстрый способ. Приложение А. Основы работы с МАТГАВ МАТЮКАВ и русский язык Поскольку разработчики системы МЛТ1.ЛВ пе предусматривали работы с кириллицей, при попытке испо.ъзования русского языка в МАТЮКАВ возникает ряд проблем. Конкретный наоор возможных неприятностей зависит от конкретных версий МАТ|АВ и операционной системы, поэтому перечислим здесь лишь несколько вещей, характерных для шестой версии МАТ1.АВ.

Во-первых, в комментариях и текстовых константах нельзя использовать строчную букву «я» (это вообще довольно тюшчная беда программ, написанных иа языке С). Именно по этой причине в комментариях к листингам в данной книге везде испольауется прописная буква «Я». Во-вторых, при наборе в командной строке строчной русской буквы «с» происходит переход на слелующую строку, причем уже набранная строка не выполняется и не запоминается, В-третьих, при попытке использовать русский текст в иалписях на графиках иногда возникают проблемы с кодировкой выбираемого МАТ1.АВ шрифта.

Впрочем, послсднюк~ проолему, как правило, удается решить, изменив настройки, используемые для вывода надписей по умолчанию. Графика Говоря о графических средствах МАТЮКАВ, прежде всего нужно отметить следующее, МАТ1А — матричная программа, и ее графические команды могут лишь разнообразными способами визуализировать векторы и матрицы. На практике это означает, что точки, соответствующие элементам векторов и матриц, могут соединяться лишь прямыми линиями — никакого сглаживания или интерполяции производиться не булет. Если вы хотите, чтобы график выглядел более плавным, позаботьтесь о том, чтобы в впзуализируемом массиве было больше точек. Если строится график функции, уменьшите шаг между соседними значениями ее аргумента.

Если необходимо сгладить экспериментально полученные данные, для которых получить дополнительные точки затруднительно, следует воспользоваться функциями интерполяции (1птегр*, зр)1пе, рсмр, ог1ббаса«) илн аппроксимации (ро)ут1С; кроме того, имеется графический интерфейс аппроксимации, вызываемый командой Ваз1с Яйлам из меню Тоо!з графических окон). За более подробными сведениями обратитесь к документации МАТЮКАВ. Двумерная графика Основным средством двумерной графики является функция р1от.

Наиболее типичный вариант ее использования выглядит следующим образом: р1от(х. у> Здесь х и у — векторы олинаковой длины, задающие соответствующие координаты точек, выводимых на график. По умолчанию точки соединяются сплошными линиями синего цвета. Тип и цвет линий и символов точек можно изменить, об этом будет рассказано далее, в разделе «Настройка внешнего вида графиков».

543 Графика В качестве примера построим график функции у - з1п(тат)хх(тат), которая в МАТ1.АВ имеет имя з1пс (рис. Л.11): » х - -10:0.1:10; Ж значен~Я координаты х » у - втпс(х): Ж значениЯ координаты у » р1ог(х, у) Рис. А.тт. График, построенный функцией р!от Если на экране еще не было графиков, функция р1ос создаст графическое окно. Если иа экране уже иГислись графические окна, график будет выведен в тлекущее окно — то, которос последним выводилось на передний план, О том, как можно создать несколько графических окоп, будет рассказано далее, в разделе «Одновременный вывод нескольких грвфиковм ЗАМЕЧАНИЕ Можно использовать функцию р1от с одним аргументом — 1йот(у). Б этом случае вектор у задаст всртнквльныс координаты точек, а но горизонтали отклвльн1аютси номера элементов вектора.

Панель управления графического окна В всрхней засти графического окна расположена панель инструментов (рис. Л.12), кнопки которой выполняют следуюшие функции: 01 Неву Рюцге — создает новое графическое окно; 00 Орел Ейе — позволяет создать новое графическое окно, загрузив в него ранее сохраненный график; 544 Приложение А. Основы работы с МАТ!АВ Заче Е!Ваге хтквп !и Орел Е!1е ~ Рлл! Е1доге хвост Оо! г«евг Юдоге йо!а!е 30 '~'.Ё ~Ф:я Ф'~,';,!у А'"«и."~'„",,)~::д':~ъ.:, ВО!! Р!о! ! ! !пвеП Ыпе !плен Тех1 !плен Апов Рис.

Характеристики

Тип файла
DJVU-файл
Размер
10,69 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6487
Авторов
на СтудИзбе
303
Средний доход
с одного платного файла
Обучение Подробнее