- •Курсовая работа
- •Содержание
- •1. Задание 1
- •1.1. Постановка задачи
- •1.2. Решение задачи
- •1.3. Выводы
- •2. Задание 2
- •2.1. Постановка задачи
- •2.2. Решение задачи
- •2.3. Выводы
- •3. Задание 3
- •3.1. Постановка задачи
- •3.2. Решение
- •3.3. Выводы
- •4. Задание 4
- •4.1. Постановка задачи
- •4.2. Решение
- •4.3. Выводы
- •5. Задание 5
- •5.1. Постановка задачи
- •5.2. Решение
- •5.3. Выводы
- •Заключение
- •Библиографический список
1.3. Выводы
1.3.1. Построен исходный аналоговый сигнал в программном пакете MATLAB (рис.1.2).
1.3.2. Построен график зависимости модуля спектральной плотности аналогового сигнала от частоты (рис. 1.3).
1.3.3. Определена максимальная частота в спектре аналогового сигнала fmах = 1,4 кГц путем ограничения спектра на уровне 0,1 от его максимального значения.
1.3.4. Рассчитан и выбран интервал дискретизации TД = 10-4 с и число выборок N = 11 за длительность сигнала Tc = 10-3 с. Такой интервал дискретизации был выбран для удобства написания программы в программном пакете MATLAB.
1.3.5. Построена дискретный сигнал, состоящий из N = 11 отсчетов (рис. 1.4).
1.3.6. Рассчитана зависимость модуля спектральной плотности дискретного сигнала от частоты, которая представляет собой непрерывную периодическую функцию частоты, с периодом равным частоте дискретизации fД = 10000 Гц (рис. 1.5). Так как интервал дискретизации выбран в соответствии с теоремой Котельникова, то наложения спектров отсутствует.
1.3.7. Построена спектрограмма модулей нормированных коэффициентов ДПФ, из которой видно, что модули k-го и (N-k)-го коэффициентов равны между собой (рис. 1.6).
2. Задание 2
2.1. Постановка задачи
Дискретный сигнал, представленный последовательностью из восьми отсчетов имеет интервал дискретизации TД = 10–3 с. Второе задание выполняется согласно номеру в списке (13 –– Требунский), укажем соответствующий заданию дискретный сигнал на рис. 2.1.
Рис. 2.1 –– Исходный дискретный сигнал
Требуется:
1) изобразить сигнальный граф алгоритма БПФ с прореживанием по времени для заданной последовательности;
2) используя сигнальный граф, вручную (не составляя программу) рассчитать комплексные спектральные коэффициенты для заданного дискретного сигнала;
3) изобразить на комплексной плоскости поворачивающие множители для каждой из стадий вычисления спектральных коэффициентов;
4) рассчитать модули и аргументы комплексных спектральных коэффициентов, по рассчитанным значения с использованием функций MATLAB построить графики спектральных характеристик;
5) составить скрипт MATLAB, в котором рассчитать модули и аргументы комплексных спектральных коэффициентов заданного сигнала с помощью функции fft, построить графики модуля и аргумента спектральной плотности, сравнить результаты ручного и программного расчетов;
6) рассчитать выигрыш БПФ в сравнении с алгоритмом ДПФ по числу операций комплексного умножения и сложения.
2.2. Решение задачи
Исходная 8-точечная последовательность имеет вид
x(n) = {0, 0, 1, 1, 0, 0, 1, 1}.
Разбиваем исходную 8-точечную последовательность x(n) на две 4-точечные последовательности x0(n) и x1(n), каждая из которых содержит соответственно четные и нечетные отсчеты последовательности x(n):
x0(n) = {0, 1, 0, 1} и x1(n) = {0, 1, 0, 1}.
На втором этапе прореживание последовательности x0(n) разбивается на две 2-точечные последовательности x00(n) и x01(n), каждая из которых содержит соответственно четные и нечетные последовательности x0(n):
x00(n) = {0, 0} и x01(n) = {1, 1}.
Последовательность x1(n) на две 2-точечные последовательности x10(n) и x11(n), каждая из которых содержит соответственно четные и нечетные отсчеты последовательности x1(n):
x10(n) = {0, 0} и x11(n) = {1, 1}.
Граф алгоритма БПФ с прореживанием по времени для заданной последовательности приведен на рис. 2.2.
Рис. 2.2 –– Граф алгоритма БПФ с прореживанием по времени для заданной последовательности
Определим поворачивающий множитель для каждой стадии по формуле
(2.1)
Используем формулу Эйлера, чтобы перейти к тригонометрическим функциям для дальнейшего расчета
(2.2)
где N — число отчетов в последовательности текущей стадии;
k — номер индексов текущей стадии, причем на первой стадии k = 0 для всех поворачивающих множителей, на второй стадии k = 0 и 1, на третьей стадии k = 0, 1, 2, 3.
Подставив числовые значения в формулу (2.1) получим следующее:
— для
первой стадии:
— для
второй стадии:
— для
третей стадии:
Поворачивающие множители на комплексной плоскости для всех стадий приведем на рис. 2.3.
Рис.
2.3 — Поворачивающие множители на
комплексной плоскости для стадии 1 (а),
для стадии 2 (б) и для стадии 3 (в)
Определяем
спектральные коэффициенты для
последовательности
:
Определяем
спектральные коэффициенты для
последовательности
:
Определяем
спектральные коэффициенты для
последовательности
:
Определяем
спектральные коэффициенты для
последовательности
:
В соответствии с операцией «бабочка», найдем спектральные коэффициенты на второй стадии:
В соответствии с операцией «бабочка», найдем спектральные коэффициенты на третьей стадии:
Модули и аргументы спектральных коэффициентов определяются по формулам соответственно
(2.3)
(2.4)
Подставляя в формулы (2.3) и (2.4) значения спектральных коэффициентов, получим результаты, которые укажем в таблице 2.1.
k |
X(k) |
0 |
4 |
1 |
0 |
2 |
-2+j2 |
3 |
0 |
4 |
0 |
5 |
0 |
6 |
-2-j2 |
7 |
0 |
Напишем листинг программы для определения БПФ, рассчитанного самостоятельно и с помощью функции fft:
clear all;
clc;
X = [4 1-2.414i 0 1-0.414i 0 1+0.414i 0 1+2.414i];
k = [0 1 2 3 4 5 6 7];
N = 8; fs = 10^3; f = k*fs/N;
figure(1)
subplot(2,1,1)
stem(f,abs(X))
title('Модули составляющих коэффициентов БПФ')
xlabel('f, Гц')
ylabel('|X(k)|')
grid on
subplot(2,1,2)
stem(f,angle(X))
title('Аргументы составляющих коэффициентов БПФ')
xlabel('f, Гц')
ylabel('Arg(X(k))')
grid on
x = [1 1 1 1 0 0 0 0];
Y = fft(x);
figure(2)
subplot(2,1,1)
stem(f,abs(Y))
title('Модули составляющих коэффициентов БПФ')
xlabel('f, Гц')
ylabel('|X(k)|')
grid on
subplot(2,1,2)
stem(f,angle(Y))
title('Аргументы составляющих коэффициентов БПФ')
xlabel('f, Гц')
ylabel('Arg(X(k))')
grid on
Графики зависимости модулей и аргументов от частоты, рассчитанные самостоятельно и при помощи функции fft, представлены на рис. 2.4––2.5.
Рис. 2.4 –– Модули и аргументы коэффициентов БПФ, рассчитанных при помощи fft
Рис. 2.5 ––Модули и аргументы коэффициентов БПФ, рассчитанных самостоятельно
Найдем выигрыш БПФ относительно ДПФ по числу операций:
