НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ
ФАКУЛЬТЕТ АВТОМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
Кафедра Систем Сбора и Обработки Данных
Дисциплина «Теория и обработка сигналов», 5 - й семестр
ЛАБОРАТОРНАЯ РАБОТА № 2
СПЕКТРАЛЬНЫЕ ПРЕДСТАВЛЕНИЯ
ПЕРИОДИЧЕСКИХ СИГНАЛОВ
Цель работы: изучение понятия спектра периодического сигнала, приобретение практических навыков вычисления и построения графиков спектров сигналов в среде MATLAB.
Задание и порядок выполнения работы.
Познакомьтесь с разложением в ряд Фурье периодических непрерывных сигналов и понятиями амплитудного и фазового спектров сигнала по учебной литературе, например, [1] стр. 19 – 27 или [2] стр. 21 -30. Получите аналитически коэффициенты разложения в комплексный ряд Фурье для сигнала, заданного преподавателем, запишите после этого ряд Фурье сигнала. Сопоставьте результат с видом ряда Фурье, приведенным в задании. Постройте графики амплитудного и фазового спектров сигнала. При выполнении задания п.2 можно ориентироваться на пример, приведенный в Приложении 2. Напишите и выполните файл-сценарий (М-файл), позволяющий построить в Matlab графики амплитудного и фазового спектров сигнала. Соответствующий пример представлен в Приложении 3. Определите спектр Фурье сигнала с помощью функции fft() Matlab. Эта функция является основной процедурой проведения спектрального анализа в Matlab. Ознакомьтесь по справочной системе с данной функцией.
Процедура fft() вычисляет
Определите коэффициенты ряда Фурье с помощью fft() для сигнала, заданного в п.2, постройте и сопоставьте графики амплитудного спектра по п.3 и п.4. В Приложении 4 приведен пример соответствующей программы. Обратите внимание на периодический характер спектра, вычисленного с помощью fft(), объясните причину периодичности. Составьте и выполните файл-сценарий для исследования сходимости ряда Фурье к исходному периодическому сигналу (индивидуальное задание, п.2) в соответствии с примером, приведенным в Приложении 5. Пронаблюдайте и объясните особенности сходимости ряда для четырех значений числа членов ряда и явление Гиббса, возникающее при конечном числе членов ряда Фурье у сигналов с разрывами поведения функций.
Пояснение. Для увеличения фрагмента графика используйте команду zoom on – включение режима увеличения, zoom off – отключение увеличения. Рассмотрите периодический сигнал x(t) в виде квадратной волны c периодом T0, такой, что
Можно показать аналитически, что ряд Фурье этого сигнала имеет вид
, где ak=0 для четных k и ak = 4/(рk) для нечетных k.Используя в качестве прототипа процедуру Приложения 5, сгенерируйте приближенную аппроксимацию квадратной волны длительностью 2 с и периодом T0, соответствующим ноте Ре первой октавы (частота 293,66 Гц). Количество гармоник при аппроксимации возьмите равным десяти, т. е. используются гармоники с номерами k = 1,3,5,…,19. Сгенерируйте также гармонический сигнал, соответствующий ноте Ре первой октавы длительностью 2 с. Для этого можно использовать процедуру harmonic() из лабораторной работы № 1. Постройте и сопоставьте графики первых 100 отсчетов для обоих сигналов при частоте отсчетов 8192 Гц.
Прослушайте звучание обоих сигналов, используя функцию sound(). Имеются ли различия в звучании сигналов? Квадратная волна в этом случае может трактоваться как гармоника с обертонами.
В частности, звучание ноты До первой октавы на фортепиано может быть аппроксимировано выражением
Simulink – это пакет расширения Matlab, предназначенный для моделирования динамических систем. Ввод элементов исследуемых систем в Simulink производится в диалоговом режиме с помощью технологии Drag-and-Drop. В результате формируется так называемая S-модель исследуемой системы. Модель можно сохранить в файле типа .mdl.
Для построения модели Фурье-синтеза сигнала создайте новый файл с помощью команды меню File/New/Model и расположите необходимые блоки в окне модели. Вид модели представлен в Приложении 6. Для создания подобной модели используйте окно Simulinc Library Browser. Из раздела Sources (Источники) библиотеки перенесите в окно модели блок Constant и 5-7 блоков Sin Wave, из раздела Math Operations – блок Sum, из раздела SignalRouting – блок мультиплексора (Mux), из раздела Sinks (Приемники)- два блока Scope (Индикатор).
С помощью двойного щелчка мыши или контекстного меню на блоке Sum откройте окно Block Parameters (Блок параметров) и установите необходимое число входов сумматора. В блоке параметров каждого Sin Wave установите нужные для синтеза сигнала значения амплитуды и угловой частоты (рад/с) каждой гармоники, при необходимости – фазу гармоники.
Соедините блоки между собой с помощью мыши. После создания, настройки и сохранения модели запустите её на исполнение с помощью команды меню Simulation/Start или кнопки Start. С помощью контекстного меню (правая кнопка мыши) на блоке Scope откройте окно Scope и пронаблюдайте результат решения задачи Фурье-синтеза сигнала. В дальнейшем поместите копии модели и окна Scope в отчет по работе. Составьте отчет по лабораторной работе. В отчете должны быть представлены
- титульный лист, название и цель работы, формулировки пунктов работы, команды и .m – файлы,
графики, комментарии, выводы.
Литература
Web – ресурсы
http://tiger. cs. nstu. ru http://users. ece. gatech. edu/~bonnie/book/OnlineDemos/ConvergenceOfFourierSeries/index. htm http://www. /access/helpdesk/help/toolbox/signal/signal. html http://www. jhu. edu/~signals/fourier2/index. html http://users. ece. gatech. edu/~bonnie/book/TUTORIAL/tutorial. htmlКонтрольные вопросы и упражнения.
Запишите ряд Фурье в тригонометрической и комплексной формах, объясните их связь. Объясните физический смысл разложения сигнала в ряд Фурье. Какие сигналы (функции) могут быть разложены в ряд Фурье? Сформулируйте особенности скорости сходимости ряда Фурье для непрерывных функций и функций с разрывами. Какой характер имеет разложение в ряд Фурье для четных функций? Разложите в ряд Фурье периодический с периодом 2T сигнал, который на отрезке [-T, T] задается выражением x(t)=|t|. Постройте амплитудный спектр сигнала для T=5. Какие особенности имеет разложение в ряд Фурье для нечетных Функций? Запишите ряд Фурье периодического с периодом T =2 сигнала, заданного на интервале [-1, 1] выражением
Приложение 1. Варианты индивидуальных заданий.
1.

