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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Простой анализ спектра простого сигнала
Punk
сообщение Dec 22 2006, 15:31
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 242
Регистрация: 19-06-06
Из: Новосибирск
Пользователь №: 18 167



Здравствуйте мегаматематики. Попросили(добровольно-принудительно) меня в технаре написать програмку на камп чтобы строила 2 графика гармонических функций а ниже нарисовала спектр сигнала, являющегося суммой этих двух гармоник.
Синус с косинусом нарисовать и результирующий сигнал найти непроблема, а вот спектр мозгов не хватает, ПОМОЖИТЕ ЛЮДИ ДОБРЫЕ !!! Препод понимает C, Pascal, qBasic объектноориентированное непонимает.Заранее спасибо за любую инфу
Go to the top of the page
 
+Quote Post
SM
сообщение Dec 22 2006, 16:02
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Punk @ Dec 22 2006, 15:31) *
Здравствуйте мегаматематики. Попросили(добровольно-принудительно) меня в технаре написать програмку на камп чтобы строила 2 графика гармонических функций а ниже нарисовала спектр сигнала, являющегося суммой этих двух гармоник.
Синус с косинусом нарисовать и результирующий сигнал найти непроблема, а вот спектр мозгов не хватает, ПОМОЖИТЕ ЛЮДИ ДОБРЫЕ !!! Препод понимает C, Pascal, qBasic объектноориентированное непонимает.Заранее спасибо за любую инфу


А что там рисовать-то? Две палки аккурат на частотах этих гармоник. И еще две зеркально на отрицательных частотах. Ведь спектр синуса, как и косинуса это есть пара дельта-функций в плюсе и в минусе.
Go to the top of the page
 
+Quote Post
Pavel MAR
сообщение Dec 22 2006, 17:36
Сообщение #3





Группа: Новичок
Сообщений: 8
Регистрация: 21-12-06
Пользователь №: 23 755



если нужно разложить любой сигнал в спектр, то делаем следующее: берется функция входного сигнала, определяется ее период и раскладывается на компоненты ряда Фурье, затем берется среднее геометрическое a(n) и b(n), и строится спектрограмма - зависимость энергии гармоники, от ее номера n.
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Dec 22 2006, 18:56
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(Punk @ Dec 22 2006, 15:31) *
Препод понимает C, Pascal, qBasic объектноориентированное непонимает.
А Матлаб понимает? Прогга на нём покороче будет.
Например:
Код
A=(sin(.25*[1:1000])+sin(.1*[1:1000]));
plot (A)
figure
plot (abs(fft(A)))


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
Punk
сообщение Dec 25 2006, 09:18
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 242
Регистрация: 19-06-06
Из: Новосибирск
Пользователь №: 18 167



понимает.....
Задача именно под ДОС написать.

Как я понял спектрограмма строится на период исследуемой функции ?
Go to the top of the page
 
+Quote Post
ishergin
сообщение Dec 25 2006, 10:50
Сообщение #6


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

Группа: Свой
Сообщений: 130
Регистрация: 16-06-05
Из: Оренбург
Пользователь №: 6 039



Цитата(Punk @ Dec 25 2006, 11:18) *
понимает.....
Задача именно под ДОС написать.

Как я понял спектрограмма строится на период исследуемой функции ?


Для паскаля под дос ищите архив Russian SWAG (там куча разных библиотек с исходниками). Можно поискать либы для Free Pascal или TMT Pascal или просто готовый сырец ;-)

В свое время для преобразования Фурье использовал библиотеку fftw

P.S. Если функция периодическая, то она разлагается в ряд Фурье, если же апериодическая -- то в интеграл Фурье....


--------------------
Программа выполнила невыполнимое и допустила недопустимое
Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 25 2006, 12:23
Сообщение #7


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(Punk @ Dec 25 2006, 12:18) *
понимает.....
Задача именно под ДОС написать.

Есть такой ЯП Python. Для него существует (свободно скачивается) библиотека pylab. При наличии установленного питона и оной библиотеки код, приведенный Станиславом, будет практически без изменений (пару инклюдов надо будет сделать) годиться к выполнению. Включая построение графиков.

Питон для ДОС: http://www.caddit.net/pythond.php.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
SM
сообщение Dec 25 2006, 12:29
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



А может препод понимает аналитически выведенные формулы? Тогда и спектрограмму строить можно сразу построением графика заранее известной ф-ции. Для указанного сигнала это раз плюнуть!!!
Go to the top of the page
 
+Quote Post
Punk
сообщение Dec 25 2006, 17:53
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 242
Регистрация: 19-06-06
Из: Новосибирск
Пользователь №: 18 167



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

методом перерывания инфы вот че нашел из "ИСКУССТВО СХЕМОТЕХНИКИ" в главе посвященной цифровой фильтрации,..код на фортране

A=EXP(-TS/TC)
B=1.-A
DO 10I=2,N
10X(I)=A*X(I-1)+B*X(I)

где Х-массив данных TS-интервал времени между отсчетами TC-выбранная постоянная времени фильтра

я сравнил эту формулу с формулами из литературы посвященной БПФ


и пришел к выводу что спектрограмму можно построить при помощи неё, я прав ?
Go to the top of the page
 
