Калачиков математические основы mu_dsp_2811
.pdfФедеральное агентство связи
Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики»
(ФГОБУ ВПО «СибГУТИ»)
А. А. Калачиков
Математические основы цифровой обработки сигналов
Методические указания к практическим занятиям
Новосибирск 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