Коэффициенты ряда Фурье
, 
2.
Ряд Фурье ![]()
3.

Ряд Фурье ![]()
4.
Ряд Фурье ![]()
5.

Ряд Фурье ![]()
6.

Ряд Фурье ![]()
7.

Ряд Фурье ![]()
8.

Ряд Фурье

9.

Ряд Фурье ![]()
10.

Ряд Фурье

Приложение 2. Пример разложения сигнала в ряд Фурье.
Вид сигнала
Частота основной гармоники
.
Коэффициенты комплексного ряда Фурье 
Для n = 0
.
В частности,
,
,
,
,
,
,
,
.
Ряд Фурье
.
График амплитудного спектра сигнала
Приложение 3. М-файл для построения графиков амплитудного и фазового спектров сигнала.
% Файл - сценарий для построения графиков спектров
n1=1:15;
cn=-4*j./n1/pi.*sin(pi*n1/6).*sin(n1*pi/2).*exp(-j*n1*pi/3);
n2=-15:-1;1
c_n=-4*j./n2/pi.*sin(pi*n2/6).*sin(n2*pi/2).*exp(-j*n2*pi/3);
Cn=[c_n 0 cn];
n3=[n2 0 n1];
n=-15:15;
figure(1), subplot(121),stem(n, abs(Cn))
title('|Cn|')
subplot(122),stem(n, angle(Cn))
title('angle(c_n) in rad')
Графики амплитудного и фазового спектров сигнала

Приложение 4. М-файл для вычисления коэффициентов ряда Фурье сигнала с помощью процедуры fft().
T=6;% период сигнала
t=0:T/63:T;% временной интервал
x=2*rectpuls(t-2.5,1)-2*rectpuls(t-5.5,1);% генерирование сигнала
figure(1);
subplot(311), plot(t, x) % график сигнала
title(' График сигнала')
k=0:63;
% коэффициенты ряда Фурье
C=-4*j./k/pi.*sin(pi*k/6).*sin(k*pi/2).*exp(-j*k*pi/3);
% график амплитудного спектра
subplot(312),
stem(2*pi*k/T, abs(C));
title(' Амплитудный спектр сигнала')
y=fft(x,64);% Дискретное преобразование Фурье сигнала
% график ДПФ
subplot(313), stem(2*pi*k/T, abs(y)/64)
xlabel(' Угловая частота, рад/сек')
title(' Амплитудный спектр сигнала по процедуре fft')
Приложение 5. Файл-сценарий приближения сигнала рядом Фурье.
T=6;
w0 = 2*pi/T;
t = -1.5*T:T/1000:1.5*T;
N = input('Number of harmonics ');
c0 = 0;
x = c0*ones(1,length(t)); % постоянная составляющая
for n=1:N,
% коэффициенты Фурье
cn = -4*j/n/pi*sin(pi*n/6)*sin(n*pi/2)*exp(-j*n*pi/3);
c_n = conj(cn);
% Приближение сигнала рядом Фурье
x = x + cn*exp(j*n*w0*t) + c_n*exp(-j*n*w0*t);
end
figure(2), plot(t, x), grid
title(['N = ',num2str(N)])
Графики, число членов ряда N=20

Явление Гиббса (увеличенный масштаб)

Приложение 6. Вид S - модели Фурье-синтеза сигнала

Составил доц. Щетинин Ю. И.


