- •Міністерство освіти і науки україни
- •49600, Дніпропетровськ-5, пр. Гагаріна, 4
- •Лабораторная работа №1 Формирование и исследование типовых сигналов
- •1.1 Формирование типовых сигналов
- •1.2 Применение пакета sumulink для формирования и исследования сигналов.
- •Лабораторная работа № 2 Быстрое преобразование Фурье
- •2.1 Получение спектра сигнала
- •2.2 Дискретное преобразование Фурье
- •2.3.1 Прямое одномерное дискретное бпф — fft
- •2.3 Быстрое преобразование Фурье (бпф)
- •2.3.2 Перегруппировка выходного массива преобразования Фурье fftshift
- •2.3.3 Обратное одномерное дискретное бпф –ifft
- •Замечание
- •2.3.4 Матрица дискретного преобразования Фурье — dftmtx
- •Лабораторная работа №3 Свертка и деконволюция
- •3.1 Свертка одномерных сигналов — conv
- •3.2 Операция, обратная свертке — deconv
- •Свертка двумерная и многомерная — conv2 и convn
- •Лабораторная работа №4 Исследование характеристик аналоговых и цифровых фильтров
- •4.1 Теоретические основы
- •Лабораторная работа № 5 Расчет цифровых фильтров в среде matlab
- •5.1 Расчет цифровых фильтров в командном окне
- •5.1.1 Расчет коэффициентов нерекурсивного фильтра с помощью функции fir1.
- •5.1.2 Расчет коэффициентов и рекурсивного фильтра
- •5.1.3 Построение графиков ачх и фчх
- •Построение графика ипх
- •5.1.5 Моделирование процесса цифровой фильтрации
- •5.1.5.1. Моделирование входного процесса и построение его графика
- •Два способа фильтрации в командном окне
- •5.2 Расчет фильтра с помощью пакета sptool
- •5.2.1 Интерактивная оболочка spTool
- •5.2.2 Пример
- •5.3 Расчет фильтра с помощью пакета fdatool
- •Сопоставление способов расчета
2.3.2 Перегруппировка выходного массива преобразования Фурье fftshift
При выполнении прямого БПФ спектральные компоненты, близкие к нулевой частоте, группируются по краям спектрограммы — рис. 1, например. Функция y=fftshift(x) обеспечивает перегруппировку элементов выходного массива преобразования Фурье таким образом, что эти компоненты оказываются в центре графика. Это иллюстрирует следующий пример:
t=(0:1/99:1); % Вектор времени x=sin(2*pi*10*t)+.5*sin(2*pi*30*t); % Вектор сигнала
y=fftshift(fft(x)); %ДПФ сигнала с перегруппировкой
m=abs(y);
p=unwrap(angle(y)); % Векторы амплитуд и фаз
f=(0:1ength(y)-l)*99/length(y); % Вектор частот
plot(f,m); title(‘Magnitude’); % График АЧХ
Рисунок 2.3 показывает АЧХ спектра для этого примера. Сравнив рисунок 2.1 с рисунком 2.3, нетрудно заметить, что нулевая частота здесь соответствует центру графика.
Рисунок 2.3 АЧХ спектра с перегруппировкой массива частот
2.3.3 Обратное одномерное дискретное бпф –ifft
Обратное дискретное преобразование Фурье реализуется формулой:
(2.13)
Все сказанное об алгоритме БПФ относится и к обратному преобразованию, которое реализуется функцией y=ifft(x[.n]). Для проверки функций fft и i fft можно использовать следующий пример:
х=[1 2 3 4];
X=fft(x)
X =
10.000 -2.0000+2.0000 i -2.0000 -2.0000-2.0000 i
x=ifft(X)
x=
1 2 3 4
Здесь исходный вектор подвергается вначале прямому, а затем обратному преобразованию Фурье. Как и следовало ожидать, после цепочки таких преобразований вновь получается исходный вектор.
Замечание
Полученный результат, однако, возможен только для простых, чисто тестовых и демонстрационных примеров. При векторах большого размера это уже не совсем так, а в случае введения ограничений на число гармоник, полученных при прямом БПФ, искажения синтезированного сигнала могут быть весьма заметными.
2.3.4 Матрица дискретного преобразования Фурье — dftmtx
Функция A=dftmtx( n ) возвращает матрицу дискретного преобразования Фурье размера n х n, такую, что матричное выражение у=А*х задает прямое дискретное преобразование Фурье. Следующий пример демонстрирует применение функции dftmtx:
>>x=[1 2 3 4]; y1=fft(x);
>>n=length ( х ) ; y2=x*dftmtx ( n )
y1=
10.0000 -2.0000+2.0000i -2.0000 -2.0000-2.0000i
y2=
10.0000 -2.0000+2.0000i -2.0000-0.0000i -2.0000-2.0000i
>>norm(y1-y2)
аns = 2. 3019e-015
Здесь для вектора х выполнено прямое дискретное БПФ вначале с помощью функции fft, а затем с применением функции dftmtx. Результаты совпадают с точностью до машинной погрешности. Величина погрешности оценивается нормой разности векторов у1 и у2, полученных в этом примере.
Матрица Ai=conj(dftrntx(n))/n, соответственно, обеспечивает обратное дискретное преобразование Фурье.
Замечание.
При всей привлекательности использования функции dftmtx, для вычисления ДПФ эффективнее использовать функцию fft. В качестве примера, иллюстрирующего падение точности вычисления при использовании функции dftmtx на больших выборках, в предыдущей программе рассмотрите x=1:256 .
ЗАДАНИЕ
Провести прямое и обратное БПФ (проиллюстрировать графиками АЧХ и ФЧХ) следующих функций:
1.1 Для всех сигналов из лабораторной работы №1.
Для сигналов вида:
Двухсторонний экспоненциальный импульс: x(t)=A*exp(-a*|t|), где А и а – первая и последняя цифра в номере зачетки (например, А=5, а=0.3).
Гауссов импульс: x(t)=A*exp(-a2* t2) .
Сигнал: x(t)=A*sinc(x).
Зашумленный гармонический сигнал:
x(t)=A1*cos(1t+1)+ A2*cos(2t+2 )=+a*randn(t) ,
используя программный фрагмент, приведенный в Help для функции fft.
Исследовать, что происходит с АЧХ и ФЧХ при зашумлении Гауссова и экспоненциального импульсов.
Для всех указанных сигналов вычислить матрицу ДПФ.
Произвести анализ спектров различных видов сигналов:
синусоидальных колебаний;
прямоугольных колебаний со смещением;
прямоугольных колебаний без смещения;
белого шума.
Для этого в програмном пакете SimuLink необходимо построить схему, представленную на рисунке 2.4 , где для получения синусоидальных колебаний на сумматор (Sum) подается сигнал (с амплитудой А=1 и частотой F=0.1 Гц (2*pi*0.1)) с генератора синусоидальных сигналов (SineWave) при нулевом значении выходного сигнала блока постоянной составляющей (Constant).
Рисунок 2.4
Прямоугольные колебания со смещением получаются путем суммирования выходных сигналов блоков PulseGenerator с амплитудой сигнала А=2 и Constant с выходным значением А= ‑1. Для получения прямоугольных колебаний без смещения амплитуда выходного сигнала блока PulseGenerator должна составлять А=1, при отсутствие сигнала на выходе блока Constant. В свойствах блоков Scope (просмотр сигнала) и ToWorkspase (вывод в рабочую область) необходимо установить период дискретизации (Sample Time) Тд=0,1 с. При завершении настроек системы нужно промоделировать сигнал (кнопка ). Полученный сигнал импортируется в среду SPTool, где в качестве источника необходимо выделить simout, и установить частоту дискретизации Fд=10 Гц. Когда сигнал импортирован в окне SpektrWiever можно увидеть его спектр, для этого надо выбрать в качестве метода получения спектра FFT (быстрое преобразование Фурье) и линейную шкалу графика. В ходе лабораторной работы необходимо получить спектры всех четырех видов сигналов при различных частотах дискретизации и сравнить их.
литература
Лазарев Ю.Ф. MATLAB 5.x. – К.: Издательская группа BHV, 2000. – 384 с.
Дьяконов В. П. MATLAB 6/6.1/6.5 + Simulink 4/5. Основы применения. Полное руководство пользователя. — М.: Солон-Р. — 2002.
Дьяконов В. П. MATLAB 6/6.1/6.5 + Simulink 4/5 в математике и моделировании. Полное руководство пользователя. — М.: Солон-Р. — 2002.
Дьяконов В. П. MATLAB 6/6.1/6.5 + Simulink 4/5. Обработка сигналов и изображений. Полное руководство пользователя. — М.: Солон-Р. — 2004.
Потемкин В. Г. Система инженерных и научных расчетов MATLAB 5.x. В 2-х томах. - М.: ДИАЛОГ-МИФИ. - 1999.
Гультяев А. Визуальное моделирование в среде MATLAB: учебный курс. — СПб.: ПИТЕР. - 2001.
