Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Калачиков математические основы mu_dsp_2811

.pdf
Скачиваний:
48
Добавлен:
11.04.2015
Размер:
1.53 Mб
Скачать

Рисунок 2.6 – Cпектр сигнала y1(t)

2.4 Применение разработанного фильтра

Использовать в среде SPTool разработанный фильтр чрезвычайно просто. Для этого следует в списке Signals (Сигналы) окна SPTool выделить имя сигнала, который нужно преобразовать с помощью фильтра, а в списке Filters (Фильтры) – имя фильтра, с помощью которого надо преобразовать этот сигнал, и активизировать команду Apply (Применить). В результате в списке Signals (Сигналы) появится имя нового сигнала, начинающееся с сочетания символов sig, за которым следует порядковый номер.

Полученный сигнал можно просмотреть, как это было описано ранее, используя команду View (Просмотр). Например, применяя только что разработанный фильтр filt1 к сигналу y1(t), получим процесс, изображенный на рисунке 2.7

Рисунок 2.7 – Результат прохождения сигнала y1(t) через фильтр filt1

31

3 Описание интерактивной среды FDATool

Среда FDATool представляет графический интерфейс для расчета фильтров и просмотра их характеристик. На вкладке Design Filter задается тип синтезируемой АЧХ – фильтр нижних частот, тип фильтра нерекурсивный (FIR), метод синтеза – метод окон (синтез с использованием весовых функций). При проектировании КИХ фильтра в среде FDATool применяются следующие методы: Equiriple – синтез фильтров с равномерными пульсациями АЧХ методом Ремеза; Least-Squares – минимизация среднеквадратичного отклонения АЧХ от заданной и метод окон (Window). В разделе Filter Order задается порядок КИХфильтра. Расчет фильтра осуществляется после нажатия кнопки Design Filter.

В методе окон обратное преобразование Фурье частотной характеристики дает бесконечную в обе стороны последовательность отсчетов импульсной характеристики. Для получения КИХ-фильтра заданного порядка эта последовательность усекается путем выбора центрального фрагмента нужной длины. Для ослабления паразитных эффектов в этом методе синтеза усеченная импульсная характеристика умножается на весовую функцию (окно), плавно спадающую к краям.

Рисунок 3.1 − Окно программы FDATool

32

3.1 Синтез фильтра

Расчет фильтра начинается с задания требуемых параметров в окне

Необходимо выбрать тип синтезируемой АЧХ, с помощью переключате-

ля Filter Type (рисунок 3.2).

Возможны следующие варианты:

-Lowpass ( ФНЧ );

-Highpass ( ФВЧ );

-Bandpass ( ПФ ).

Выбрав категорию синтезируемой АЧХ, следует выбрать тип синтезируемого фильтра, установив переключатель, расположенный в разделе Design Method, в положение FIR (нерекурсивный) или IIR (рекурсивный). Каждому типу фильтра соответствует список возможных методов синтеза, перечисленных ниже и показанных на рисунке 3.2.

Нерекурсивные фильтры (FIR):

o Equiripple – синтез фильтров с равномерными пульсациями АЧХ методом Ремеза;

o Least-Squares – на основе минимизации среднеквадратического отклонения АЧХ от заданной;

o Window – синтез с использованием весовых функций (окон). Рекурсивные фильтры (IIR):

Синтез осуществляется по различным аналоговым прототипам методом билинейного z-преобразования:

o Butterworth – синтез фильтра Баттерворта;

o Chebyshev Type I – синтез фильтра Чебышева первого рода; o Chebyshev Type II – синтез фильтра Чебышева второго рода; o Elliptic – синтез эллиптического фильтра.

Рисунок 3.2 – Список возможных методов синтеза фильтров

Выбрать порядок фильтра в разделе Filter Order (см. рисунок 3.2).

33

Примечание: Возможен автоматический выбор оптимального порядка фильтра путем установки переключателя в положение Minimum Order.

Задать числовые параметры выбранной АЧХ в разделах Frequency Specifications, Magnitude Specifications (рисунок 3.2). Параметры, которые необходи-

мо задать, иллюстрируются графиком, выводимым в разделе Filter Specifica-

tions. Это можно сделать, нажав кнопку на панели инструментов. Вид этого графика меняется в зависимости от выбранного типа АЧХ.

Выбрав метод синтеза и задав характеристики фильтра, щелкните на распо-

ложенной в нижней части окна кнопке для создания вашей модели фильтра.

