|
|
  |
нужны алгоритмы обработки сигналов |
|
|
|
Aug 20 2007, 12:58
|
Частый гость
 
Группа: Участник
Сообщений: 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) использовать генераторы случайных сигналов, узкополосности не получится.
|
|
|
|
|
Aug 20 2007, 16:18
|

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

|
1. Если вам нужен алгоритм синтеза фильтра с заданными характеристиками, то я выдергивал из МатЛаб-а. Его язык, конечно, несколько специфичен, но на С очень даже неплохо переписывается. 2. Нельзя восстановить сигнал на том промежутке, где он не измерялся. Можно только попробовать экстраполировать имеющиеся данные на неизвестный участок. Однако вы получите не сигнал, а его приближение, степень близости которого к реальному сигналу зависит от того, насколько случаен сам сигнал. Чем больше случайная составляющая сигнала, тем больше он будет расходиться с его экстраполяцией. Пример : у нас есть запись голоса человека на протяжении 60 секунд. Надо предсказать сигнал на интервале, скажем, от 80 до 90 с. Если человек не исполнял какой-нибудь шаманский обряд с 2 звуками, то никакой математический алгоритм не сможет вам представить что-нибудь, хоть отдаленно похожее на правду. Однако если сигнал неизменен, например, как сигнал тактовой синхронизации, то можно восстановить его на любом интервале с очень большой точностью. Я предполагаю, проще всего взять спектральные составляющие сигнала да и просуммировать друг с другом. 3. Один из способов генерации узкополосного шума : генерируете широкополосный шум и применяете к нему полосовой фильтр. Решение в лоб, как говориться, не оптимальное, но работающее наверняка. Второй способ следует из разложения формулы S(t) = A(t)*cos(w*t +fi(t)) на квадратурные составляющие. Два генератора случайных чисел пропускаете через ФНЧ, модулируете полученными сигналами два гармонических сигнала( одним - косинус, другим - синус), складываете результаты модуляции. Все.
|
|
|
|
|
Aug 22 2007, 10:46
|
Частый гость
 
Группа: Участник
Сообщений: 152
Регистрация: 18-03-06
Пользователь №: 15 366

|
сделал-таки БИХ фильтры. в аттаче - мало-ли кому еще понадобится. с Фурье так и не разобрался. дважды шум фильтровать это уж слишком извращенно. тогда уж проще сразу шум через фильтр полосовой попускать. жаль, что сразу так нельзя генерить.
Прикрепленные файлы
IIR.rar ( 930 байт )
Кол-во скачиваний: 147
|
|
|
|
|
Sep 3 2007, 19:08
|
Частый гость
 
Группа: Участник
Сообщений: 152
Регистрация: 18-03-06
Пользователь №: 15 366

|
кто-нибудь может дать ссылку или рассказать понятно как сделать КИХ-фильтры? нашел http://www.radioscanner.ru/forum/index.php...amp;topic=20557но там, похоже, есть неточности. кроме того, непонятно, как сделать полосовой фильтр с заданным коэффициентом усиления\ослабления. интересует расчет коэффициентов по заданным параметрам тип фильтра/частота1/частота2/добротность/коэфф.передачи/аккуратность/тип окна
|
|
|
|
|
Sep 3 2007, 20:14
|
Местный
  
Группа: Свой
Сообщений: 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
|
|
|
|
|
Sep 5 2007, 14:18
|
Группа: Новичок
Сообщений: 5
Регистрация: 31-10-06
Из: Челябинск
Пользователь №: 21 831

|
Есть такая программа FilterSolutions,она умеет делать многое.В проге можно строить разные фильтры(аналоговые,цифровые),можно посмотреть потом АЧХ/ФЧХ.Ну,и для цифровых фильтров может сгенерить исходник на Си,как я уже говорил.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|