реклама на сайте
подробности

 
 
> Спектральный анализ Фурье, Разрыв в оцифровке. Что делать?
Who_are_you?
сообщение Aug 1 2013, 08:35
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 185
Регистрация: 5-02-10
Из: Донецк
Пользователь №: 55 329



Давно учил спектральный анализ Фурье.

Подскажите, где почитать!

Тема:
При обработке оцифрованного сигнала иногда факт,
что разрыв данных.
Чем дополнить, например, середину данных, чтобы не повлиять на Фурье анализ?
При анализе окнами не хочется выбрасывать окно, где разрыв данных.

Сообщение отредактировал Who_are_you? - Aug 1 2013, 08:39
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Navstar
сообщение Sep 18 2013, 11:49
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 29-11-09
Пользователь №: 53 951



Проблема была в том что нужно было использовать функции аргумента, а не арктангенса, а так же фильтровать спектр от зеркальной составляющей, занулив ее и удвоив исходный спектр
Может кому пригодится исходный код на java. Все это будет интегрироваться в Embedded систему с linux ядром.
Код

private static void DFT(double[] signal, double[] phase)
  {
     double[] Re = new double[1024];
     double[] Im = new double[1024];
     for(int k = 0; k < 1024; k++)
     {
        for(int n = 0; n < 1024; n++)
        {  
     Re[k]=Re[k]+signal[n]*Math.cos(-2*Math.PI*k*n/1024 );
     Im[k]=Im[k]+signal[n]*Math.sin(-2*Math.PI*k*n/1024 );
        }
     }
        
       for(int k = 0; k < 1024; k++)
     {
        signal[k]=2*Math.sqrt(Re[k]*Re[k]+Im[k]*Im[k]);
        phase[k]=Math.atan2(Im[k],Re[k]);
     }  
                
            
       for(int n = 512; n < 1024; n++)
             {
                       signal[n]=0;
                       phase[n]=0;  
             }
      
  }
  
  
  private static void ODFT(double[] signal, double[] phase)
  {
     double[] Re = new double[1024];
     double[] Im = new double[1024];
    for(int n = 0; n < 1024; n++)
     {
            Re[n]=signal[n]*Math.cos(phase[n]);
            Im[n]=signal[n]*Math.sin(phase[n]);      
         }
    
    for(int n = 0; n < 1024; n++)
     {        
       signal[n]=0;
       phase[n]=0;
        for(int k = 0; k < 1024; k++)  
        {
             signal[n]=signal[n]+Re[k]*Math.cos(2*Math.PI*k*n/1024)-Im[k]*Math.sin(2*Math.PI*k*n/1024);
        }
      
     }
    for(int n = 0; n < 1024; n++)
     {
         signal[n]=signal[n]/1024;
        }
  }


Сообщение отредактировал Navstar - Sep 18 2013, 11:49
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Who_are_you?   Спектральный анализ Фурье   Aug 1 2013, 08:35
- - Alex11   Не хочется - а придется. Для того, чтобы разрыв не...   Aug 1 2013, 09:09
|- - Who_are_you?   Цитата(Alex11 @ Aug 1 2013, 12:09) Не хоч...   Aug 1 2013, 11:00
|- - Lmx2315   QUOTE (Who_are_you? @ Aug 1 2013, 15:00) ...   Aug 1 2013, 11:25
- - Who_are_you?   Предлагаю: 1. Дополнить предполагаемым синусом ...   Aug 1 2013, 12:18
|- - petrov   RE: Спектральный анализ Фурье   Aug 1 2013, 12:54
|- - Who_are_you?   Цитата(petrov @ Aug 1 2013, 15:54) Спас...   Aug 1 2013, 13:29
- - Who_are_you?   Почитал 00100263.pdf . Статья интересная. Но меня...   Aug 5 2013, 12:32
- - Alex11   Что-то Вы такое сказанули - столько не живут. Если...   Aug 5 2013, 20:14
|- - Corner   Цитата(Alex11 @ Aug 6 2013, 00:14) Что-то...   Aug 17 2013, 17:54
- - Xenia   Заполнять промежутки надо ... прямой линией . Т.е....   Aug 17 2013, 18:13
|- - Corner   Цитата(Xenia @ Aug 17 2013, 22:13) Заполн...   Aug 17 2013, 18:22
|- - Tiro   Цитата(Xenia @ Aug 17 2013, 21:13) Заполн...   Sep 2 2013, 22:20
- - Mikhail K.   Цитата(Who_are_you? @ Aug 1 2013, 12:35) ...   Aug 26 2013, 20:29
|- - Corner   Цитата(Mikhail K. @ Aug 27 2013, 00:29) М...   Sep 2 2013, 15:35
- - Navstar   Требуется помощь! Согласно ТЗ мне нужно сдела...   Sep 13 2013, 15:21
- - Alex11   Из результата первой функции Вы не восстановите ис...   Sep 15 2013, 06:51
- - ivan219   Цитата(Alex11 @ Sep 15 2013, 10:51) Из ре...   Sep 15 2013, 07:54


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 12:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01391 секунд с 7
ELECTRONIX ©2004-2016