Перейти к содержанию
    

STM32F100 ADC и детектирование сдвига фазы .

Пришла в голову более-менее адекватное решение:

426658540_.png.3be2f753966920d836f5f5bd7281c156.png

Создаю 3 буфера 

X, Y , GB

X - образцовая таблица синуса

Y - оцифрованный сигнал с АЦП

GB - буфер баланса грунта , он подстраивается или динамически или статически . Если буфер Y превысит его , то регистрируем мишень.

АЦП по DMA оцифровывает и складывает в буфер значения оцифрованного сигнала, после анализа , данные либо копируется в GB либо определяются как регистрация мишени.

Весь анализ происходит в прерывании тамера3 , через период , то есть раз в два периода.

Нашел такой пример вычисления фазового сдвига :

for(i=0;i<Points;i++)  //на период
  {
    SinP[i]=sin(i*2*PiValue/Points);
    CosP[i]=cos(i*2*PiValue/Points);
  }
    
  for(i=0;i<LenA;i++) //на 4 периода
  {
    //Канал 1 Эталонный
    x1=x1+a[i]*CosP[i%(u16)Points];
    y1=y1+a[i]*SinP[i%(u16)Points];
    //Канал 2  Анализируемый
    x2=x2+b[i]*CosP[i%(u16)Points];
    y2=y2+b[i]*SinP[i%(u16)Points];
  }
  
  x1=x1/LenA*2;
  y1=y1/LenA*2;
  
  x2=x2/LenA*2;
  y2=y2/LenA*2;
  
 
  Ph_Etalon =atan2(y1,x1);
  Ph_Etalon =Ph_Etalon*180/PiValue;
  
  
  Ph_Obj    =atan2(y2,x2);
  Ph_Obj    =Ph_Obj*180/PiValue;
 
  Phase = Ph_Calibr-Ph_Obj;  //Фазовый сдвиг!!!

Кто работал с ЦОС , скажите , решение нормальное ?

Изменено пользователем Artos5

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 часов назад, Artos5 сказал:

решение нормальное ?

ДПФ как ДПФ, что в нем может быть ненормального? Оно же взаимная корреляция.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если каким то чудом этот вопрос еще актуален, то для определения сдвига фаз специально существует преобразование Гильберта. Если кому интересно, могу рассказать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 час назад, blessedt сказал:

Если каким то чудом этот вопрос еще актуален, то для определения сдвига фаз специально существует преобразование Гильберта. Если кому интересно, могу рассказать.

Расскажите, мне интересно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...