Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -
Справка Scilab >> Signal Processing > spectral_estimation > cspect

cspect

двусторонняя кросс-спектральная оценка между 2 дискретными во времени сигналами, используя метод корреляции.

Синтаксис

sm = cspect(nlags, npoints, wtype, x)
sm = cspect(nlags, npoints, wtype, x, y)
sm = cspect(nlags, npoints, wtype, nx)
sm = cspect(nlags, npoints, wtype, nx, ny)
[sm, cwp] = cspect(.., wpar)

Аргументы

x

вектор, данные первого сигнала.

y

вектор, данные второго сигнала сигнала. Если y пропущен, то он предполагается равным x (автокорреляция). Если он имеется в наличии, то он должен иметь то же количество элементов, что и x.

nx

скаляр: количество точек в сигнале x. В этом случае сегменты сигнала x загружены пользовательской функцией с именем getx (см. ниже).

ny

скаляр: количество точек в сигнале y. В этом случае сегменты сигнала y загружены пользовательской функцией с именем gety (см. ниже). Если указан, то ny должен быть равен nx.

nlags

количество сдвигов корреляции (положительное целое число)

npoints

количество точек преобразования (положительное целое число)

wtype

Тип окна

  • 're': прямоугольное

  • 'tr': треугольное

  • 'hm': Хэмминга

  • 'hn': Хана

  • 'kr': Кайзера, в этом случае должен быть указан аргумент wpar

  • 'ch': Чебышева, в этом случае должен быть указан аргумент wpar

wpar

необязательный параметр для окон Кайзера и Чебышева:

  • 'kr': wpar должен быть строго положительным числом

  • 'ch': wpar должен быть двухэлементным вектором [main_lobe_width, side_lobe_height] где 0<main_lobe_width<.5 и side_lobe_height>0

sm

Спектральная оценка мощности в интервале [0,1] нормированных частот. Это вектор-строка размером npoints. Массив является вещественным в случае автокорреляции и комплексным - в случае кросс-корреляции.

cwp

неопределённый параметр окна Чебышева в случае Чебышевской оконной обработки, либо пустая матрица.

Описание

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

Кросс-спектр двух сигналов x и y определяется как

S_xy(ω) = (∑{n=0…N-1} x(n) exp(-iωn)) . (∑{n=0…N-1} y

Метод корреляции вычисляет спектральную оценку как преобразование Фурье модифицированной оценки функции авто/кросс-корреляции. Эта модифицированная оценка авто/кросс-корреляции состоит из повторно вычисляемых оценок функции автокорреляции из перекрытия под-сегментов данных, а затем усредняет эти оценки для получения результатов.

Количество точек окна равно 2*nlags-1.

Для пакетной обработки данные x и y могут быть прочитаны сегмент за сегментом с помощью функций getx и gety, определённых пользователем. Эти функции имеют следующий синтаксис:

xk = getx(ns,offset) и yk = gety(ns,offset) где ns - это размер сегмента, и offset - это индекс первого элемента сегмента в полном сигнале.

Предупреждение

Для версии Scilab до 5.0.2 возвращаемое значение было модулем текущего значения.

Сcылка

Oppenheim, A.V., and R.W. Schafer. Discrete-Time Signal Processing, Upper Saddle River, NJ: Prentice-Hall, 1999

Примеры

rand('normal');
rand('seed',0);
x = rand(1:1024-33+1);

// делаем фильтр нижних частот с помощью eqfir
[nf, bedge, des, wate] = (33, [0 .1;.125 .5], [1 0], [1 1]);
h = eqfir(nf, bedge, des, wate);

// фильтруем белые данные для получения цветных данных
h1 = [h 0*ones(1:max(size(x))-1)];
x1 = [x 0*ones(1:max(size(h))-1)];
hf = fft(h1,-1);
xf = fft(x1,-1);
yf = hf .* xf;
y = real(fft(yf,1));
sm = cspect(100, 200, 'tr', y);
smsize = max(size(sm));
fr = (1:smsize)/smsize;

plot(fr, log(sm))

Смотрите также

  • pspect — двусторонняя кросс-спектральная оценка между 2 дискретными во времени сигналами, исполmзуя метод усреднения периодограммы Уэлча.
  • mese — maximum entropy spectral estimation
  • corr — корреляция, ковариация
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Jan 03 14:39:55 CET 2022