Обработка цифровых сигналов

Автор работы: Пользователь скрыл имя, 22 Марта 2012 в 19:04, контрольная работа

Краткое описание

График передаточной функции(амплитудного спектра) и отношение гильберт-огибающей выхода к амплитуде входной косинусоиды в зависимости от частоты:

Содержимое работы - 1 файл

масюков.docx

— 74.55 Кб (Скачать файл)

Тверской  государственный университет

Факультет прикладной математики и кибернетики

Специальность “Информационные  технологии”

 

 

 

 

 

 

Семестровая работа по дисциплине

Обработка цифровых сигналов

 

 

 

 

 

 

 

 

 

 

 

 

 

Выполнил: студенты 46 группы

Субботин А.А., Юрков Б.В.

 

 

 

 

Тверь 2011

Выполненная работа

Пик на пьедестале.

;

 

f = ();

g = ();

Выражаем 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Реализация:

clear all; clear clc;

figure(1);clf(1);

Fi = pi / 2;

e = 0.02;

k = 10;

n = 300;

coord = 1:n;

for indexSin = 1:n

x = sin( (2 * pi * coord / n ) * (indexSin - n/2 ) );

 

y(1) = (1+e*k)^2*x(1)/(1+e)^2;

y(2) = (1+e*k)^2*x(2)/(1+e)^2+2*cos(Fi)*y(1)/(1+e)^2-2*(1+e*k)*cos(Fi)*x(1)/(1+e)^2;

for j=3:n

y(j) = (1+e*k)^2*x(j)/(1+e)^2+2*cos(Fi)*y(j-1)/(1+e)-y(j-2)/(1+e)^2+x(j-2)/(1+e)^2-2*(1+e*k)*cos(Fi)*x(j-1)/(1+e)^2;

end;

%plot( coord, y, 'r' );

 

f(1) = (1+e*k)^2;

f(2) = -2*(1+e*k)*cos(Fi);

f(3) = 1;

g(1) = (1+e)^2;

g(2) = -2*(1+e)*cos(Fi);

g(3) = 1;

argE(1) = 0;

argE(2) = 1;

argE(3) = 2;

 

transferFunc = coord;

for j = 1:n

phi = j * 2 * pi / n - pi;

curEVal = exp( -1i * argE * phi );

transferFunc(j) = sum( f.*curEVal ) / sum( g.*curEVal );

end;

windowSource = y;

windowFilter = coord;

windowDelta = 5;

windowPercent = n / windowDelta;

windowFilter( coord > windowPercent & coord < ( n - windowPercent + 1 ) ) = 1;

coordSin = coord( coord < windowPercent + 1 );

windowFilter( coord < windowPercent + 1 ) = sin( coordSin * pi / ( 2 * windowPercent ));

windowFilter( coord > ( n - windowPercent ) ) = cos( coordSin * pi / ( 2 * windowPercent ));

 

windowResult = windowFilter.*windowSource;

 

%plot( coord, windowResult, 'r' ); hold on;

 

hilbSource = windowResult;

fftSignal = fft( hilbSource );

signSignal = coord;

signSignal( coord < n/2 + 1 ) = 1i;

signSignal( coord == n/2 + 1 ) = 0;

signSignal( coord > n/2 + 1 ) = -1i;

 

hilb = real( ifft( fftSignal.*signSignal ) );

 

hilbAmplitude = sqrt( hilb.*hilb + hilbSource.*hilbSource );

%hilbAmplitude = hilb;

%if indexSin==100

% plot( coord, x, 'b' ); hold on;

% plot( coord, y, 'r' );hold on;

% plot( coord, hilbAmplitude, 'g' ); hold on;

%end;

 

plot( coord, abs(transferFunc), 'r' ); hold on;

plot( indexSin, hilbAmplitude(n/2), '-rs','LineWidth',2,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor','g',...

    'MarkerSize', 2 ); hold on;

end;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Результаты

Входной сигнал

Выход фильтра и гильберт-огибающая:

График передаточной функции(амплитудного спектра) и отношение гильберт-огибающей выхода к амплитуде входной косинусоиды в зависимости от частоты:


Информация о работе Обработка цифровых сигналов