3.2 Просмотр характеристик фильтра

После выполнения расчета фильтра, нужно просмотреть его характеристики. Выбор графика для просмотра производится с помощью кнопок панели инструментов или следующих команд меню Analysis (рисунок 3.2):

Filter Specifications − вывод графика, поясняющего задание АЧХ;

Magnitude Response − вывод графика АЧХ;

Phase Response − вывод графика ФЧХ;

Magnitude and Phase − одновременный вывод графиков АЧХ и ФЧХ;

Group Delay − вывод графика частотной зависимости групповой задержки;

Impulse Response − вывод графика импульсной характеристики;

Phase Delay – вывод графика частотной зависимости фазовой задержки;

Step Response − вывод графика переходной характеристики;

Pole/Zero Plot − вывод графика расположения нулей и полюсов на плоскости;

View Filter Coefficients − просмотр коэффициентов фильтра.

Когда на экран выведен какой-либо из графиков, можно использовать кнопки Zoom In и Zoom Out для управления масштабом отображения.

34

Практическая работа № 1

ОПИСАНИЕ СИГНАЛОВ В МATLAB

Цель работы. Практическое изучение формирования сигналов при моделировании алгоритмов в Мatlab.

Порядок выполнения работы

Для моделирования алгоритмов обработки сигналов важным является формирование сигналов заданной формы.

Для задания сигнала как функции от времени необходимо сформировать вектор временных отсчетов и далее определить функцию от данного вектора

t1 = [0 .1 .2 .3];

t2 = 0:0.1:0.3;

