Дискретное преобразование Фурье
Разработайте функцию, вычисляющую ДПФ для двух действительных векторов одной длины с помощью однократного вызова функции Matlab FFT. Продемонстрируйте ее работу. Цель работы Программирование дискретного преобразования Фурье в пакете Matlab. Изучение свойств ДПФ. Рисунок 1 — Реальная и мнимая часть входного вектора, амплитудный спектр. Рисунок 7 — Real, image часть действительного симметричного… Читать ещё >
Дискретное преобразование Фурье (реферат, курсовая, диплом, контрольная)
Министерство образования Республики Беларусь Белорусский государственный университет информатики и радиоэлектроники Кафедра Электронных вычислительных средств Отчет по лабораторной работе
" Дискретное преобразование Фурье"
Выполнила:
Студентка гр. 610 701
Лыпка Ю.А.
Проверил: Родионов М. М.
Минск 2009
1. Цель работы Программирование дискретного преобразования Фурье в пакете Matlab. Изучение свойств ДПФ.
2 Выполнение заданий.
Задание 1−2
Разработайте функцию DFT, вычисляющую ДПФ от входного вектора, не используя функцию Matlab FFT, и рисующую графики действительной и мнимой частей входного вектора и результата преобразования, а также амплитудный спектр.
clear all;
close all;
clc;
n = 0:99;
k=(2*pi/length (n)).*n
s = (n >= 0) & (n <= 9);
figure (1);
subplot (221);
stem (n, real (s),'x');
title ('Re (s (n))');
subplot (222);
stem (n, imag ((s)),'x');
title ('Im (s (n))');
subplot (223);
stem (k, abs (dft (s)),'x');
xlabel ('omega');
title ('|S (k)|');
subplot (224);
stem (k, abs (dft (s)),'x');
title ('|S (k)| cherez fft');
xlabel ('omega');
Рисунок 1 — Реальная и мнимая часть входного вектора, амплитудный спектр.
Задание 3
Исследуйте свойства симметрии ДПФ при следующих входных сигналах: действительном; мнимом; действительном четном; мнимом четном; действительном нечетном; действительном симметричном четном. Длину входного вектора выберите в соответствии с вариантом 2: N=35.
clear all;
%% 3 zadanie
N = 35;
n = 0:2*pi/N:2*pi;
figure;
subplot (311);
x = sin (n) + cos (n); % действительный входной сигнал
plot (n, x,'x');
title ('real signal');
xlabel ('n');
ylabel ('Re (x)');
subplot (312);
plot (n, real (fft (x)));
title ('real part of real signal');
xlabel ('n');
ylabel ('Re (x)');
subplot (313);
plot (n, imag (fft (x)));
title ('image part of real signal')
xlabel ('n');
ylabel ('Im (x)');
Рисунок 2 — Real, image часть действительного входного сигнала
figure;
subplot (311);
x = j*(sin (n) + cos (n)); % мнимый входной сигнал
plot (n, imag (x),'x');
title ('image signal')
xlabel ('n');
ylabel ('Im (x)');
subplot (312);
plot (n, real (fft (x)));
title ('real part of image signal');
xlabel ('n');
ylabel ('re of Im (x)');
subplot (313);
plot (n, imag (fft (x)));
title ('image part of image signal');
xlabel ('n');
ylabel ('Im of Im (x)');
Рисунок 3 — Real, image часть мнимого входного сигнала
figure;
subplot (311);
x = cos (n); % действительный чётный сигнал
plot (n, x,'x');
title ('real even signal');
xlabel ('n');
ylabel ('Re (s)');
subplot (312);
plot (n, real (fft (x)));
title ('real part of real even signal');
xlabel ('n');
ylabel ('Re of Re (x)');
subplot (313);
plot (n, imag (fft (x)));
title ('Image part of real even signal');
xlabel ('n');
ylabel ('Im of Re (s)');
Рисунок 4 — Real, image часть действительного четного входного сигнала
figure;
subplot (311);
x = j*cos (n); % мнимый чётный сигнал
plot (n, imag (x),'x')
title ('image even signal');
xlabel ('n');
ylabel (' Even Im (x)');
subplot (312);
plot (n, real (fft (x)));
title ('real part of image even signal');
xlabel ('n');
ylabel ('Re of Even Im (x)');
subplot (313);
plot (n, imag (fft (x)));
title ('Image part of image even signal');
xlabel ('n');
ylabel (' Im of Even Im (x)');
Рисунок 5 — Real, image часть мнимого четного входного сигнала
figure;
subplot (311);
x = sin (n); % действительный нечётный сигнал
plot (n, x,'x');
title ('real odd signal')
xlabel ('n');
ylabel ('Re odd (x)');
subplot (312);
plot (n, real (fft (x)));
title ('real part of real odd signal');
xlabel ('n');
ylabel ('Re of Re (x)');
subplot (313);
plot (n, imag (fft (x)));
title ('image part of real odd signal')
xlabel ('n');
ylabel ('Im of Re (s)');
Рисунок 6 — Real, image часть мнимого нечетного входного сигнала
figure;
subplot (311);
n = -N/2:N/2;
x = n.^2; % действительный симметричный сигнал
plot (n, x,'x');
title ('real symmetrical signal');
xlabel ('n');
ylabel ('Re (x)');
subplot (312);
plot (n, real (fft (x)));
title ('real part of real symmetrical signal');
xlabel ('n');
ylabel ('Re of Re (x)');
subplot (313);
plot (n, imag (fft (x)));
title ('Image part of real symmetrical signal');
xlabel ('n');
ylabel ('Im Of Re (x)');
Рисунок 7 — Real, image часть действительного симметричного входного сигнала
Задание 4
Разработайте функцию, позволяющую с помощью ДПФ формировать вектор, содержащий целое число периодов заданной функции. Длину выходного вектора, число периодов и функцию выберите в соответствии с вариантом 2: функция = - cos (x), длинна 90, число периодов 4.
function [x] = cosinus (leng, period);
%генерация функцииcos (x) длиной leng и числом периодов period
X = zeros (1,leng);%инициализируем нулями наш Фурье образ
X (period+1) = (leng-1)/2;%
X (leng-period + 1)= (leng-1)/2;
x = ifft (X);
figure;
Period = 4;
LengV = 90;
stem (cosinus (LengV, Period));
title ('Functioncos (x)');
Рисунок 8 — Преобразование Фурье функцииcos (x)
Задание 5
Разработайте функцию, вычисляющую ДПФ для двух действительных векторов одной длины с помощью однократного вызова функции Matlab FFT. Продемонстрируйте ее работу.
%% 5 zadanie
N = 40;
n = 0: N-1;
k=(2*pi/length (n)).*n
x1 = cos (k);
x2 = sin (k);
x = real (x1) + j*real (x2);
y = fft (x);
y (N + 1) = y (1);
for k = 1: N+1
re1(k) = 0.5*(real (y (k)) + real (y (N — k + 2)));
im1(k) = 0.5*(imag (y (k)) — imag (y (N — k + 2)));
re2(k) = 0.5*(imag (y (k)) + imag (y (N — k + 2)));
im2(k) = 0.5*(real (y (N — k + 2)) — real (y (k)));
end;
y1 = re1 + j*im1;
y2 = re2 + j*im2;
subplot (221);
stem (0:N, real (y1));
title ('real y1');
subplot (222);
stem (0:N, imag (y1));
title ('imag y1');
subplot (223);
stem (0:N, real (y2));
title ('real y2');
subplot (224);
stem (0:N, imag (y2));
title ('imag y2');
Рисунок 9 — ДПФ для двух действительных векторов х1 и х2
Вывод по работе При выполнении лабораторной работы мы ознакомились с дискретным преобразованием Фурье, его свойствами и реализацией. В ходе работы были исследованы свойства ДПФ при различных входных сигналах, применено обратное преобразование Фурье при генерации периодической функции косинуса, а также показана возможность вычисления ДПФ двух действительных векторов одинаковой длинны, с помощью однократного вызова функции ДПФ.