FFT, Интерпретация результата преобразования

Николай72
Сообщения: 5
Зарегистрирован: 01 дек 2015, 11:06

Re: FFT, Интерпретация результата преобразования

Сообщение Николай72 »

Я ничего не изменял в приложенном в начале темы m-файле, кроме сказанного выше. И просто запустил его.
Если правильно понимаю, то интервал 50 кГц - это положительные частоты, то есть 100 кГц пополам, а вот что же тогда есть симметрия относительно 25 кГц? Это и есть частота Найквиста в данной постановке?
Автор темы хотел сместить спектр, это не очень понятно, для чего, ведь отрицательные частоты зеркальны положительным. Поэтому я и не стал раскомментировать строку сдвига или как он там правильно называется.
А все остальное как у автора.

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: FFT, Интерпретация результата преобразования

Сообщение Santik »

[ref]Николай72[/ref], я не буду вспоминать, что там было почти год назад. Рекомендую сначала книги почитать, если сомнения есть, что такое частота Найквиста. По форумам ЦОС не изучишь.

Николай72
Сообщения: 5
Зарегистрирован: 01 дек 2015, 11:06

Re: FFT, Интерпретация результата преобразования

Сообщение Николай72 »

Здравствуйте!
Совет не изучать ЦОС на форумах дельный (без сарказма), спасибо.
Частота Найквиста тоже вопросов не вызывает (определение найти и изучить несложно).
Однако смутило в рассматриваемом примере значение частоты дискретизации 100 кГц, приведенное в начале темы.
Поэтому, погуглив немного, нашел информацию по этому примеру. Он используется многими, в частности
https://www.iar.com/support/resources/a ... p-library/
https://www.keil.com/pack/doc/CMSIS/DSP ... y_bin.html
Нигде не говорится о частоте дискретизации вообще и о 100 кГц в частности, только лишь о том, что это сигнал 10 кГц, смешанный с равномерно распределенным шумом.
Чтобы проверить возникшие сомнения, было проведено следующее:
1. На основе примера из Matlab смоделирован сигнал из двух синусоид 10 и 15 кГц, взятых с частотой дискретизации 100 кГц и перемешанных с шумом.
2.Обработав данные из примера (удалив из массива нули), с ними было сделано то же, что и выше.
Так вот исходная частота 10 кГц в спектре имеет место быть при частоте дискретизации 50 кГц.
Вы совершенно правы, Santik, частота Найквиста в этом случае составляет 25 кГц.
Matlab работает, как ему и положено, а самому удалось (надеюсь) разобраться.
Прошу прощения, если отнял время и внимание.
Результаты и программы см. прилагаемый архив
Вложения
fft1.zip
(554.36 КБ) 264 скачивания

Аватара пользователя
Santik
Сообщения: 609
Зарегистрирован: 28 дек 2010, 08:04
Откуда: Мирный (Якутия)
Контактная информация:

Re: FFT, Интерпретация результата преобразования

Сообщение Santik »

Спектр спицы.JPG

Alexey-Rus.
Сообщения: 4
Зарегистрирован: 26 фев 2021, 08:49

Re: FFT, Интерпретация результата преобразования

Сообщение Alexey-Rus. »

Здравствуйте.
Подскажите, пожалуйста, как измерить разность фаз двух синусоидальных сигналов нарастающей частоты? Цель - измерить АЧХ и ФЧХ электропривода. Требуемый диапазон частот от 0,25 Гц до 50 Гц. Особая точность не требуется, +/- 10-20 градусов устроит.
С АЧХ разобрался. Делаю БПФ для 2048 точек входного и выходного сигнала и беру отношение выходных амплитуд гармоник ко входным. Частота дискретизации 250 Гц.
С ФЧХ пытался брать разность фаз гармоник. Но нормальный результат получается только для первых гармоник, далее фаза начинает резко меняться и каждая следующая гармоника сдвигается по фазе больше чем на 360 градусов, там уже вычислить ничего нельзя.
Пробовал измерять на шумовом сигнале, но получается какая-то каша: на АЧХ куча пиков, хотя если сильно сгладить будет немного похоже на реальную АЧХ, на ФЧХ вообще просто шум какой-то.
На приложенной картинке фазы сигналов. Голубая линия - входной сигнал, красная - выходной.
ФЧХ входного и выходного сигналов.
ФЧХ входного и выходного сигналов.

framer
Сообщения: 5
Зарегистрирован: 23 фев 2021, 13:14

Re: FFT, Интерпретация результата преобразования

Сообщение framer »

