Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Завдання_ЦОЕД 2013_заочники.docx
Скачиваний:
6
Добавлен:
01.05.2025
Размер:
760 Кб
Скачать
☆

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 Для всех сигналов из лабораторной работы №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.

  1. Исследовать, что происходит с АЧХ и ФЧХ при зашумлении Гауссова и экспоненциального импульсов.

  2. Для всех указанных сигналов вычислить матрицу ДПФ.

  3. Произвести анализ спектров различных видов сигналов:

  1. синусоидальных колебаний;

  2. прямоугольных колебаний со смещением;

  3. прямоугольных колебаний без смещения;

  4. белого шума.

Для этого в програмном пакете 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 (быстрое преобразование Фурье) и линейную шкалу графика. В ходе лабораторной работы необходимо получить спектры всех четырех видов сигналов при различных частотах дискретизации и сравнить их.

литература

  1. Лазарев Ю.Ф. MATLAB 5.x. – К.: Издательская группа BHV, 2000. – 384 с.

  2. Дьяконов В. П. MATLAB 6/6.1/6.5 + Simulink 4/5. Основы применения. Полное руководство пользователя. — М.: Солон-Р. — 2002.

  3. Дьяконов В. П. MATLAB 6/6.1/6.5 + Simulink 4/5 в математике и моделировании. Полное руководство пользователя. — М.: Солон-Р. — 2002.

  4. Дьяконов В. П. MATLAB 6/6.1/6.5 + Simulink 4/5. Обработка сигналов и изображений. Полное руководство пользователя. — М.: Солон-Р. — 2004.

  5. Потемкин В. Г. Система инженерных и научных расчетов MATLAB 5.x. В 2-х томах. - М.: ДИАЛОГ-МИФИ. - 1999.

  6. Гультяев А. Визуальное моделирование в среде MATLAB: учебный курс. — СПб.: ПИТЕР. - 2001.