- •1 Основные конструкции языка
- •1.1 Константы
- •1.1.1 Вещественные числа
- •1.1.2 Мнимые числа
- •1.1.3 Стандартные константы
- •1.2 Основные типы данных
- •1.2.1 Скалярные объекты
- •1.2.2 Массивы
- •1.2.3 Списки
- •1.3 Действия над матрицами
- •1.4 Действия над многочленами
- •1.5 Пользовательские функции
- •1.5.1 Скрипт-файлы
- •1.5.2 Подпрограмма-функция
- •1.6 Работа с графикой
- •1.6.1 Двумерные графики
- •1.6.2 Построение трехмерных изображений
- •2 Примеры исследования динамических систем
- •2.1 Расчет частотных характеристик
- •2.2 Расчет переходных процессов
- •3 Система визуального моделирования XCOS
- •3.1 Модель двигателя постоянного тока
- •3.2 Исследование автоколебаний в нелинейной системе
- •3.3 Исследование системы с переменной структурой
- •4 Тулбокс SYSTEMS AND CONTROL
- •4.1 Описание линейных динамических систем
- •4.2 Типовые соединения линейных систем
- •4.3 Синтез наблюдателя состояния
- •5 Линейные матричные неравенства в среде SCILAB
- •5.3 Признак разрешимости неравенства Ляпунова
- •6 Функции обработки сигналов
- •6.1 Фильтрация и расчет фильтров
- •6.2 Вычисление спектральной функции
- •6.2.1 Вычисление спектра случайного сигнала методом периодограмм
- •6.2.2 Вычисление спектра случайного сигнала методом корреляции
- •6.2.3 Вычисление спектра квазипериодического сигнала преобразованием Фурье
- •7 Решение задач оптимизации
- •Литература
6.2 Вычисление спектральной функции |
79 |
|
|
6.2Вычисление спектральной функции
Спектральная функция детерминированного конечного дискретного сигнала ( ) определяется как квадрат модуля изображения Фурье этого сигнала:
( ) = |
|
( ) − |
2 |
|
. |
||||
1 |
−1 |
|
|
|
|
|
=0 |
|
|
|
|
∑ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рассмотрим несколько способов расчета спектра сигнала с использованием среды Scilab.
6.2.1Вычисление спектра случайного сигнала методом периодограмм
Первый метод – метод I периодограмм. Периодограмма конечной последовательности определяется как
( ) = |
|
( ) ( ) − |
2 |
|
, |
||||
1 |
−1 |
|
|
|
|
|
=0 |
|
|
|
|
∑ |
|
|
|
|
|
|
|
|
|
|
|
|
где ( ) – вырезающая функция. Если для вычисления сигнала используются сегментов длиной , то периодограмма оценки
спектра ^ |
|
|
является средним значением периодограмм: |
||
^ |
1 |
−1 |
|
|
∑ |
( ) = |
|
, |
|
|
=0 |
Эти периодограммы усреднены и нормализованы для достижения требуемой оценки спектральной функции сигнала.
Вычисление спектральной функции методом периодограмм осуществляется функцией pspect.
В качестве примера рассмотрим случайный сигнал, полученный пропусканием белого шума с единичной дисперсией через фильтр низких частот.
rand(’normal’);
rand(’seed’,0);
80 |
Функции обработки сигналов |
|
|
x=rand(1:4096-33+1); nf=33;
bedge=[0 .1;.125 .5]; des=[1 0];
wate=[1 1]; h=eqfir(nf,bedge,des,wate); y=convol(h,x); sm=pspect(100,200,’tr’,y); [hf,fr]=frmag(h,100); xsetech([0 0 1 .5])
plot2d(fr,20*log10(hf)), xgrid();
xtitle(’Squared magnitude of the filter response’,...
’freq (Hz)’,’magnitude (db)’) xsetech([0 .5 1 .5]) plot2d(fr,20*log10(sm(1:100))), xgrid(); xtitle(’Estimate of the spectrum’,...
’freq (Hz)’,’magnitude (db)’)
Для вызова функции pspect необходимо передать следующие параметры: сдвиг сегмента данных, длина каждого сегмента данных, тип окна (в данном примере используется треугольное окно) и вектора данных, задающих сигнал. В функцию можно передать вектор второго сигнала, тогда будет найдена оценка их взаимного спектра. Результат показан на рис. 6.6.
6.2.2Вычисление спектра случайного сигнала методом корреляции
Второй метод, метод корреляции, заключается в вычислении преобразования Фурье усредненной оценки автокорреляционной функ-
ции. Для каждого -точечного сегмента данных, ( ), оценка 2
точек автокорреляционной функции вычисляется следующим образом:
|
−1− |
^ ( ) = |
∑ |
( + ) *( ) |
|
|
=0 |
6.2 Вычисление спектральной функции |
81 |
|
|
|
1.2 |
|
|
|
Elliptic low−pass filter |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
(dB) |
1.0 |
|
|
|
|
|
|
|
|
|
|
|
0.8 |
|
|
|
|
|
|
|
|
|
|
|
|
Amplitude |
|
|
|
|
|
|
|
|
|
|
|
|
0.6 |
|
|
|
|
|
|
|
|
|
|
|
|
0.4 |
|
|
|
|
|
|
|
|
|
|
|
|
0.2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.0 |
|
|
|
|
|
|
|
|
|
|
|
|
0.00 |
0.05 |
0.10 |
0.15 |
0.20 |
0.25 |
0.30 |
0.35 |
0.40 |
0.45 |
0.50 |
freq (Hz) |
1.0 |
|
|
|
Chebyshev band−pass filter |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
0.9 |
|
|
|
|
|
|
|
|
|
|
0.8 |
|
|
|
|
|
|
|
|
|
|
(dB) |
|
|
|
|
|
|
|
|
|
|
0.7 |
|
|
|
|
|
|
|
|
|
|
0.6 |
|
|
|
|
|
|
|
|
|
|
0.5 |
|
|
|
|
|
|
|
|
|
|
0.4 |
|
|
|
|
|
|
|
|
|
|
0.3 |
|
|
|
|
|
|
|
|
|
|
Amplitude0.2 |
|
|
|
|
|
|
|
|
|
|
0.1 |
|
|
|
|
|
|
|
|
|
|
0.0 |
0.05 |
0.10 |
0.15 |
0.20 |
0.25 |
0.30 |
0.35 |
0.40 |
0.45 |
0.50 |
0.00 |
||||||||||
|
|
|
|
Butterworth stop−band filter |
|
|
|
|
freq (Hz) |
||
1.1 |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
1.0 |
|
|
|
|
|
|
|
|
|
|
|
0.9 |
|
|
|
|
|
|
|
|
|
|
|
(dB)0.8 |
|
|
|
|
|
|
|
|
|
|
|
0.7 |
|
|
|
|
|
|
|
|
|
|
|
0.6 |
|
|
|
|
|
|
|
|
|
|
|
0.5 |
|
|
|
|
|
|
|
|
|
|
|
0.4 |
|
|
|
|
|
|
|
|
|
|
|
0.3 |
|
|
|
|
|
|
|
|
|
|
|
Amplitude |
|
|
|
|
|
|
|
|
|
|
|
0.2 |
|
|
|
|
|
|
|
|
|
|
|
0.1 |
|
|
|
|
|
|
|
|
|
|
|
0.0 |
|
|
|
|
|
|
|
|
|
|
|
0.00 |
0.05 |
0.10 |
0.15 |
0.20 |
0.25 |
0.30 |
0.35 |
0.40 |
0.45 |
0.50 |
freq (Hz) |
Рис. 6.5: АЧХ БИХ-фильтров, полученных
при помощи функции eqiir
10 |
|
Squared magnitude of the filter response |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
(db)−10 |
|
|
|
|
|
|
|
|
|
|
−20 |
|
|
|
|
|
|
|
|
|
|
−30 |
|
|
|
|
|
|
|
|
|
|
magnitude−40 |
|
|
|
|
|
|
|
|
|
|
−50 |
|
|
|
|
|
|
|
|
|
|
−60 |
|
|
|
|
|
|
|
|
|
0.50 freq (Hz) |
0.00 |
0.05 |
0.10 |
0.15 |
0.20 |
0.25 |
0.30 |
0.35 |
0.40 |
0.45 |
|
|
10 |
|
|
Estimate of the spectrum |
|
|
|
|
|
|
|
|
0 |
|
|
|
|
(db) |
−10 |
|
|
|
|
−20 |
|
|
|
|
|
magnitude |
|
|
|
|
|
−30 |
|
|
|
|
|
−40 |
|
|
|
|
|
−50 |
|
|
|
|
|
−60 |
|
|
|
|
|
|
|
|
|
|
|
|
−70 |
|
|
|
|
|
−80 |
0.05 |
0.10 |
0.15 0.20 0.25 0.30 0.35 |
0.40 0.45 0.50 freq (Hz) |
|
0.00 |
||||
Рис. 6.6: Cпектр сигнала, рассчитанный по pspect |
|||||
82 |
Функции обработки сигналов |
|
|
для = 0, ±1, ±2, ..., ± оценка спектральной функции принимает вид
{ }
^ ~
( ) = ( ) ( ) ,
где – оператор преобразования Фурье, ( ) – вырезающая функ-
ция, ~ |
|
|
|
( ) – среднее значение оценок: |
|||
~ 1 |
|
^ |
|
= |
|
∑ |
. |
|
=1 |
||
|
|
|
|
Корреляционный метод оценки спектра реализован функцией cspect. Рассмотрим применение этой фунции, используя сигнал из предыдущего примера:
rand(’normal’);
rand(’seed’,0); x=rand(1:4096-33+1); nf=33;
bedge=[0 .1;.125 .5]; des=[1 0];
wate=[1 1]; h=eqfir(nf,bedge,des,wate); y=convol(h,x); sm=cspect(33,200,’ch’,y,[.02,-1]); [hf,fr]=frmag(h,100);
xsetech([0 0 1 .5]) plot2d(fr,20*log10(hf)), xgrid();
xtitle(’Squared magnitude of the filter response’,...
’freq (Hz)’,’magnitude (db)’) xsetech([0 .5 1 .5]) plot2d(fr,20*log10(sm(1:100))), xgrid();
xtitle(’Estimate of the spectrum’,’freq (Hz)’,...
’magnitude (db)’)
Первые два параметра функции pspect – количество интервалов корреляции и количество преобразуемых точек, следующие параметры, как и в pspect, – выбор окна (в данном случае – окно Чебышева) и вектор, задающий сигнал. Последний аргумент – параметры выбранного окна. Результат показан на рис. 6.7.
6.2 Вычисление спектральной функции |
83 |
|
|
10 |
|
Squared magnitude of the filter response |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
(db)−10 |
|
|
|
|
|
|
|
|
|
|
magnitude−40 |
|
|
|
|
|
|
|
|
|
|
−20 |
|
|
|
|
|
|
|
|
|
|
−30 |
|
|
|
|
|
|
|
|
|
|
−50 |
|
|
|
|
|
|
|
|
|
|
−60 |
|
|
|
|
|
|
|
|
|
0.50 freq (Hz) |
0.00 |
0.05 |
0.10 |
0.15 |
0.20 |
0.25 |
0.30 |
0.35 |
0.40 |
0.45 |
|
Estimate of the spectrum
|
10 |
|
|
|
(db) |
0 |
|
|
|
−10 |
|
|
|
|
−20 |
|
|
|
|
magnitude |
|
|
|
|
−30 |
|
|
|
|
−40 |
|
|
|
|
−50 |
|
|
|
|
|
|
|
|
|
|
−60 |
|
|
|
|
−70 |
|
|
0.40 0.45 0.50 freq (Hz) |
|
0.00 |
0.05 |
0.10 0.15 0.20 0.25 0.30 0.35 |
|
Рис. 6.7: Спектр сигнала, рассчитанный по cspect |
||||