Наверное все зависит от того как быстро увеличивается частота. Тут наверное более подходит понятие не сдвига фазы а запаздывание сигнала вход/выход. Если частота увеличивается быстро то АЧХ по идеи будут разные. А если АЧХ разные то сдвиг фаз ничего нам не говорит. Тем более что на высоких частотах он будет проворачиваться больше 2Пи.
а.png
По идеи за счет разницы АЧХ можно вычислить задержку сигнала если изменения частоты известны. Но подозреваю, изменение частоты будет зависеть от условий. Лучше всего по идеи делать корреляцию сигнала вход / выход с задержкой по времени.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1056
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: FFT, Интерпретация результата преобразования

Сообщение Бахурин Сергей »

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

Alexey-Rus.
Сообщения: 4
Зарегистрирован: 26 фев 2021, 08:49

Re: FFT, Интерпретация результата преобразования

Сообщение Alexey-Rus. »

framer писал(а):
26 фев 2021, 13:31
Наверное все зависит от того как быстро увеличивается частота.
Ну да, насколько помню, изменение фазы зависит от скорости нарастания частоты, пробовал по разному делать. Но если слишком быстро увеличивать частоту, то получается недостоверная картина на частотах резонанса конструкции, резонансы просто не успевают возбуждаться.
framer писал(а):
26 фев 2021, 13:31
А если АЧХ разные то сдвиг фаз ничего нам не говорит.
АЧХ, конечно, разные, помимо резонансов конструкции на АЧХ влияют еще и настройки регуляторов в преобразователе частоты. А ФЧХ мне нужна чтобы понять, что сделать с выходным сигналом, чтобы замкнуть петлю обратной связи.
Бахурин Сергей писал(а):
26 фев 2021, 15:38
Я бы измерял по одной гармонике
Наверное придется так и делать. Хотя, наверное, в моем случае проще будет вычислять разницу во времени между точкой перехода через ноль входного и выходного сигналов за одну полуволну и отсюда уже высчитывать разность фаз. Я даже уже собрался так и делать, но споткнулся на фильтрации выходного сигнала. Он не чистая синусоида, а с кучей гармоник. Как его правильно отфильтровать? Теоретически, можно попробовать сделать это с помощью БИХ или КИХ фильтра с повышающейся частотой среза по мере увеличения частоты сигнала, но практически для меня это сложновато, потому что рассчитывать коэффициенты фильтров я не умею, а создавать кучу фильтров с разной частотой в каком-нибудь матлабе, а потом эту кучу коэффициентов копировать в свою программу для МК тоже слишком долго. Может есть какой-то более простой алгоритм? Я работал с программами для измерения параметров громкоговорителей. В этих программах есть варианты сглаживания графиков в долях октавы, обычно от 1/3 до 1/12 октавы. Интересно, что за фильтр при этом используется? Может медианный?

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1056
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: FFT, Интерпретация результата преобразования

Сообщение Бахурин Сергей »

Вот я бы не советовал считать переходы через 0. Очень порочный путь при всей кажущейся простоте.
Вообще решение задачи выглядит так:

Код: Выделить всё

clear all; close all; clc;

% размер выборки сигнала
N = 128

% время
t = (0:N-1);

% формируем k-ую грамонику
k = 11;
A = 1;
s0 = A * cos(2*pi*k*t/N);

% Принимаем грамонику на тойже частоте, но с амплитудой B и фазовым сдвигом phi
B = 0.7;
phi = 1;

% А это временная задержка приема, которая сильно исказит фазу!!!
dt = 0.0;
s1 = B * cos(2*pi*k*(t - dt)/N + phi);

% анализируем

S0 = sum(s0.*exp(-2i * pi * k * t / N));
S1 = sum(s1.*exp(-2i * pi * k * t / N));

gain = abs(S1/S0)
phase = angle(S1/S0)

если нет временной задержки, то будет оценено точно значения фазового сдвига и амплитуды:

gain = 0.70000
phase = 1.0000

Но если мы добавим временной сдвиг, например установим

Код: Выделить всё

% А это временная задержка приема, которая сильно исказит фазу!!!
dt = 2.0;
то оценка фазы будет с ошибкой:

gain = 0.70000
phase = -0.079922

потому что для гармоники задержка во времени и есть фазовый сдвиг.
Поэтому ваша задача - устранить временную задержку при измерениях, тогда фчх будет без ошибок

Alexey-Rus.
Сообщения: 4
Зарегистрирован: 26 фев 2021, 08:49

Re: FFT, Интерпретация результата преобразования

Сообщение Alexey-Rus. »

Сергей, не могли бы Вы объяснить эту часть выражения: "sum(s0."? sum, как я понимаю, это сумма выражения в скобках при t от 0 до N. А как трактовать "s0."? Еще мне непонятно, что такое "-2i" и "angle(S1/S2)".
Спасибо.

Ответить