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

 
 
 
Reply to this topicStart new topic
> нужны алгоритмы обработки сигналов
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
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
VDV
сообщение Aug 20 2007, 16:42
Сообщение #3


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

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



1. нету матлаба =(
а там есть такие фильтры?
2. это все понятно, что восстановить можно только периодический сигнал. вопрос КАК это сделать. ведь в БПФ существует четкая связь между числом спектральных составляющих и длительностью сигнала при ОБПФ. а меня интерсует увеличить эту длительность.
3. хочется чего попроще. розовый шум тоже можно генерить через логарифмы, а можно и через сложить-вычесть. вот интересуют простые быстрые алгоритмы, пусть и менее точные.
Go to the top of the page
 
+Quote Post
WEST128
сообщение Aug 21 2007, 15:20
Сообщение #4


Местный
***

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



1. Купить диск с МатЛаб-ом можно где угодно. Или выкачать с интернета. На выбор. А уж фильтры там всякие есть.
2. Грубо - БПФ дает вам разложение определенного сигнала на спектральные составляющие, синусоиды со своими амплитудами и фазами. Так и продолжайте эти синусоиды до бесконечности. Вариант 2 - при смещении времени изменяется только фаза, как dT*2*Pi*F, вот и прибавте этот сдвиг к каждой спектральной составляющей, а дальше проводите ОБПФ.
3. не знаю ничего более простого, чем предложил, увы.
Go to the top of the page
 
+Quote Post
VDV
сообщение Aug 22 2007, 10:46
Сообщение #5


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

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



сделал-таки БИХ фильтры. в аттаче - мало-ли кому еще понадобится.
с Фурье так и не разобрался.
дважды шум фильтровать это уж слишком извращенно. тогда уж проще сразу шум через фильтр полосовой попускать. жаль, что сразу так нельзя генерить.
Прикрепленные файлы
Прикрепленный файл  IIR.rar ( 930 байт ) Кол-во скачиваний: 147
 
Go to the top of the page
 
+Quote Post
VDV
сообщение Sep 3 2007, 19:08
Сообщение #6


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

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



кто-нибудь может дать ссылку или рассказать понятно как сделать КИХ-фильтры?
нашел http://www.radioscanner.ru/forum/index.php...amp;topic=20557
но там, похоже, есть неточности.
кроме того, непонятно, как сделать полосовой фильтр с заданным коэффициентом усиления\ослабления.
интересует расчет коэффициентов по заданным параметрам тип фильтра/частота1/частота2/добротность/коэфф.передачи/аккуратность/тип окна
Go to the top of the page
 
+Quote Post
Dr.NoA
сообщение Sep 3 2007, 20:14
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 316
Регистрация: 22-10-05
Пользователь №: 9 976



Цитата(VDV @ Sep 3 2007, 23:08) *
кто-нибудь может дать ссылку или рассказать понятно как сделать КИХ-фильтры?
нашел http://www.radioscanner.ru/forum/index.php...amp;topic=20557
но там, похоже, есть неточности.
кроме того, непонятно, как сделать полосовой фильтр с заданным коэффициентом усиления\ослабления.
интересует расчет коэффициентов по заданным параметрам тип фильтра/частота1/частота2/добротность/коэфф.передачи/аккуратность/тип окна

Наберите в командной строке fdatool
Go to the top of the page
 
+Quote Post
blackfin
сообщение Sep 4 2007, 00:35
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(VDV @ Sep 3 2007, 23:08) *
...
кроме того, непонятно, как сделать полосовой фильтр с заданным коэффициентом усиления\ослабления.
Введение в filter banks
Go to the top of the page
 
+Quote Post
frag666
сообщение Sep 5 2007, 14:18
Сообщение #9





Группа: Новичок
Сообщений: 5
Регистрация: 31-10-06
Из: Челябинск
Пользователь №: 21 831



Есть такая программа FilterSolutions,она умеет делать многое.В проге можно строить разные фильтры(аналоговые,цифровые),можно посмотреть потом АЧХ/ФЧХ.Ну,и для цифровых фильтров может сгенерить исходник на Си,как я уже говорил.
Go to the top of the page
 
+Quote Post
VDV
сообщение Sep 6 2007, 08:29
Сообщение #10


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

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



неудобство всех этих программ в том, что они просто дают на выходе уже посчитанные фильтры.
а мне надо самому считать коэффициенты по заданным параметрам.
Go to the top of the page
 
+Quote Post

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

 


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


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