Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Калачиков математические основы mu_dsp_2811

.pdf
Скачиваний:
47
Добавлен:
11.04.2015
Размер:
1.53 Mб
Скачать

Федеральное агентство связи

Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики»

(ФГОБУ ВПО «СибГУТИ»)

А. А. Калачиков

Математические основы цифровой обработки сигналов

Методические указания к практическим занятиям

Новосибирск 2014

УДК 621.391(075)

Калачиков А. А. Математические основы цифровой обработки сигналов: Методические указания к практическим занятиям.- Новосибирск: СибГУТИ, 2014.- 67 стр.

Для студентов, изучающих учебные дисциплины «Радиосвязь, радиовещание и телевидение», «Радиотехника», а также для бакалавров, магистров и аспирантов по специальности «Телекоммуникационные системы».

Пособие содержит описание практических и лабораторных работ по курсу МоЦОС, выполняемых в течение семестра. В приложении приведено задание на контрольную работу. Наличие большого количества примеров позволяет приступить к изучению курса самостоятельно.

Для направления 210300 – «Радиотехника», 210400 – «Телекоммуникации».

Кафедра радиотехнических систем

Ил. – 32, табл. – 8, список лит. – 5 наим.

Рецензенты: к.т.н., проф. кафедры САПР СибГУТИ Микушин А. В.

Утверждено редакционно-издательским советом СибГУТИ в качестве методических указаний.

©ФГОБУ ВПО Сибирский государственный университет телекоммуникаций и информатики, 2014

 

 

Оглавление

 

Введение ...................................................................................................................

5

1

Вычисления в MATLAB...................................................................................

6

1.1

 

Простейшие вычисления...............................................................................

6

1.2

 

Работа с редактором m-файлов ....................................................................

7

1.3

 

Переменные в MATLAB ...............................................................................

7

1.4

 

Операторы и встроенные функции MATLAB ............................................

8

1.5

 

Скрипт и функция ..........................................................................................

9

1.6

 

Сообщения об ошибках и исправление ошибок.......................................

10

1.7

 

Применение оператора : (двоеточие).........................................................

11

1.8

 

Логические операторы ................................................................................

11

1.9

 

Комплексные числа .....................................................................................

12

1.10

Матрицы и векторы ..................................................................................

13

1.11

Векторизация циклов................................................................................

15

1.12

Предварительное выделение памяти ......................................................

15

1.13 Графический вывод результатов вычислений .......................................

16

2 Описание интерактивной оболочки SPTool .................................................

26

2.1

 

Импорт сигналов ..........................................................................................

27

2.2

 

Просмотр сигналов ......................................................................................

28

2.3

 

Создание спектров сигналов.......................................................................

30

2.4

 

Применение разработанного фильтра .......................................................

31

3

Описание интерактивной среды FDATool ..................................................

32

3.1

 

Синтез фильтра ............................................................................................

33

3.2

 

Просмотр характеристик фильтра..............................................................

34

Практическая работа №1 ......................................................................................

35

ОПИСАНИЕ СИГНАЛОВ В МATLAB .............................................................

35

Практическая работа №2 ......................................................................................

42

ДИСКРЕТНЫЕ СИСТЕМЫ. ДИСКРЕТНАЯ СВЕРТКА ................................

42

Практическая работа №3 ......................................................................................

44

3

ДИСКРЕТНОЕ ВО ВРЕМЕНИ ПРЕОБРАЗОВАНИЕ ФУРЬЕ. ЧАСТОТНЫЕ

ХАРАКТЕРИСТИКИ ДИСКРЕТНЫХ СИСТЕМ..............................................

44

Практическая работа №4 ......................................................................................

46

ДИСКРЕТНОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ. СВОЙСТВА ...........................

46

Практическая работа №5 ......................................................................................

53

ИЗУЧЕНИЕ ПРАКТИЧЕСКОГО ПРОЕКТИРОВАНИЯ ЦИФРОВЫХ

 

ФИЛЬТРОВ МЕТОДОМ ВЕСОВЫХ ОКОН В MATLAB ...............................

53

Практическая работа №6 ......................................................................................

56

ПРОЕКТИРОВАНИЕ МНОГОСКОРОСТНЫХ ФИЛЬТРОВ..........................

56

4 Приложение 1 ..................................................................................................

58

Литература .............................................................................................................

66

4

ВВЕДЕНИЕ

