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

 
 
> нужны алгоритмы обработки сигналов
VDV
сообщение Aug 20 2007, 12:58
Сообщение #1


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

Группа: Участник
Сообщений: 152
Регистрация: 18-03-06
Пользователь №: 15 366



поделитесь, пожалуйста, информацией где можно найти или самими алгоритмами ЦОС
интересует:
1. полосовой фильтр с перестраиваиваемыми характеристиками
что-нибудь типа

int[] freq = { 200, 1200, 2000 }; центральные частоты
int[] band = { 200, 300, 500 }; полосы
double[] ampl = { 1.0, 0.8, 0.5 }; усиление в полосе
snd[] - массив отсчетов

bandPass( int[] snd, int sampleRate, int[] freq, int[] band, double[] ampl)

а на выходе профильтрованный сигнал

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

2. как имея спектр сигнала, полученный с помощью БПФ, восстановить сигнал на заданном промежутке времени?
например, имеется БПФ сигнала, скажем, 16384 отсчета, что при ОБПФ приводит к восстановлению сигнала длительностью 200 мс. а требуется получить, например 1 сек.
насколько я понимаю, после ОБПФ надо в спектре на каждой частоте провернуть фазу, для каждой частоты на свой угол, и снова сделать ОБПФ и так несколько раз. а как это сделать быстро? или есть какой-то другой способ?

3. как просто сгенерировать узкополсный шум?
в книжке нашел, что узкополосный шум описывется формулой
A = A(t)*Sin(wt + fi(t))
где A(t) и fi(t) сигналы, медленно, по сравненению с wt меняющиеся по времени.
а как это реализовать на практике? если, например, в качестве A(t) и fi(t) использовать генераторы случайных сигналов, узкополосности не получится.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
WEST128
сообщение Aug 20 2007, 16:18
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 468
Регистрация: 13-10-06
Из: Россия, Томск
Пользователь №: 21 291



1. Если вам нужен алгоритм синтеза фильтра с заданными характеристиками, то я выдергивал из МатЛаб-а. Его язык, конечно, несколько специфичен, но на С очень даже неплохо переписывается.
2. Нельзя восстановить сигнал на том промежутке, где он не измерялся. Можно только попробовать экстраполировать имеющиеся данные на неизвестный участок. Однако вы получите не сигнал, а его приближение, степень близости которого к реальному сигналу зависит от того, насколько случаен сам сигнал. Чем больше случайная составляющая сигнала, тем больше он будет расходиться с его экстраполяцией. Пример : у нас есть запись голоса человека на протяжении 60 секунд. Надо предсказать сигнал на интервале, скажем, от 80 до 90 с. Если человек не исполнял какой-нибудь шаманский обряд с 2 звуками, то никакой математический алгоритм не сможет вам представить что-нибудь, хоть отдаленно похожее на правду. Однако если сигнал неизменен, например, как сигнал тактовой синхронизации, то можно восстановить его на любом интервале с очень большой точностью. Я предполагаю, проще всего взять спектральные составляющие сигнала да и просуммировать друг с другом.
3. Один из способов генерации узкополосного шума : генерируете широкополосный шум и применяете к нему полосовой фильтр. Решение в лоб, как говориться, не оптимальное, но работающее наверняка. Второй способ следует из разложения формулы S(t) = A(t)*cos(w*t +fi(t)) на квадратурные составляющие. Два генератора случайных чисел пропускаете через ФНЧ, модулируете полученными сигналами два гармонических сигнала( одним - косинус, другим - синус), складываете результаты модуляции. Все.
Go to the top of the page
 
+Quote Post



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

 


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


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