ДИСКРЕТНОЕ ПРЕОБРАЗОВАНИЕ...

24
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ МОСКОВСКИЙ ФИЗИКО-ТЕХНИЧЕСКИЙ ИНСТИТУТ (ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ) Кафедра радиоэлектроники и прикладной информатики ДИСКРЕТНОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ Методические указания к лабораторной работе по курсу Основы цифровой обработки сигналов Составители Ю.А. Романюк А.В. Филимонов МОСКВА МФТИ 2016

Upload: others

Post on 22-Oct-2020

31 views

Category:

Documents


0 download

TRANSCRIPT

  • МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИМОСКОВСКИЙ ФИЗИКО-ТЕХНИЧЕСКИЙ ИНСТИТУТ

    (ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ)

    Кафедра радиоэлектроники и прикладной информатики

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

    Методические указанияк лабораторной работе

    по курсу Основы цифровойобработки сигналов

    СоставителиЮ.А. Романюк

    А.В. Филимонов

    МОСКВАМФТИ2016

  • УДК 621.391

    Дискретное преобразование Фурье: методические указа-ния к лабораторной работе по курсу Основы цифровой обработ-ки сигналов / сост. Ю.А. Романюк, А.В. Филимонов. – М.: МФ-ТИ, 2016. – 24 с.

    Работа посвящена исследованию основных свойств дискрет-ного преобразования Фурье с помощью моделирования в средеGNU Octave или MATLAB. Предназначается для студентов, изу-чающих методы цифровой обработки сигналов.

    c© Романюк Ю.А., Филимонов А.В.,2016c© Федеральное государственное автономное

    образовательное учреждениевысшего профессионального образования«Московский физико-технический институт(государственный университет)», 2016

  • Содержание

    1. Цель работы 5

    2. Теоретическое введение 52.1. Дискретное преобразование Фурье . . . . . . . . . 52.2. Свойства и теоремы ДПФ . . . . . . . . . . . . . . 62.3. Соответствие между ДПФ, рядом Фурье и преоб-

    разованием Фурье . . . . . . . . . . . . . . . . . . . 62.4. Связь ДПФ и ДВПФ . . . . . . . . . . . . . . . . . 82.5. Интерполяция добавлением нулевых отсчётов . . . 82.6. Временная и частотная оси ДПФ . . . . . . . . . . 9

    3. Задание к допуску 10

    4. Задание к выполнению 104.1. Симметрия ДПФ . . . . . . . . . . . . . . . . . . . 104.2. Циклический сдвиг . . . . . . . . . . . . . . . . . . 104.3. Частотная ось ДПФ . . . . . . . . . . . . . . . . . . 114.4. ДПФ и ДВПФ . . . . . . . . . . . . . . . . . . . . . 114.5. Фильтрация с помощью ДПФ . . . . . . . . . . . . 12

    5. Защита эксперимента 12

    6. Контрольные вопросы 12

    7. Задачи 14

    8. Работа в среде GNU Octave или MATLAB 188.1. Рабочая директория . . . . . . . . . . . . . . . . . . 188.2. Рабочая область . . . . . . . . . . . . . . . . . . . . 188.3. Язык сценариев (m-файлы) . . . . . . . . . . . . . 19

    8.3.1. Переменные . . . . . . . . . . . . . . . . . . 198.3.2. Матрицы . . . . . . . . . . . . . . . . . . . . 198.3.3. Арифметические операции . . . . . . . . . . 20

    8.4. Сценарии . . . . . . . . . . . . . . . . . . . . . . . . 218.5. Функции . . . . . . . . . . . . . . . . . . . . . . . . 218.6. Некоторые стандартные операции . . . . . . . . . . 228.7. Рисование графиков . . . . . . . . . . . . . . . . . . 23

    3

  • Литература 24

    4

  • 1. Цель работыЦелью данной работы является изучение основных свойств

    дискретного преобразования Фурье с помощью моделирования всреде GNU Octave или MATLAB.

    2. Теоретическое введение2.1. Дискретное преобразование Фурье

    Пусть x(k) – дискретная периодическая последовательностьотсчетов с периодом N (0 ≤ k ≤ N − 1). Прямое и обратноедискретное преобразование Фурье определяется следующим об-разом:

    X(n) =1

    N

    N−1∑k=0

    x(k)W−nkN (1)

    x(k) =N−1∑n=0

    X(n)W nkN (2)

    Здесь W nkN = ej2πN nk – базисные функции ДПФ.

    Пара ДПФ справедлива и для последовательности x(k) конеч-ной длины в N отсчётов. Однако при этом следует помнить, чтообратное ДПФ дает N -периодическую функцию, совпадающуюс исходной последовательностью на интервале k = 0, 1, . . . , N−1.

    Таким образом, отличительной особенностью ДПФ являетсято, что сигнал и его спектр определяются на конечных и равныхинтервалах N . При этом меняется привычное понятие сдвига, аименно: сдвиг сигнала и его спектра на интервале N понимаетсякак циклическая перестановка отсчетов (часть сигнала или егоспектра, выходящая за пределы интервала N с одного конца,вставляется в этот интервал с другого конца). При циклическомсдвиге значения индексов k и n отсчитываются по модулю N :

    x(k −m) = x[(k −m) mod N ] = x(k −m)N

    X(n− p) = X[(n− p) mod N ] = X(n− p)N

    Например, N = 64, тогда X(69)64 = X(5).

    5

  • 2.2. Свойства и теоремы ДПФ

    Пусть x(k)↔ X(n) – пара ДПФ, тогда выполняются следую-щие свойства симметрии:

    Сигнал ДПФ1 x∗(k) X∗(N − n)2 x(N − k) X(N − n)3 x(k) = x∗(k) X(n) = X∗(N − n)4 x(k) = −x∗(k) X(n) = −X∗(N − n)5 x(k) = x(N − k) X(n) = X(N − n)6 x(k) = −x(N − k) X(n) = −X(N − n)7 x(k) = x∗(k) = x(N − k) X(n) = X∗(n)8 x(k) = x∗(k) = −x(N − k) X(n) = −X∗(n)

    Равенство Парсеваля для ДПФ:

    1

    N

    N−1∑k=0

    x(k)y∗(k) =N−1∑n=0

    X(n)Y ∗(n) (3)

    Теорема запаздывания:

    x((k − l) mod N)↔ X(n)W−nlN (4)

    Теорема о циклической свертке для ДПФ:

    1

    N

    N−1∑k=0

    x(k)h((l − k) mod N) = X(n) ·H(n) (5)

    2.3. Соответствие между ДПФ, рядом Фурье ипреобразованием Фурье

    В данной работе для анализа спектров сигналов используетсясреда Matlab/GNU Octave, в которой вычисления производятсятолько с дискретными отсчетами сигнала. Графики модуля ифазы спектральной плотности получаются путем интерполяциипо отсчетам дискретного преобразования Фурье.

    Пусть x(t) – действительный сигнал длительностью T . РядФурье его T-периодического продолжения в общем случае можетсодержать бесконечное число членов:

    x(t) =∞∑

    m=−∞

    Cmej 2πmtT , (6)

    6

  • где

    Cm =1

    T

    T∫0

    x(t)e−j2πmtT (7)

    Сигнал x(t) дискретизуется так, что на интервале T беретсяN отсчетов x(k∆t) с шагом ∆T = T

    N. Коэффициенты ДПФ для

    последовательности {x(k∆t)}

    X(n) =1

    N

    N−1∑n=0

    x(k∆t)e−j2πnkN (8)

    Используя разложение x(t) в ряд Фурье, получим

    X(n) =1

    N

    ∞∑m=−∞

    Cm

    N−1∑n=0

    e−j2π(m−n)k

    N (9)

    Так как дискретные экспоненциальные функции ортогональнына интервале N , то можно записать

    X(n) =∞∑

    l=−∞

    Cn+lN (10)

    Если ряд Фурье не содержит гармоник с номерами выше N2, то

    при четном N

    X(n) =

    {Cn, n = 0, 1, 2, . . . ,

    N2− 1

    C−(N−n), n =N2, . . . , N − 1 (11)

    Таким образом, существует ограниченный класс сигналов,для которых соответствие между коэффициентами Фурье иДПФ точное. Он включает в себя периодические сигналы с огра-ниченным спектром, дискретизованные в соответствии с теоре-мой отсчетов.

    Для апериодического сигнала x(t) конечной длительности Tотсчёты его спектральной функции

    X(ω) =

    T/2∫−T/2

    x(t)e−jωtdt (12)

    7

  • взятые с шагом ∆ω = 2πT

    также приближенно соответствуют ко-эффициентам ДПФ X(n), вычисленным по N отсчетам сигналас шагом T

    N

    X(n) =

    {Cn =

    X(n∆ω)

    T, n = 0, 1, 2, . . . , N

    2− 1

    C−(N−n), n =N2, . . . , N − 1 (13)

    2.4. Связь ДПФ и ДВПФ

    Пусть x(k) – N -точечная последовательность. ДВПФ этой по-следовательности

    X(ν) =N−1∑k=0

    x(k)e−j2πνk. (14)

    Используя обратное ДПФ, получим

    X(ν) =N−1∑n=0

    X(n)N−1∑k=0

    e−j2π(ν−nN )k. (15)

    Просуммировав геометрическую прогрессию, получим интер-поляционнаю формулу восстановления континуальной функцииX(ν) по коэффициентам ДПФ X(n)

    X(ν) =N−1∑n=0

    X(n)sin(π(ν − n

    N)N)

    sin(π(ν − nN

    ))e−j2π(ν−

    nN )(N−1). (16)

    В точках ν = nN

    имеет место X(ν) = X( nN

    ) = NX(n). Такимобразом, коэффициенты ДПФ можно рассматривать как отсчё-ты функции 1

    NX(ν), взятые с шагом ∆ν = 1

    Nв соответствии с

    теоремой отсчётов в частотной области.

    2.5. Интерполяция добавлением нулевых отсчётов

    Практический способ увеличения числа отсчётов функцииX(ν) состоит в следующем. Определим новую последователь-ность y(k) длиной в M отсчётов (M > N) путём дополненияисходной последовательности нулевыми отсчётами. Число такихнулевых отсчётов будет (M −N)

    y(k) =

    {x(k), 0 ≤ k ≤ N − 10, N ≤ k ≤M − 1 (17)

    8

  • Очевидно, что ДВПФ Y (ν) совпадает с X(ν). Тогда, отсчёт-ные значения функции X(ν) в точках νm = mM , 0 ≤ m ≤ M − 1взятые с новым шагом ∆ν = 1

    M, можно записать следующим

    образом

    X(νm) = Y (m

    M) =

    M−1∑k=0

    y(k)e−j2πmkM (18)

    Это выражение с точностью до множителя 1M

    представляетсобой M -точечное ДПФ, которое может быть вычислено, напри-мер, с использованием быстрых алгоритмов.

    Характерно, что если взять M = 2N , то дополнительные от-счёты будут расположены между N первоначальными. При этомулучшается качество визуализации спектральной функцииX(ν),которая остаётся неизменной от такого дополнения, так как онаопределяется первоначальной длиной массива x(k).

    2.6. Временная и частотная оси ДПФ

    Определим физические размерности, связанные со значения-ми индексов k и n в последовательностях x(k) иX(n). До сих порв наших рассуждениях это были просто целые числа, причём и0 ≤ k ≤ N − 1 и 0 ≤ n ≤ N − 1. Рассмотрим последовательностьx(k) из N отсчётов, взятых с шагом ∆t секунд.

    N -точечное ДПФ отображает N отсчётов во временной об-ласти в N отсчётов в спектральной. Мы хотим связать X(n)с шагом дискретизации ∆t секунд, или с частотой дискрети-зации fd = 1∆t Гц. В этом случае период повторения X(n) ра-вен fd = 1∆t Гц, шаг сетки частот ДПФ (разрешение) составляет∆f = fd

    N= 1

    N∆tГц. Таким образом, каждый отсчёт X(n) соот-

    ветствует частоте nN∆t

    = nfdN

    ГцВведём нормированную частоту ν = f

    fd= f∆t (доли частоты

    дискретизации). В этом случае период повторения X(n) равен1, шаг сетки частот ДПФ составляет ∆ν = 1

    N. Эту величину

    называют бином. Таким образом, каждый отсчёт соответствуетнормированной частоте νn = nN бин.

    9

  • 3. Задание к допуску1. Получить у преподавателя начальное состояние генератора

    случайных чисел.

    2. Скопировать скрипты для данной работы (файлы *.m) изпапки с описанием работы в папку FRTK\\. Внимание: Полный путь к файлам долженсодержать только латинские символы.

    3. Записать выражения для прямого и обратного ДПФ.

    4. Запустить Matlab/Octave. Сменить рабочую директорию нату, куда были скопированы скрипты.

    5. Вычислить 16-точечное ДПФ единичного импульса

    x(0) = 1, x(k) = 0∀k ∈ [1; 15].

    Построить график модуля спектра и фазы. Провести моде-лирование и сравнить результаты.

    6. Вычислить 16-точечное ДПФ дискретной функции включе-ния

    x(k) = 1∀k ∈ [0; 15].

    Построить график модуля спектра и фазы. Провести моде-лирование и сравнить результаты.

    4. Задание к выполнению4.1. Симметрия ДПФ

    1. Получить у преподавателя номер одного из свойств симмет-рии ДПФ, проиллюстрировать его на примере 8-ми точеч-ного ДПФ, построить графики модуля и фазы спектра изарисовать в тетрадь.

    4.2. Циклический сдвиг

    1. Открыть файл circular_shift_test.m. Задать указанное в ва-рианте значение начального состояния ГПСЧ.

    10

  • 2. Запустить скрипт circular_shift_test. Зарисовать получен-ные графики модуля и фазы ДПФ.

    3. Получить у преподавателя параметры сдвига. Модифици-ровать скрипт circular_shift_test.m так, чтобы получитьграфики модуля и фазы ДПФ для последовательности,полученной из входной последовательности циклическимсдвигом.

    4. Запустить скрипт circular_shift_test. Зарисовать получен-ные графики модуля и фазы ДПФ. Сравнить с исходнымиграфиками и объяснить полученные результаты.

    4.3. Частотная ось ДПФ

    1. Открыть файл frequency_test.m. Задать указанное в вари-анте значение начального состояния ГПСЧ.

    2. В скрипте frequency_test на вход ДПФ подается сигнал со-стоящий из суммы двух синусоид различной амплитуды счастотами f1 и f2 Гц, где f1 и f2 – целые числа, а такжешума.

    3. Определить расстояние в герцах между соседними бинами.

    4. По спектру оценить частоты f1 и f2 с точностью до 1 Гц.Указание: пронаблюдать, как на спектр влияет частота дис-кретизации (Fd) и время накопления сигнала (RunToTime).

    4.4. ДПФ и ДВПФ

    1. Открыть файл dvpf_test.m. Задать указанное в вариантезначение начального состояния ГПCЧ.

    2. В скрипте dvpf_test на вход ДПФ подается сигнал состоя-щий из суммы двух синусоид различной амплитуды с часто-тами f1 и f2 Гц. На графике рисуется огибающая, построен-ная по отсчетам ДПФ, аппроксимирующая вид ДВПФ длявходного сигнала.

    3. Требуется по спектру оценить частоты f1 и f2 с точностьюдо 1 Гц. Указание: пронаблюдайте, как на спектр влияетколичество нулей, дописанных в конец входной последова-тельности.

    11

  • 4. Сравните результаты, полученные с помощью добавлениянулей в конец последовательности, с огибающей, построен-ной по настоящим отсчетам сигнала.

    4.5. Фильтрация с помощью ДПФ

    1. Открыть файл noise_test.m. Задать указанное в вариантезначение начального состояния ГПСЧ.

    2. В скрипте noise_test на вход ДПФ подается сигнал из сум-мы двух синусоид с частотами f1 и f2 (f1 > f2 > 150 Гц) и«коричневого» шума.

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

    5. Защита эксперимента1. Выразить коэффициенты ДПФ циклически сдвинутой по-

    следовательности через коэффициенты ДПФ исходной.Сравнить с экспериментальными результатами.

    2. Как по номеру отсчета ДПФ определить частоту в Гц?

    3. От чего зависит разрешение по частоте для ДПФ?

    4. Как связаны ДПФ и ДВПФ? Продемонстрировать эту связьна полученных графиках.

    5. Почему выходной сигнал после фильтрации отличается отисходного? Как можно улучшить фильтрацию? Возможноли добиться точного совпадения выходного и исходного сиг-налов?

    6. Контрольные вопросы1. Запишите формулы ДПФ.

    2. Основные свойства ДПФ.

    3. Циклический сдвиг сигнала и его спектра при ДПФ.

    12

  • 4. Необходимость применения оконных функций при ДПФ.

    5. Прямоугольное окно, треугольное окно, окно Хана.

    6. Частотная ось ДПФ. Разрешение по частоте, дискретнаянормированная частота, связь с частотами в Гц (рад/с).

    7. Два пути перехода от непрерывному к дискретному преоб-разованию Фурье.

    8. Соответствие между ДПФ, рядом Фурье и непрерывнымпреобразованием Фурье.

    9. Реакция ДПФ-анализатора на комплексный гармоническийсигнал. Бины ДПФ.

    10. ДПФ как набор полосовых фильтров. Импульсная и частот-ная характеристика таких фильтров.

    11. Линейная и циклическая свертки дискретных сигналов.

    12. Алгоритм БПФ. Выигрыш применения БПФ при вычисле-нии свертки.

    13. Смысл ДПФ для периодической последовательности.

    14. Смысл ДПФ для конечной последовательности.

    15. Расчет амплитудного и фазового спектров периодическойпоследовательности с помощью ДПФ.

    16. Восстановление аналогового сигнала с финитным спектромпо отсчетам ДПФ и на основе ряда Котельникова.

    17. Связь ДПФ и ДВПФ.

    18. Влияние добавления нулей к исходной последовательностина разрешение по частое в ДПФ.

    19. Вычисление спектральной плотности в L точках на основеДПФ при L > N .

    20. Фильтрация с помощью ДПФ.

    13

  • 7. ЗадачиЗадачи, помеченные М, нужно промоделировать на MATLAB

    или GNU Octave.

    1. (M) Пусть x(k)↔ X(n) – пара N-точечного ДПФ, N – чет-ное.

    • Показать, что X(N2

    ) = 0, если x(k) – симметричная наинтервале N последовательность, т.е. x(k) = x(N − 1−k).• Показать, что X(0) = 0, если x(k) – антисимметричнаяна интервалеN последовательность, т.е. x(k) = −x(N−1− k).• Показать, что X(2r) = 0, r = 0, 1, . . . , R−1, R = N

    2, если

    x(k) = −x(k +R).

    2. (М) Пусть x(k) ↔ X(n) – пара N-точечного ДПФ. Образу-ем новую последовательность y(l) = x(5l), 0 ≤ l ≤ N

    5− 1.

    Выразить коэффициенты ДПФ Y(m) через X(n).

    3. Пусть x(k) ↔ X(n) – пара 2N-точечного ДПФ. Образуемновые последовательности

    g(l) = x(2l)↔ G(m)h(l) = x(2l + 1)↔ H(m)

    0 ≤ l ≤ N − 1, 0 ≤ m ≤ N − 1

    Выразить X(n) через G(m) и H(m).

    4. Пусть имеется две действительные последовательности a(k)и b(k) длиной в N отсчётов (k = 0, 1, 2, . . . , N−1). Образуемсовмещённую последовательность c(k) = a(k) + jb(k). Вы-числить все коэффициенты ДПФ A(n) и B(n) последова-тельностей a(k) и b(k) из результатов преобразования C(n)совмещённой последовательности c(k).

    5. (М) Пусть x(k)↔ X(n) – пара N-точечного ДПФ. Образуемновую последовательность y(l) длинной LN (0 ≤ l ≤ LN −1) следующим образом:

    y(l) =N−1∑k=0

    x(k)1(l − kL),

    14

  • где

    1(l − kL) ={

    1, l = kL0, l 6= kL

    и L – положительное целое число. Последовательность y(l)получается из x(k) изменением ее масштаба по оси време-ни (между каждой парой отсчетов x(k) вставляется L − 1нулей). Выразить NL-точечное ДПФ Y (m) последователь-ности y(l) через X(n).

    6. (М) Показать, что для действительной последовательностиx(k) фазовый спектр является нечётной функцией относи-тельно точки k = N

    2, т.е.

    ϕ(N

    2+ l) = −ϕ(N

    2− l)

    7. (М) Вычислить коэффициенты ДПФ X(n) для

    x(k) = cos(2π

    Nrk), 0 ≤ k ≤ N − 1

    для фиксированного значения r из диапазона 0 ≤ r ≤ N−1.

    8. (М) Пусть Y (n) обозначаетMN -точечное ДПФN -точечнойпоследовательности x(k), дополненной (M − 1)N нулями.Показать, что N -точечное ДПФ X(n) может быть полученоиз Y (n) следующим образом:

    X(n) = MY (nM), 0 ≤ n ≤ N − 1.

    9. (М) Определить ДПФN -точечной последовательности (N –четное):

    x(k) =

    {1, k = 2m0, k = 2m+ 1

    10. (М) Определить ДПФN -точечной последовательности (N –четное):

    x(k) =

    {1, 0 ≤ k ≤ N

    2− 1

    0, N2≤ k ≤ N − 1

    15

  • 11. (М) Пусть X(n) – четырехточечное ДПФ последовательно-сти

    x(k) = [1, 3/4, 1/2, 1/4].

    Изобразить последовательность y(k), ДПФ которой имеетвид

    Y (n) = exp(−j 2π4

    3n)X(n)

    12. Действительный сигнал x(t) дискретизуется с частотой fd =5 кГц так, что наложение отсутствует. Полученная такимобразом последовательность x(k) содержит N = 512 отсче-тов. По этой последовательности вычисляется 512-точечноеДПФ. Известно, что X(11) = 2000(1 + j).Что можно сказать о других X(n) и о значениях ДВПФ насоответствующих частотах?

    13. Вещественный сигнал x(t) с полосой 10 кГц дескритизуетсяв соответствие с теоремой отчетов, в результате получаетсяпоследовательность x(k). Пусть X(n) – 1000-точечное ДПФпоследовательности x(k). Какой непрерывной частоте соот-ветствуют индексы n = 150 и n = 800 в последовательностиX(n)?

    14. Вещественный сигнал x(t) с полосой 10 кГц дескритизуетсяв соответствие с теоремой отчетов, в результате получает-ся последовательность x(k) длинной в N = 1000 отсчетов.Пусть X(n) – 1000-точечное ДПФ последовательности x(k).Известны два значения

    X(900) = 1B,X(420) = 5B.

    Найти все значения ДВПФ, которые можно определить.

    15. Последовательность x(k) = x(x∆t) получена в резуль-тате дискретизации непрерывного сигнала x(t) с шагом∆t. Пусть верхняя частота спектра непрерывного сигна-ла 100кГц. Для оценки спекта вычисляется 1024-точечноеДПФ X(n) последовательности x(k). При каком наимень-шем шаге ∆t расстояние между непрерывными частотами,соответствующими отсчетам ДПФ, не превышает 1 кГц?

    16

  • 16. Последовательность x(k) = x(x∆t) получена в результатедискретизации входного сигнала x(t) шагом ∆t = 50 мкс.Пусть X(n) – 8192-точечное ДПФ последовательности x(k).Определить расстояние между непрерывными частотами,соответствующими отсчетам ДПФ.

    17. Вещественный сигнал x(t) с полосой 10 кГц дескритизу-ется в соответствие с теоремой отчетов с шагом ∆t, в ре-зультате получается последовательность x(k). Для иссле-дования спектральных свойств сигнала вычисляется N -точечное ДПФ, где N = 2ν , ν – натуральное число. Опреде-лить минимальное значение N и допустимые пределы ча-стоты дискретизации

    fdmin <1

    ∆t< fdmax,

    при которых анализ возможен, а расстояние между отсче-тами ДПФ будет меньше 5 Гц (по эквивалентным непре-рывным отсчетам).

    18. (М) Сигнал x(t) = cos(ω0t) дискретизуется с с шагом ∆t.Из полученной последовательности вырезается отрезок x(k)длиной в N отсчетов. Для проведения спектрального ана-лиза вычисляется N -точечное ДПФ. Для фиксированныхω0, N, n0 подобрать такое ∆t, чтобы X(n0) 6= 0, X(N−n0) 6=0, а остальные X(n) равны 0. Единственное ли это значение∆t?

    19. (М) Пусть x(k) – периодическая последовательность с пе-риодом N . Тогда 3N тоже можно считать ее периодом.Пусть X(n) – коэффициент ДПФ N -периодической после-довательности, а X3(n) – коэффициент 3N -периодическойпоследовательности. Выразить X3(n) через X(n). Прове-рить на последовательности

    x(k) = [1; 2], N = 2.

    20. Рассмотрим последовательность x(k) с периодом N = 10:

    x(k) =

    {1, 0 ≤ k ≤ N

    2− 1

    0, N2≤ k ≤ N − 1

    17

  • Найти связь между коэффициентами ДПФ и ДВПФ одногопериода изобразить по модулю.

    21. (М) Рассмотрим последовательность x(k) с периодом N =10:

    x(k) =

    {1, 0 ≤ k ≤ N

    2− 1

    0, N2≤ k ≤ N − 1

    Найти ДПФ этой последовательности. Изобразить модулии фазы коэффициентов ДПФ.

    22. Рассмотрим конечную последовательность из пяти отсче-тов прямоугольного импульса x(k) = [1, 1, 1, 1, 1]. Найти иизобразить по модулю ДВПФ этой последовательности Дляпериодического повторения этой последовательности с пе-риодом N = 5

    y(k) =∞∑

    r=−∞

    x(k + rN)

    найти и изобразить по модулю ДВПФ и ДПФ.

    8. Работа в среде GNU Octave илиMATLAB

    Лабораторную работу можно выполнять как в средеMATLAB, так и в GNU Octave. Далее по тексту GNU Octaveи MATLAB можно считать синонимами.

    8.1. Рабочая директория

    В среде GNU Octave можно использовать не только встроен-ные команды, но и расширять функционал с помощью допол-нительных файлов-скриптов (*.m). Без указания полного путив среде доступны файлы из так называемой «рабочей директо-рии». Сменить ее можно с помощью команды cd, а также ис-пользуя соответствующие кнопки в панели инструментов.

    8.2. Рабочая область

    В ходе работы все вычисленные ранее переменные сохраня-ются в так называемой «рабочей области». Посмотреть содер-жимое «рабоче области» можно как в отдельно окне, так и с

    18

  • помощью команды who. Очистить рабочую область можно ко-мандой clear.

    8.3. Язык сценариев (m-файлы)

    8.3.1. Переменные

    Имена переменных могут состоять из произвольных букв,цифр и знаков «_». Не рекомендуется использовать в качествеимен переменных имена стандартных функций, а также именастандартных переменных:

    • i или j – мнимая единица

    • inf – неопределенность 1/0

    • NaN – неопределенность 0/0

    • ans – результат последней операции.

    • pi – число Пи

    • rand – псевдослучайное число из интервала [0;1]

    • eps – текущая относительная точность вычислений

    8.3.2. Матрицы

    Матрицы – основной объект, с которым работает GNU Octave.Вектор – матрица размерности 1хN или Nх1. Скаляр – матрица1х1. В записи размерности матрицы «MxN» М обозначает числострок, N – число столбцов.

    Скаляры создаются с помощью оператора присваивания:

    scalar = 1.234;

    Для ввода матриц большей размерности используются симво-лы «[]». Матрицы задаются построчно, элементы одной строкиразделяются пробелом, а строки – символом «;». Например, мат-рицы можно задать так:

    matrix = [1 2;3 4; 5 6]; % матрица 3х2vector = [1 2 3]; %вектор — строкаvector1 = [1;2;3]; %вектор – столбец

    19

  • Большие матрицы можно формировать из матриц меньшейразмерности. Например, используя матрицу и вектор, заданныевыше, команда a = [matrix vector1; 0 1 2] определяет матрицу [12 1; 3 4 2; 5 6 3; 0 1 2].

    Для обращения к элементам матрицы используются «()».Чтобы получить элемент из строки i и столбца j используетсязапись A(i,j). Нумерация строк и столбцов начинается с едини-цы. Можно обращаться не только к отдельным элементам мат-риц, но также получить целые строки и столбцы. A(:,j) – j-ыйвектор-столбец, A(i,:) – i-ая строка.

    Для создания вектора-строки из последовательных элементовесть специальный оператор перечисления «:»

    u = start : step : end;

    В результате в u будет вектор, состоящий из элементов ариф-метической прогрессии, первый элемент которой равен start, ашаг – step. Последний элемент вектора будет максимальным чле-ном прогрессии, который не превышает end. Если step = 1, томожно его не указывать: v = 1:5 задает вектор [1 2 3 4 5]

    Для матриц доступны следующие полезный функции:

    • оператор «’» – транспонирует матрицу

    • size(A) – определяет размеры матрицы, возвращает вектор1х2 вида [M, N], где М – число строк, N – число столбцов.

    • length(A) – максимальный из размеров матрицы А. Удобноопределять число элементов в векторе.

    8.3.3. Арифметические операции

    Т.к. все объекты в GNU Octave – это матрицы, то и операциис ними соответствуют операциям с матрицами. Ниже приведенсписок основных операций:

    • = – присваивание;

    • + – сложение;

    • * – умножение;

    20

  • • \– деление слева (X = A \B – результат решения уравненияA ·X = B,X = A−1 ·B);

    • / – деление справа ( X = A/B – результат решения уравне-ния X ·B = A,X = A ·B−1);

    • ^– возведение в степень;

    • .* – поэлементное умножение;

    • .^– поэлементное возведение в степень;

    • ./ – поэлементное деление.

    Следуют помнить, что операции подчиняются требованиямтрадиционной матричной алгебры. GNU Octave автоматическипроверяет размерность операндов.

    8.4. Сценарии

    Сценарий записываются в текстовых файлах с расширением«.m». В этом файле перечислена последовательность операций,так, как если бы она же выполнялась посредством ввода отдель-ных команд в командной строке. Все переменные, объявленные всценарии, сохраняются в рабочей области и доступны для даль-нейшего использования в командной строке или других сцена-риях. Чтобы вызвать сценарий, нужно набрать имя его файлабез расширения в командной строке. Например, запуск сцена-рия my_script.m из рабочей директории осуществляется вводомmy_script в окне команд.

    8.5. Функции

    Чтобы не засорять рабочую область лишними переменными,часть кода сценариев можно оформить в виде функций. Функциитакже записываются в текстовых файлах с расширением «.m».В отличие от сценариев в файле функции первым должен бытьспециальный оператор, содержащей описание функции:

    function[out_params] = function_name(in_params)

    21

  • Это означает, что в файле записана функция с именемfunction_name, у которой есть входные аргументы in_params,а результат сохраняется в выходных переменных out_params.

    Завершается описание функции ключевым словом end.Название функции должно совпадать с названием файла, в

    котором она описана.Входные аргументы передаются в функцию «по значению».

    Любые изменения этих переменных в теле функции не отразятсяна их значениях в рабочей области.

    Чтобы вызвать функцию, нужно указать ее имя и список ар-гументов в круглых скобках:

    val = function_name(some_arg);

    Если указаны несколько входных/выходных значений:

    function[out1out2] = function_name(in1, in2)

    то функцию можно вызывать так:

    [a1 a2] = function_name(b1, b2);

    8.6. Некоторые стандартные операции

    В стандартной поставке GNU Octave доступны основные ма-тематический функции (exp, cos, sin, acos, atan, sqrt, abs, log,log10 и т.п.)

    Для округления можно пользоваться функциями round(x)(до ближайшего целого), fix(x) (до целого в сторону ну-ля), ceil(x)/floor(x) (до ближайшего целого в сторону увеличе-ния/уменьшения).

    Для работы с комплексными числами доступны следующиефункции:

    • arg(x) – аргумент комплексного числа;

    • abs(x) – модуль комплексного числа;

    • real(x) – действительная часть;

    • imag(x) – мнимая часть;

    • conj(x) – комплексное сопряжение.

    22

  • Иногда требуется сформировать вектора или матрицы опре-деленного вида. Для этого есть следующие функции:

    • linspace(start, end, N) – формирует вектор-строку из N эле-ментов равномерно расположенных между start и end.

    • linspace(start, end, N) – формирует вектор-строку из N эле-ментов равномерно логарифмически между start и end.

    • zeros(N, M) – создает нулевую матрицу размером NxM.Вектор-строку из M нулей можно получить с помощью ко-манды zeros(1, M).

    • ones(N, M) – создает матрицу размером NxM, все элементыкоторой равны единице. Вектор-строку из M единиц можнополучить с помощью команды ones(1, M).

    • rand(N,M) – создает матрицу размером NxM, все элементыкоторой – случайные числа, равномерно распределенные наинтервале (0.0, 1.0).

    8.7. Рисование графиков

    Команда figure создает новое окно для рисования графиков.Все команды рисования влияют на последнее созданное окно.

    Непрерывные графики выводятся с помощью командыplot(x,y). Аргументами могут быть:

    • вектора одинаковой размерности, x – значения по оси абс-цисс, y – значения по оси ординат;

    • матрицы одинаковой размерности: для каждого столбца изx выбирается соответствующий столбец из y и строится гра-фик, как в случае выше;

    • x - вектор, а y – матрица (или наоборот), такие, что дли-на вектора совпадает с одной из размерностей матрицы:для каждого столбца (строки) матрицы строится отдельныйграфик, где в качестве значений для второй оси использу-ются элементы вектора

    23

  • Также можно задать несколько пар аргументов (x,y), чтобыпостроить несколько графиков на одном рисунке (plot(x1,y1,x2,y2))

    Если нужно нарисовать график отдельных отсчетов, то сле-дует использовать команду stem. Ее аргументы аналогичны ко-манде plot.

    Повторные вызовы команд plot или stem заменяют графикв последнем окне, созданном командой figure. Для того, чтобыотобразить в одном окне несколько отдельных графиков, суще-ствует команда subplot(i,j, p). Эта команда делит окно выводаграфиков на сетку из i строк и j столбцов. Параметр p выбираетобласть окна, в которой следующая команда plot или stem бу-дет осуществлять рисование графика. Области нумеруются сле-ва направо сверху вниз (для вывода четырех графиков (i,j – p):1,1 – 1, 1,2 – 2, 2,1 – 3, 2,2 – 4).

    Литература1.РоманюкЮ.А. Свойства и преобразования дискретных сиг-

    налов // Основы цифровой обработки сигналов: учебное посо-бие. –M.: МФТИ, 2007. Ч. 1.

    2.РоманюкЮ.А. Дискретное преобразование Фурье в цифро-вом спектральном анализе учебное пособие. –M.: МФТИ, 2007.

    24

    Цель работыТеоретическое введениеДискретное преобразование ФурьеСвойства и теоремы ДПФСоответствие между ДПФ, рядом Фурье и преобразованием ФурьеСвязь ДПФ и ДВПФИнтерполяция добавлением нулевых отсчётовВременная и частотная оси ДПФ

    Задание к допускуЗадание к выполнениюСимметрия ДПФЦиклический сдвигЧастотная ось ДПФДПФ и ДВПФФильтрация с помощью ДПФ

    Защита экспериментаКонтрольные вопросыЗадачиРабота в среде GNU Octave или MATLABРабочая директорияРабочая областьЯзык сценариев (m-файлы)ПеременныеМатрицыАрифметические операции

    СценарииФункцииНекоторые стандартные операцииРисование графиков

    Литература