+Quote Post
SM
сообщение Dec 25 2006, 18:43
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Punk @ Dec 25 2006, 17:53) *
я всеже хочу найти простой метод без библиотек в котором смогу самостоятельно разобраться.

методом перерывания инфы вот че нашел из "ИСКУССТВО СХЕМОТЕХНИКИ" в главе посвященной цифровой фильтрации,..код на фортране

A=EXP(-TS/TC)
B=1.-A
DO 10I=2,N
10X(I)=A*X(I-1)+B*X(I)

где Х-массив данных TS-интервал времени между отсчетами TC-выбранная постоянная времени фильтра

я сравнил эту формулу с формулами из литературы посвященной БПФ


и пришел к выводу что спектрограмму можно построить при помощи неё, я прав ?


Нет, это цифровой фильтр НЧ первого порядка. К анализу спектра отношения не имеет. А ДПФ для точки номер "k" рассчитывается так:
Код


a=b=0.0;
for (i=0; i<N; i++) {
  a += fcos(2*pi*i*k/N) * signal[i];
  b += fsin(2*pi*i*k/N) * signal[i];
}
Go to the top of the page
 
+Quote Post
Punk
сообщение Dec 26 2006, 07:57
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 242
Регистрация: 19-06-06
Из: Новосибирск
Пользователь №: 18 167



Цитата
Нет, это цифровой фильтр НЧ первого порядка. К анализу спектра отношения не имеет. А ДПФ для точки номер "k" рассчитывается так:
Код


a=b=0.0;
for (i=0; i<N; i++) {
  a += fcos(2*pi*i*k/N) * signal[i];
  b += fsin(2*pi*i*k/N) * signal[i];
}


Из этого цикла выходят два коэффициента a и b че сопсна с имя делать, и как определить число k, равно ли оно N ? если че простите за тупизну и настойчивость.
Go to the top of the page
 
+Quote Post
SM
сообщение Dec 26 2006, 11:21
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Punk @ Dec 26 2006, 07:57) *
Из этого цикла выходят два коэффициента a и b че сопсна с имя делать, и как определить число k, равно ли оно N ? если че простите за тупизну и настойчивость.


Тяжелый случай... k это номер выборки спектральной ф-ции в частотной области. Вычисляется для всех k от 0 до N-1. Коэфф. a и b дают на выходе X(k) = a+j*b где j сами попробуйте догадаться что.
Go to the top of the page
 
+Quote Post
Punk
сообщение Dec 26 2006, 16:32
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 242
Регистрация: 19-06-06
Из: Новосибирск
Пользователь №: 18 167



Цитата
Тяжелый случай... k это номер выборки спектральной ф-ции в частотной области. Вычисляется для всех k от 0 до N-1. Коэфф. a и b дают на выходе X(k) = a+j*b где j сами попробуйте догадаться что.


Случай действительно тяжелый так как я математику ни черта не знаю а ща пытаюсь восполнить все пробелы.

В общем я разобрался всем спасибо.

P.S. а j это наверно мнимая еденица ,...может быть
Go to the top of the page
 
+Quote Post
vladv
сообщение Dec 26 2006, 18:46
Сообщение #14


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

Группа: Участник
Сообщений: 128
Регистрация: 7-06-06
Пользователь №: 17 825



Цитата(SM @ Dec 25 2006, 18:43) *
Цитата(Punk @ Dec 25 2006, 17:53) *

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

методом перерывания инфы вот че нашел из "ИСКУССТВО СХЕМОТЕХНИКИ" в главе посвященной цифровой фильтрации,..код на фортране

A=EXP(-TS/TC)
B=1.-A
DO 10I=2,N
10X(I)=A*X(I-1)+B*X(I)

где Х-массив данных TS-интервал времени между отсчетами TC-выбранная постоянная времени фильтра

я сравнил эту формулу с формулами из литературы посвященной БПФ


и пришел к выводу что спектрограмму можно построить при помощи неё, я прав ?


Нет, это цифровой фильтр НЧ первого порядка. К анализу спектра отношения не имеет. А ДПФ для точки номер "k" рассчитывается так:
Код


a=b=0.0;
for (i=0; i<N; i++) {
  a += fcos(2*pi*i*k/N) * signal[i];
  b += fsin(2*pi*i*k/N) * signal[i];
}



SM, не путайте Punk-а. Формула, которую он привел, действительно ДФП. WN**kn = exp(-j*2*pi*k*n/N), где j мнимая единица.

Хотя на фильтр (правда не НЧ и не 1-го порядка) это действительно похоже. Что и не удивительно, поскольку БФП N-того порядка можно трактовать как набор из N фильтров: по одному на каждую "выходную" частоту.
Go to the top of the page
 
+Quote Post
SM
сообщение Dec 27 2006, 02:45
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(vladv @ Dec 26 2006, 18:46) *
SM, не путайте Punk-а.


Нет, это Вы его не путайте. Я сказал ему не про формулу, а про КОД НА ФОРТРАНЕ. Который к ПФ никакого отношения не имеет, а есть РЕКУРСИВНЫЙ ФИЛЬТР НЧ ПЕРВОГО ПОРЯДКА. А что формула ДПФная это и ежу понятно. И, пожалуйста, повнимательнее читайте кто что пишет.
Go to the top of the page
 
+Quote Post

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

 


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


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