Цели
работы:
Исследовать
свойства
преобразования
Фурье
для
дискретных
сигналов.
Задачи
работы:
1.
Изучение
процессов
и
особенностей
применения
ДПФ
к
дискретным
сигналам.
2.
Изучение
свойств
ДПФ
на практике.
3.
Научиться
применять
инструменты
программного
пакета
MatLab
для
ДПФ.
4.
Ознакомиться
с
модулем
SpTool
Краткий
конспект
теоретической
части
Теорема
Фурье
Дискретное
Преобразование
Фурье
Свойства
ДПФ
Быстрое
преобразование
Фурье
дата
Оценка
(max
5)
Бонус
за
сложность
подпись
«Дискретное преобразование Фурье»
В
таблице
1
представлены
функции
MatLab,
используемые
для
работы
с
ДПФ.
Таблица
1
–
Функции
Matlab
для
работы с
ДПФ
производится
для каждого
столбца
в
N
обычно
задается
как 2 в некоторой
В
результате
применения
функции
fft
получим
комплексную
составляющую
спектра
исходного
сигнала,
представленную
в
алгебраической
форме.
По
составляющим
вектора
X
спектра.
можно
определить
модуль,
отдельно
действительную
и
отдельно
мнимую
составляющие
Задание:
разработать
скрипт
для
построения
действительной
и
мнимой
составляющей
сигнала
и
Вашему
варианту.
графиков
анализируемого
сигнала,
график
модуля
гармоник
согласно
N=8; %Количество
отсчетов. n=0:1:7; %Индексы
отсчетов. t=1/8000; %Частота
дискретизации.
x=sin(2*pi*1000*n*t)+0.5*sin(2*pi*2000*n*t+3*pi/4);%Входной
сигнал.
figure(1)
plot(x),grid
on %График анализируемого сигнала.
y=fft(x) %Преобразование Фурье.
figure(2) %График
действительной составляющей.
stem(real(y)),grid
on
figure(3)
stem(imag(y)),grid
on %График
мнимой составляющей.
Xm=abs(y)
figure(4) %График
модуля гармоник. stem(Xm),grid
on
Xmm=2*abs(y)/N
figure(5)
stem(Xmm),grid
on %График
модуля гармоник (нормированный).
(вклейте
разработанную
Вами
программу)
y
= fft(x)
Вычисляет
прямое
ДПФ
для вектора
X
;
если
X
-матрица,
то преобразование
отдельности
y
= fft(x, N)
Предварительно
приводит
данные
к
размеру
N
,
урезая
их
или
дополняя
нулями.
Размер
степени.
x
= ifft(y)
x
= ifft(y, N)
аналогичные
команды
для вызова
функции
обратного
ДПФ.1. Дискретное преобразование Фурье в программном пакете MatLab
Функция
Описание
Вклейте
полученные
графики
в
соответствующие
поля:
Рисунок
1
–
Исходная
последовательность
Рисунок
2
–
Действительная
часть
ДПФ
Рисунок
3
–
Мнимая
часть
ДПФ
Рисунок
4
–
Ненормированный
модуль
ДПФ
Рисунок
5
–
нормированный
модуль
ДПФ
Выводы:
Если
входной
сигнал
содержит
компонент
с
некоторой
промежуточной
частотой,
лежащий
между
аналитическими
частотами
mf
s
N
,
то
этот
входной
сигнал
проявится
в
некоторой
степени
на
всех
N
частотах,
на
всех
отсчѐтах.
Задание:
разработать
код
m-файла,
результатом
выполнения
которого
являются
графики
выходного
спектра
для
заданной
частоты
и
частоты,
увеличенной
на
10%
согласно
Вашему
варианту
задания.
N=8; %Количество
отсчетов.
n=0:1:7; %Индексы
отсчетов.
t=1/8000; %Частота
дискретизации.
x=sin(2*pi*2200*n*t); %Анализируемый
сигнал.
y=fft(x); %Преобразование
Фурье
в
диапазоне
0-(N-1).
xp=fftshift(y) %Преобразование
Фурье
в
диапазоне
(–N/2)-(N/2-1).
f=-N/2:1:(N/2-1)
a=abs(xp)/4 %Нормированный
модуль в
диапазоне
(–N/2)-(N/2-1).
figure(1) %График
нормированного
модуля
stem(f,a),grid
on %в
диапазоне
(–N/2)-(N/2-1).
x2=sin(2*pi*2500*n*t);
%Анализируемый
сигнал.
y2=fft(x2); %Преобразование
Фурье
в
диапазоне
0-(N-1).
xp2=fftshift(y2) %Преобразование
Фурье
в
диапазоне
(–N/2)-(N/2-1).
a2=abs(xp2)/4 %Преобразование
Фурье
в
диапазоне
(–N/2)-(N/2-1).
figure(2) %График
нормированного
модуля
stem(f,a2),grid
on %в
диапазоне
(–N/2)-(N/2-1).
(вклейте
разработанную
Вами
программу)
Вклейте
результаты
выполнения
скрипта:
Выводы:
Рисунок
6
–
Спектр
входной
последовательности
для
частоты
Гц
Рисунок
7
–
Спектр
входной
последовательности
для
частоты
Гц
Эффект
растекания
спектра
При ДПФ мы предполагали (умалчивая), что последовательность отсчетов
анализируемого
сигнала
является
периодически
продолженной
вперед
и
назад
во
времени.
При
этом,
если
значения
начальных
и
конечных
отсчетов
сигнала
сильно
отличаются,
при
периодическом
повторении
на
стыках
сегментов
возникают
скачки,
из-за
которых
спектр
сигнал
расширяется.
Задание:
разработать
скрипт
для
построения
характеристик
кратной
гармонике
согласно
вашему
варианту.
на
частоте,
кратной
и
не
Вклейте
результаты
выполнения
скрипта:
Выводы:
Рисунок
8
–
Спектр
сигнала
для
частоты _Гц
N=32;
n=0:1:31; t=1/32000;
x=sin(2*pi*8000*n*t);
y=fft(x); xp=fftshift(y)
f=-N/2:1:(N/2-1)
a=abs(xp)/16 figure(1) stem(f,a),grid
on
x2=sin(2*pi*8500*n*t);
y2=fft(x2); xp2=fftshift(y2) a2=abs(xp2)/16 figure(2)
stem(f,a2),grid
on
(вклейте
разработанную
Вами
программу)
Выводы:
Рисунок
9
–
Спектр
сигнала
для
частоты
8500_Гц
N=5;
fs=100;
t=-1:1/fs:1-1/fs;
nh=(1:N)*2-1;
y=cos(2*pi*nh'*t/T);
Am=2/pi./nh;
Am(2:2:end)=-Am(2:2:end);
s1=y.*repmat(Am',1,length(t));
s2=cumsum(s1);
for
k=1:N
subplot(2,2,k) plot(t,
s2(k,:))
end
Спектр
меандра
Меандр
–
это
последовательность
прямоугольных
импульсов
со
скважностью,
равной
двум.
В
спектре
меандра
присутствуют
только
нечетные
гармоники:
2
A
2
2
2
A
1
1
s(t
)
2
cos t
cos
3
t
cos
5
t
T
3
T
5
T
Гармоники,
образующие
меандр
имеют
амплитуду,
обратно
пропорциональную
номеру
соответствующей
гармоники.
Задание:
разработать
код
m-файла,
результатом
выполнения
которого
являются
графики
меандра,
реализованные
с
различным
количеством
гармоник
(1,2,…,
10,
25,
100
и
др.)
Вклейте
результаты
выполнения
скрипта:
Рисунок
10
–
Графики
меандра,
содержащего
различное
число
гармоник
Функции
Matlab,
использованные
в
примере
Функция
sum(X)
в
случае
одномерного
массива
возвращает
сумму
элементов
массива;
в случае
двумерного
массива
-
это
вектор-строка,
содержащая
суммы
элементов
каждого
столбца.
Функция
cumsum(X),
кроме
того,
возвращает
все
промежуточные
результаты
суммирования.
Пример:
Рассмотрим
массив
M:
M
=
8
3
4
1
5
9
6
7
2
Результаты
выполнения
функций:
Функция
repmat(A,M,N)
-
формирование
массива
из
частей
-
использует
преимущество
векторизации.
Она
имеет
три
входных
аргумента:
массив
A,
количество
строк
М
и
столбцов
N
для
вновь
создаваемого
массива.
Функция
repmat
возвращает
массив
B
,
который
использует
массив
A
в
качестве
основы
для
построения
блочной
матрицы
с
количеством
блоков
MxN.
Пример:
A
=
[1
2 3; 4 5 6];
B
=
repmat(A,
2,
3);
Результаты
выполнения
функции:
B
=
1
4
1
4
2
5
2
5
3
6
3
6
1
4
1
4
2
5
2
5
3
6
3
6
1
4
1
4
2
5
2
5
3
6
3
6
Выводы:
cumsum(M)
sum(M)
8 1 6
11
6 13
15
15
15
15
15
15
Задание:
разработать
скрипт
Matlab,
результатом
которого
являются
графики
ДПФ
меандра
при
использовании
различного
количества
гармоник.
(вклейте
разработанную
Вами
программу)
Вклейте
результаты
выполнения
скрипта:
Выводы:
Рисунок
11
– Графики
спектра
меандров
с
различным
числом
гармоник
Использование
GUI
SpTool
В
пакете
Signal
Processing
Toolbox
предусмотрен
графический
интерфейс
пользователя,
облегчающий
его
работу.
Рассмотрим
применение
SpTool
для
решения
задач
анализа.
Для запуска
используется
команда
sptool.
Рисунок
12
–
Главное
окно
SpTool
Главное
окно
разделено
на
3
части:
Сигналы
(Signals),
Фильтры
(Filters),
Спектры
(Spectra).
Для
загрузки
сигнала
в
GUI
используется
пункт
меню
File/Import…
1.
Выбрать
источник
сигнала
(Source):
из
рабочей
области
или
с
диска.
Если
выбран
импорт
из
рабочей
области,
то
в
поле
Workspace
Contents
будет
отображено
текущее
содержимое
рабочей
обалсти.
Далее
в
поле
Import
As…
указываем,
что
переменная
будет
импортирована
как
сигнал
(Signal).
2.
3.
Указываем,
какая
переменная
будет
импортирована,
указываем
частоту
дискретизации
(Sampling
Frequency)
или
указываем
какая
переменная
будет
принята
за
fs.
Указываем
имя
импортируемого
сигнала
в
поле
Name.
Нажимаем
OK
4.
5.
Рисунок
13
– Окно
импорта
Для
удаления
сигнала
(равно
как
и
любого
объекта)
необходимо
выбрать
пункт
меню
Edit/Clear/<Имя
сигнала>.
В
данном
пункте
меню
отображаются
все
выделенные
объекты.
Для просмотра
сигнала
нужно:
1.
Выделить
сигнал
в списке
Signals
2.
Нажать
кнопку
View.
Появиться
Signal
Browser,
работа
в
котором
интуитивно
понятна.
Рисунок
14
– Signal
Browser
SpTool
позволяет
использовать
различные
методы
спектрального
лабораторной
работе
нас
интересует
только
преобразование
Фурье.
анализа.
В
данной
Рисунок
15
–
Просмотр
спектра
сигнала
Для
создание
Фурье-спектра
необходимо:
1.
2.
3.
4.
5.
Выделить
исследуемый
сигнал
в блоке
Signals,
В
блоке
Spectra
нажать
кнопку
Create
В
блоке
Parameters
в поле Method
выбрать
FFT
(БПФ),
В
поле
NFFT
указать
число
точек
FFT.
Нажать
кнопку
Apply.
В
меню
Options
можно
указать
дополнительные
настройки
отображения
спектра.
Вклейте
ниже
результаты
работы
с
программой
согласно
Вашему
варианту
задания:
Выводы:
Контрольные
вопросы
1.
2.
3.
4.
5.
6.
Теорема
Фурье.
Что
такое дискретное
преобразование
Фурье?
Назовите
свойства
дискретного
преобразования
Фурье.
Почему
на
практике
используют
быстрое
преобразование
Фурье?
Что такое быстрое
преобразование
Фурье?
Что
такое растекание
спектра?
Рисунок
16
–
Результат
работы с SpTool
Рисунок
17
– Результат
работы с SpTool