Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб3.docx
Скачиваний:
4
Добавлен:
06.11.2018
Размер:
173.86 Кб
Скачать

3. Написание функции вычисления дискретного преобразования Фурье (дпф).

function X=dftsum(x)

% Функция используется для вычисления ДПФ

% функция аппроксимирует интегральное преобразование Фурье

% x-N точечный вектор значений x(0),...,x(N-1) сигнала

% при увеличение N можно добиться лучшей аппроксимации

% X- вектор значений ДПФ

N=length(x);

for n=0:N-1

for k=0:N-1

R(k+1)=x(k+1).*exp(-2*j*pi.*n.*k./N); % формула для вычисления ДПФ

end

X(n+1)=sum(R);

end

% Вычисление спектра и построение его графиков

T=10; dt=0.1; % Определение интервала времени

t=-1:dt:1;

N=length(t);

s=sin(2*pi*t); % задание сигнала

% Добавление нулей к сигналу для увеличения частотного разрешения

S=[zeros(1,2*N) s zeros(1,2*N)];

df=1/(dt*length(S)); Fmax=1/dt; % определение частотной шкалы

f=-(Fmax-df)/2:df:Fmax/2;

y1=dftsum(S); y1p=fftshift(y1); % вычисление и сдвиг ДПФ

% Построение графиков сигнала и его спектров

figure(1), subplot(311), plot(t,s)

set(gca,'FontName','Arial Cyr', 'FontSize',12)

title('Сигнал')

subplot(312), plot(f,abs(y1p),'o-')

set(gca,'FontName','Arial Cyr', 'FontSize',12)

title('Амлитудный спектр'),grid

subplot(313), plot(f,angle(y1p)),

set(gca,'FontName','Arial Cyr', 'FontSize',12)

title('Фазовый спектр')

xlabel('Частота, Гц'), grid

Рис.4. Сигнал, амплитудный и фазовый спектры, построенные с помощью функции dftsum( ).

  1. Вычисление и построение спектров сигнала с помощью функции fft().

% Процедура сопоставления преобразования Фурье

% и его вычисления с помощью функции fft()

T=10;% длительность процесса

N=128; % число точек

Ts=T/(N-1); % интервал отсчетов

t=-1:Ts:1; % временной интервал

tau=2; % длительность импульса

x=sin(2*pi*t); % генерирование прямоугольного импульса

figure(1);

subplot(311), plot(t,x) % график сигнала

title(' График сигнала')

Fmax=1/Ts; % максимальная частота

df=1/T; % частотное разрешение

f=-Fmax/2:df:Fmax/2; % частотная шкала

X=fft(x,N); % БПФ сигнала

Xp=fftshift(X); % частотный сдвиг

A=abs(Xp);

subplot(312), plot(f,A*Ts)

title('fft- Амплитудный спектр сигнала')

S=(2*j*2*pi*sin(2*pi.*f))./((2*pi)^2-(2*pi.*f).^2); % преобразование Фурье сигнала

% график

subplot(313), plot(f, abs(S))

xlabel(' Частота, Гц')

title(' Амплитудный спектр сигнала ')

Рис.5. Сигнал и амплитудные спектры, вычисленные с помощью a) fft(); b) аналитических выкладок.

Из графиков видно, что амплитудные спектры, полученные с помощью разных процедур, одинаковы.

6. Изучение свойств преобразования Фурье.

% Процедура иллюстрации свойств преобразования Фурье

N = 128; % Длина сигналов

k = 0:N-1;

gamma = -0.5;

g = exp(gamma*k);

% g - экспоненциальная функция

h = sin(2*pi*k/(N/2));

figure(1),plot(k,g,k,h)

% h - синусоидальная последовательность с периодом = N/2

% вычисление преобразований Фурье сигналов

[G,w] = freqz(g,1,512);

[H,w] = freqz(h,1,512);

Рис.6. График исходных сигналов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]