Цифровая обработка сигналов является основой для практической реализации множества алгоритмов в современных системах связи. Задача повышения эффективности и скорости передачи в беспроводных системах связи и вещания решается при помощи все более сложных сигналов и методов их приема. Для эффективной разработки аппаратуры и ее эксплуатации инженеру необходимо понимание основных алгоритмов спектрально-временных преобразований и их реализации в цифровой форме. Основы данных алгоритмов изучаются в курсе “Математические основы цифровой обработки сигналов”. Применение вычислительной среды Matlab в качестве основного рабочего инструмента позволяет организовать эффективное обучение и практическое освоение алгоритмов обработки.

Данное пособие содержит описание практических и лабораторных работ, выполняемых в течение семестра. В приложении приведено задание на курсовую работу. Наличие большого количества примеров позволяет приступить к изучению курса самостоятельно.

М-файлы с текстами программ, применяемые в практических и лабораторных занятиях находятся в соответствующей директории на рабочем месте.

5

1 Вычисления в Matlab

Название системы Matlab произошло от сокращенного – MATrix LABoratory – матричная лаборатория. Применение матриц как основных объектов системы способствует уменьшению числа циклов, которые очень распространены при выполнении матричных вычислений на обычных языках программирования высокого уровня, и облегчению реализации параллельных вычислений.

Центральным понятием всех математических систем является математическое выражение. Оно задает то, что должно быть вычислено в численном (реже символьном) виде. Математические выражения строятся на основе чисел, констант, переменных, операторов, функций и разных спецзнаков. Специфика MATLAB в том, что математические выражения задаются в виде одной строки. Например, 23 записывается как 2^3.

Знак ; (точка с запятой) в конце строки ввода блокирует вывод результата вычислений на экран, например:

>> 2^3;

Однако специальная переменная ans (от answer – ответ) позволяет вывести результат вычислений:

>> ans ans = 8

1.1Простейшие вычисления

>>3 + 8 % Сложение ans =

11

>>12 / 4; % деление

>>ans - 2 % вычитание 2 из последнего результата ans

ans = 1

>>x = 12 / 3;

>>y = x^2 * (12 - ans)

ans = 176

Последовательность выполнения операций можно изменять при помощи скобок. Если после выражения ставится оператор ; (точка с запятой), то результат операции не выводится на экран. Комментарии пишутся в строке после символа %, строка после символа % игнорируется MATLAB.

6

1.2Работа с редактором m-файлов

Любую последовательность команд в MATLAB можно оформить в виде m-файла, называемого скрипт-файлом. Для создания и редактирования таких файлов служит специальный редактор m-файлов. Его пустое окно открывается командой New (Новый файл), которую можно ввести активизацией кнопки с тем же названием в панели инструментов или из позиции File меню окна

MATLAB.

К примеру, введем такой скрипт-файл вычисления суммы чисел 2 и 3 и построения графика синусоиды:

x=0:0.1:15

y=sin(x)

plot(x,y)

Введенный файл можно пустить из окна редактора, исполнив команду Run в позиции Debug (Отладка) меню окна редактора, или набрав имя файла в командной строке и нажав на Enter. В результате будет вычислено выражение 2 + 3 и число 5 появится в окне сессии MATLAB. Будет также построен в отдельном окне график синусоидальной функции.

1.3Переменные в MATLAB

Переменные – это имеющие имена объекты, способные хранить некоторые, обычно разные по значению, данные. В зависимости от этих данных переменные могут быть числовыми или символьными, векторными или матричными. На языке программирования MATLAB можно задавать переменным определенные значения. Для этого используется операция присваивания, вводимая знаком равенства:

Имя-переменной = Выражение

В MATLAB явное определение переменных не требуется. Определение происходит автоматически при первоначальном присваивании переменной значения или при инициализации переменной. Если в процессе вычислений обращаются к несуществующей переменной, MATLAB выдает сообщение об ошибке. Имена переменных и их значения могут быть получены при помощи команд who или whos, а также в графическом окне Workspace. Выводятся переменные, их размерности и занимаемый ими объем памяти.

Для удаления ранее определенных переменных из памяти применяют команду clear (имя переменной).

7

1.4Операторы и встроенные функции MATLAB

Оператор – это специальное обозначение для определенной операции над данными – операндами. Например, простейшими арифметическими операторами являются знаки суммы +, вычитания -, умножения * и деления /. Операторы используются совместно с операндами. Например, в выражении 2+3 знак + является оператором сложения, а числа 2 и 3 – операндами.

Функции это имеющие уникальные имена объекты, выполняющие определенные преобразования своих аргументов и при этом возвращающие результаты этих преобразований. Возврат результата – отличительная черта функций. При этом результат вычисления функции с одним выходным параметром подставляется на место ее вызова, что позволяет использовать функции в математических выражениях, например функцию sin в 2*sin(pi/2).