t3 = linspace(0, 0.3, 4); T = [t1' t2' t3'];

X = sin(T)

В данном примере происходит формирование трех векторов отсчетов времени, задающих масштаб временной оси. Далее эти три вектора объединяются в матрицу, и полученная матрица применяется для вычисления матрицы Х, содержащей отсчеты синусоиды.

t=linspace(-1,10,100); % функция включения u=(t>=0);

plot(t,u)

ts = 0:0.5:5; % дельта импульс x = [1 zeros(1,length(ts)-1)]; stem(ts,x)

axis([-1 6 0 2])

.t = linspace(0,1,1001); %синусоидальный сигнал A = 5;

f = 2;

p = pi/8;

sinewave = A*sin(2*pi*f*t + p); plot(t, sinewave)

%Дискретные экспоненты n = -10:30; % Time index subplot(2,1,1);

y = exp(n/5); % Growing exponential h = stem(n,y); set(h(1),'Marker','.'); set(gca,'Box','Off'); subplot(2,1,2);

35

y = exp(-n/5); % Decaying exponential h = stem(n,y); set(h(1),'Marker','.'); set(gca,'Box','Off');

xlabel('Time (n)');

Важным сигналом в цифровой обработке сигналов является комплексная экспонента. Для наглядного представления формы этого сигнала можно использовать следующий м-скрипт complexp.m.

% Моделирование комплексной экспоненты. w = j*1;

fs = 500; % Sample rate (Hz)

t = -10:1/fs:10; % Time index (s) y = exp(w*t);

N = length(t); subplot(2,1,1);

h = plot(t,real(y)); box off;

grid on; ylim([-1.1 1.1]);

ylabel('Реальная часть'); subplot(2,1,2);

h = plot(t,imag(y)); box off;

grid on; ylim([-1.1 1.1]);

xlabel('Время (s)'); ylabel('мнимая часть'); figure;

h = plot3(t,zeros(1,N),zeros(1,N),'k'); hold on;

h = plot3(t,imag(y),real(y),'b');

h = plot3(t,1.1*ones(size(t)),real(y),'r'); h = plot3(t,imag(y),-1.1*ones(size(t)),'g'); hold off;

grid on;

ylabel('мнимая часть'); zlabel('Реальная часть');

title('Complex:Blue Real:Red Imaginary:Green'); axis([min(t) max(t) -1.1 1.1 -1.1 1.1]); view(27.5,22);

36

Рисунок 4.1 – Реальная и мнимая части комплексной экспоненты

Рисунок 4.2 – Графическое представление комплексной экспоненты

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

37

Процедура rectpuls обеспечивает формирование одиночного импульса прямоугольной формы. Обращение вида

y=rectpuls(t,w)

позволяет образовать вектор y значений сигнала такого импульса единичной амплитуды, имеющий ширину w, центрированный относительно t = 0, по заданному вектору t моментов времени. Сформируем несколько таких импульсов (рисунок 4.3):

t=0:0.01:10; y=0.75*rectpuls(t-3,2)+0.5*rectpuls(t-8,0.4)+ +1.35*rectpuls(t-5,0.8);

plot(t,y); grid; title('Прямоугольные импульсы'); xlabel('Время (с)'); ylabel('Выходной процесс')

Выходной процесс

Прямоугольные импульсы

1.4

1.2

1

0.8

0.6

0.4

0.2

00

1

2

3

4

5

6

7

8

9

10

 

 

 

 

 

Время (с)

 

 

 

 

Рисунок 4.3 – График процесса, сгенерированного функцией rectpuls

Процедура sinc формирует вектор значений функции sin(t)/t. Эта функция является обратным преобразованием Фурье прямоугольного импульса шириной 2π и высотой 1. Пример ее применения (рисунок 4.4):

t=0:0.01:50; y=0.7*sinc(pi*(t-25)/5);

plot(t,y); grid; title('Функция sinc(t)'); xlabel('Время (с)'); ylabel('Выходной процесс')

38

Выходной процесс

Функция sinc(t)

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0

-0.1

-0.20

5

10

15

20

25

30

35

40

45

50

 

 

 

 

 

Время

(ñ)

 

 

 

 

Рисунок 4.4 – График процесса, сгенерированного функцией sinc

Формирование гармонических колебаний можно осуществить с помощью обычных процедур sin(x) и cos(x).

Процесс, являющийся последовательностью прямоугольных импульсов с периодом 2π для заданной в векторе t последовательности отсчетов времени, генерируется с помощью функции square. Обращение к ней имеет вид:

y=square(t,duty)

Здесь аргумент duty определяет длительность положительной полуволны в процентах от периода волны. Например (рисунок 4.5):

t=0:0.01:50; y=0.7*square(pi*t/5,40); plot(t,y); grid; title('Прямоугольные волны'); xlabel('Время'); ylabel('Выходной процесс')

Выходной процесс

Прямоугольные волны

0.8

 

 

 

 

 

 

 

 

 

 

0.6

 

 

 

 

 

 

 

 

 

 

0.4

 

 

 

 

 

 

 

 

 

 

0.2

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

-0.2

 

 

 

 

 

 

 

 

 

 

-0.4

 

 

 

 

 

 

 

 

 

 

-0.6

 

 

 

 

 

 

 

 

 

 

-0.80

5

10

15

20

25

30

35

40

45

50

 

 

 

 

 

Время

 

 

 

 

 

Рисунок 4.5 – График процесса, сгенерированного функцией square

39

Процедура pulstran позволяет формировать колебания, являющиеся последовательностью прямоугольных, треугольных либо гауссовых импульсов. Обращение имеет вид:

y=pulstran(t,d,'func',p1,p2,…) y=pulstran(t,d,'rectpuls',5); plot(t,y); grid; title('Последовательность прямоугольных импульсов'); xlabel('Время'); ylabel('Выходной процесс')

Выходной процесс

Последовательность прямоугольных импульсов

1

0.9

 

 

 

 

 

 

 

 

 

 

 

0.8

 

 

 

 

 

 

 

 

 

 

 

0.7

 

 

 

 

 

 

 

 

 

 

 

0.6

 

 

 

 

 

 

 

 

 

 

 

0.5

 

 

 

 

 

 

 

 

 

 

 

0.4

 

 

 

 

 

 

 

 

 

 

 

0.3

 

 

 

 

 

 

 

 

 

 

 

0.2

 

 

 

 

 

 

 

 

 

 

 

0.1

 

 

 

 

 

 

 

 

 

 

 

0

0

5

10

15

20

25

30

35

40

45

50

 

 

 

 

 

 

Время

 

 

 

 

 

Рисунок 4.6 – Результат применения функции pulstran('rectpuls')

Случайные процессы

Нормально распределенный случайный процесс (белый шум) в MATLAB образуется при помощи процедуры randn. Для этого достаточно задать временной шаг отсчетов Ts, образовать с этим шагом вектор t моментов времени в нужном диапазоне, а затем сформировать по указанной процедуре векторстолбец х длиной, равной длине вектора t, например (рисунок 4.7):

Ts=0.01; t=0:Ts:20; y=randn(1,length(t)); plot(t,y); grid; title('Белый шум'); xlabel('Время'); ylabel('y(t)')

40