Функции > Обработка сигналов > Спектральный анализ > Пример. Спектральный анализ
Пример. Спектральный анализ
Используйте функции coherence, cspectrum, pspectrum и snr для расчета когерентности, взаимного спектра, спектра мощности и отношения сигнал-шум для сигнала или пар сигналов.
Описание этой процедуры усреднения взято из книги Samuel Stearns and Ruth David, Signal Processing Algorithms (Алгоритмы обработки сигналов), Prentice-Hall, Inc..
Спектр мощности - использование ДПФ
Для длинных временных рядов, в которых значения всего нескольких точек данных соответствуют сигналу, желательно получить спектр мощности, показывающий частоты значений сигнала, а не шума или нулевых значений.
1. Определите ширину окна.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
2. Определите два возможных окна, w1 и w2, в которых сигнал не является нулевым.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
3. Задайте для ширины окна одно из двух возможных значений.
Щелкните для копирования этого выражения
4. Определите частоты сигнала и выборки.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
5. Используйте функцию sin, чтобы определить сигнал внутри и снаружи выбранного окна.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
6. Постройте график сигнала.
Щелкните для копирования этого выражения
7. Используйте функцию dft, чтобы вычислить дискретное преобразование Фурье для x.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
8. Постройте график результирующей функции в частотной области.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Для чистого синусоидального сигнала величина коэффициентов ДПФ дает хорошую оценку спектра мощности. Но в этом случае ДПФ сигнала является частотным содержимым структурированного сигнала, свернутого с преобразованием прямоугольного окна (функция sinc).
Если задать W= w2 (шаг 3), ширина окна, в котором существует синусоидальный сигнал, увеличивается с 230-300 до 0-499 (коэффициент 7.143x), в результате чего величина двух пиков возрастает с 35 до 250 (также с коэффициентом 7.143x).
Частоты, при которых возникают пики, не изменяются.
Спектр мощности - использование pspectrum
Функция pspectrum разбивает исходный временной ряд на перекрывающиеся сегменты. Каждый из этих сегментов преобразуется ДПФ, а коэффициенты преобразованных величин усредняются. Если длина сегментов по масштабу совпадает с явлением, анализируемым в сигнале, функция pspectrum возвращает хорошую аппроксимацию величины компонентов значимых частей исходного временного ряда.
Как правило, длина сигнала должна составлять по меньшей мере n + 1.
1. Определите длину сигнала, коэффициент перекрытия и тип окна (трапециевидное).
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
2. Используйте функцию pspectrum, чтобы вычислить спектр мощности x. Для этого x делится на n1 перекрывающихся сегментов с коэффициентом перекрытия r и кадрированием каждого сегмента с помощью трапециевидного окна.
Щелкните для копирования этого выражения
3. Используйте функции floor и length, чтобы показать, что длина интервала является наибольшим числом L, для которого:
Щелкните для копирования этого выражения
4. Постройте график спектра с нормализованной частотной осью (1 представляет частоту выборки).
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
5. Рассчитайте среднюю мощность в спектре.
Щелкните для копирования этого выражения
Она приблизительно равна среднеквадратичному значению сигнала x.
Щелкните для копирования этого выражения
pspectrum с белым шумом
Рассчитайте спектр мощности сигнала, содержащего белый шум. Создайте два таких сигнала, поскольку второй сигнал нужен для расчета взаимного спектра. Для сужения блока данных используйте окно Хэмминга.
1. Задайте ширину сигнала.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
2. Используйте функции sin и rnd, чтобы определить два сигнала с общей частотой fc. Функция rnd возвращает вектор однородно распределенных случайных чисел между 0 и указанным числом, благодаря чему сохраняется различие между сигналами.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
3. Постройте график первых 100 выборок двух сигналов.
Щелкните для копирования этого выражения
4. Используйте функцию pspectrum, чтобы получить спектр мощности y1. Для этого разделите его на 40 перекрывающихся сегментов с коэффициентом перекрытия 0.5 и кадрированием каждого сегмента с помощью окна Хэмминга.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
5. Используйте функции match и max, чтобы найти пиковые выборки спектра мощности.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
6. Постройте график спектра в децибелах. С помощью маркеров отметьте общую частоту и максимальное значение в децибелах.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
График показывает, что вся мощность сигнала относится к общим частотам fc и 1-fc.
7. Рассчитайте мощность шума.
Щелкните для копирования этого выражения
8. Рассчитайте коэффициент передачи мощности шума в дБ.
Щелкните для копирования этого выражения
9. Рассчитайте высоту, исходя из того факта, что вышеприведенные две частотные выборки, поделенные на длину спектра, должны в результате давать среднюю мощность компонента синусоиды, которая равна 0.5.
Щелкните для копирования этого выражения
Или:
Щелкните для копирования этого выражения
10. Сравните теоретические и фактические высоты в децибелах.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Функция cspectrum
Обычно взаимный спектр используется для обнаружения сходства в двух сигналах, например для сравнения известного речевого сигнала (скажем, гласной "я") с неизвестным речевым сигналом (скажем, словом "яблоко"), чтобы увидеть, присутствует ли известный речевой сигнал в неизвестном. Так же, как спектр мощности временного ряда подобен своей автокорреляции, взаимный спектр двух временных рядов подобен их взаимной корреляции. Для стационарных случайных последовательностей функции спектра возвращают те же значения, что и функции корреляции.
1. Примените функцию cspectrum к сигналам y1 и y2, используя 40 перекрывающихся сегментов с коэффициентом перекрытия 0.5 и кадрируя каждый сегмент с помощью трапециевидного окна.
Щелкните для копирования этого выражения
2. Постройте график спектра в децибелах.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
3. Постройте график взаимного спектра, учитывая, что он является комплексным, и поэтому протокол должен применяться к величине.
Щелкните для копирования этого выражения
Взаимный спектр y1 и y2 демонстрирует пик на общих частотах fc и 1- fc.
Функции coherence и snr
Функция coherence измеряет линейную зависимость одного сигнала от другого и равна квадрату величины взаимного спектра двух сигналов, деленному на оба спектра мощности. Значение находится в диапазоне от 0 до 1. Значение 1 функции когерентности указывает, что оба сигнала имеют в этом диапазоне частот выраженные компоненты, свободные от шума. Значение 0 указывает, что в этом диапазоне частот в основном наблюдается шум.
Функция отношения сигнал-шум snr равна функции coherence, деленной на единицу минус функция coherence, и максимизируется там, где два сигнала обладают сильными компонентами в любой составляющей полосе, пропорциональными отношению мощностей сигналов и мощности шума датчика или фонового шума.
1. Примените функцию coherence к сигналам y1 и y2, используя 40 перекрывающихся сегментов с коэффициентом перекрытия 0.5 и кадрируя каждый сегмент с помощью окна Хэмминга.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
2. Постройте график функции coherence. С помощью маркеров отметьте общую частоту и максимальное значение.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
3. Примените функцию snr к сигналам y1 и y2, используя 40 перекрывающихся сегментов с коэффициентом перекрытия 0.5 и кадрируя каждый сегмент с помощью окна Хэмминга.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
4. Постройте график функции отношения сигнал-шум. С помощью маркеров отметьте общую частоту и максимальное значение.
Щелкните для копирования этого выражения
Щелкните для копирования этого выражения
Обе функции coherence и snr показывают максимальное значение на одиночных частотных составляющих двух сигналов с добавленным шумом, представленным двумя столбиками меньшего размера с каждой стороны.
Было ли это полезно?