Функции в общем случае имеют список аргументов (параметров), заключенный в круглые скобки. Например, функция Бесселя записывается как bessel(NU,X). В данном случае список параметров содержит два аргумента – NU в виде скаляра и X в виде вектора. Многие функции допускают ряд форм записи, отличающихся списком параметров. Если функция возвращает несколько значений, то она записывается в виде

[Y1, Y2,...]=func(X1, X2,...),

где Y1, Y2,... – список выходных параметров и X1, X2,... – список входных аргументов (параметров).

Таблица 1.1 – Математические функции

Функция

Описание

Пример

exp

Экспоненциальная

>> exp(2)

 

функция

ans = 7.3891

Log, Log10, Log2

Натуральный логарифм,

>> log(10)

 

десятичный, по основа-

ans = 2.3026

 

нию 2

 

sqrt

Квадратный корень из

>> sqrt(25)

 

числа

ans = 5

fix

Целая часть числа

>> fix(7.389)

 

 

ans = 7

mod

Деление по модулю

>> mod(7,3)

 

 

ans = 1

rem

Остаток целочисленного

>> rem(12,9)

 

деления

ans = 3

8

MATLAB содержит ряд символов, которые зарезервированы системой (таблица 1.2).

Таблица 1.2 – Зарезервированные символы

Имя

Описание

ans

Сохраненный результат последнего

 

вычисления

eps

Точность между двумя реальными

 

числами

pi

Число Пи

i/j

Мнимая часть комплексного числа

Inf

Символ бесконечности

NaN

Символ неопределенности

1.5Скрипт и функция

Хотя ядро новых версий системы MATLAB содержит уже более 1000 встроенных функций (не считая функций, определенных в десятках пакетов расширения), всегда может понадобиться какая-то нужная пользователю функция. Язык программирования системы MATLAB предоставляет ряд возможностей для задания функций пользователя. Одна из таких возможностей заключается в применении функции inline, аргументом которой надо в апострофах задать выражение, задающее функцию одной или нескольких переменных. В приведенном ниже примере задана функция двух переменных – суммы квадра-

тов sin(x) и cos(y):

sc2=inline('sin(x).^2+cos(y)^.2') sc2 =

Inline function:

sc2(x,y) = sin(x).^2+cos(y).^2

Можно также задавать свои функции в виде m-файлов. Например, можно в окне редактора m-файлов (открывается командой New в меню File) создать m- файл с именем sc2 и листингом:

function y=sc2(x,y) y=sin(x).^2+cos(y).^2

Записав его на диск, можно командой type sc2 вывести листинг созданной функции:

type sc2

function y=sc2(x,y) y=sin(x).^2+cos(y).^2

9

1.6Сообщения об ошибках и исправление ошибок

Большое значение при диалоге с системой MATLAB и отладке программ в ней имеет диагностика ошибок. Рассмотрим ряд примеров, поясняющих технику диагностики. Введем, к примеру, ошибочное выражение

>> sqr(2)

и нажмем клавишу ENTER. Система сообщит об ошибке:

??? Undefined function or variable 'sqr' % % Неопределенная функция или пе-

ременная sqr

>> x

??? Undefined function or variable 'x'. % Неопределенная функция или переменная X.

Иногда в ходе вывода результатов вычислений появляется сокращение NaN (от слов Not a Number – не число). Оно обозначает неопределенность, например вида 0/0 или Inf/Inf, где Inf – системная переменная со значением машинной бесконечности. Могут появляться и различные предупреждения об ошибках (на английском языке). Например, при делении на 0 конечного числа появляется предупреждение «Warning: Devide by Zero» («Внимание: деление на нуль»).

Диапазон чисел, представимых в системе, лежит от 10–308 до 10+308.

Впримере

x= 0:pi/20:3*pi;

y= sin(x);

x = 0:pi/40:3*pi; plot(x,y)

выводится сообщение об ошибке:

Error using ==> plot

Vectors must be the same lengths. % векторы должны быть одинаковой размерности, длины, но команда Plot получает два вектора с разным количеством переменных x и y.

Следующая ошибка возникает при перемножении матриц.

v1=[2 3 4]; v2=[4 5 6 ];

%Вычислим скалярное произведение

c = v 1 v 2

??? Error using ==> mtimes

Inner matrix dimensions must agree.

%Система выдает ошибку о несогласованности размерностей перемножаемых матриц.

10