Я использовал CSD из набора инструментов Signal Processing для вычисления спектральной плотности мощности, но начиная с версии R14 я получаю предупреждение о том, что CSD был заменен на CPSD, а CSD все еще работает, но может быть удален в будущем.

Я пытался адаптировать свой код для использования CPSD, однако не смог добиться таких же результатов.

В чем разница между CSD и CPSD и как можно получить такие же результаты с помощью CPSD?

ОТВЕЧАТЬ

Matlabsolutions.com предоставляет последнюю Помощь по домашним заданиям MatLab, Помощь по заданию MatLab для студентов, инженеров и исследователей в различных отраслях, таких как ECE, EEE, CSE, Mechanical, Civil со 100% выходом. Код Matlab для BE, B.Tech , ME, M.Tech, к.т.н. Ученые со 100% конфиденциальностью гарантированы. Получите проекты MATLAB с исходным кодом для обучения и исследований.

CPSD возвращает спектральную плотность мощности, тогда как CSD не возвращает ни мощность, ни спектральную плотность мощности. В зависимости от приложения эта разница может быть критической.

Кроме того, при вызове CSD(x,y) он возвращает БПФ автокорреляции E(yx*), а CPSD(x,y) возвращает БПФ автокорреляции E(xy*). Это объясняет инверсию фазы, наблюдаемую в результате. Подход CPSD более естественен, если нужно найти перекрестную спектральную плотность мощности между x и y.

Таким образом, чтобы получить результат CSD с помощью CPSD, выполните следующие действия:

1. Используйте окно Хэннинга вместо Хемминга (по умолчанию).

2. Установите «noverlap» на ноль.

3. Масштабируйте результат с помощью Fs.

4. Передайте входные параметры в обратном порядке.

Вот дополнительная информация о шаге 3 — как масштабировать результат. В CSD, если сигнал реальный, функция возвращает положительную сторону

спектр, период. Тем не менее, в CPSD он делает немного больше, чтобы придумать

СМОТРИТЕ ПОЛНЫЙ ОТВЕТ НАЖМИТЕ НА ССЫЛКУ