Dmil 0 20 августа, 2007 Опубликовано 20 августа, 2007 · Жалоба поделитесь, пожалуйста, информацией где можно найти или самими алгоритмами ЦОС интересует: 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) использовать генераторы случайных сигналов, узкополосности не получится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
west 0 20 августа, 2007 Опубликовано 20 августа, 2007 · Жалоба 1. Если вам нужен алгоритм синтеза фильтра с заданными характеристиками, то я выдергивал из МатЛаб-а. Его язык, конечно, несколько специфичен, но на С очень даже неплохо переписывается. 2. Нельзя восстановить сигнал на том промежутке, где он не измерялся. Можно только попробовать экстраполировать имеющиеся данные на неизвестный участок. Однако вы получите не сигнал, а его приближение, степень близости которого к реальному сигналу зависит от того, насколько случаен сам сигнал. Чем больше случайная составляющая сигнала, тем больше он будет расходиться с его экстраполяцией. Пример : у нас есть запись голоса человека на протяжении 60 секунд. Надо предсказать сигнал на интервале, скажем, от 80 до 90 с. Если человек не исполнял какой-нибудь шаманский обряд с 2 звуками, то никакой математический алгоритм не сможет вам представить что-нибудь, хоть отдаленно похожее на правду. Однако если сигнал неизменен, например, как сигнал тактовой синхронизации, то можно восстановить его на любом интервале с очень большой точностью. Я предполагаю, проще всего взять спектральные составляющие сигнала да и просуммировать друг с другом. 3. Один из способов генерации узкополосного шума : генерируете широкополосный шум и применяете к нему полосовой фильтр. Решение в лоб, как говориться, не оптимальное, но работающее наверняка. Второй способ следует из разложения формулы S(t) = A(t)*cos(w*t +fi(t)) на квадратурные составляющие. Два генератора случайных чисел пропускаете через ФНЧ, модулируете полученными сигналами два гармонических сигнала( одним - косинус, другим - синус), складываете результаты модуляции. Все. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dmil 0 20 августа, 2007 Опубликовано 20 августа, 2007 · Жалоба 1. нету матлаба =( а там есть такие фильтры? 2. это все понятно, что восстановить можно только периодический сигнал. вопрос КАК это сделать. ведь в БПФ существует четкая связь между числом спектральных составляющих и длительностью сигнала при ОБПФ. а меня интерсует увеличить эту длительность. 3. хочется чего попроще. розовый шум тоже можно генерить через логарифмы, а можно и через сложить-вычесть. вот интересуют простые быстрые алгоритмы, пусть и менее точные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
west 0 21 августа, 2007 Опубликовано 21 августа, 2007 · Жалоба 1. Купить диск с МатЛаб-ом можно где угодно. Или выкачать с интернета. На выбор. А уж фильтры там всякие есть. 2. Грубо - БПФ дает вам разложение определенного сигнала на спектральные составляющие, синусоиды со своими амплитудами и фазами. Так и продолжайте эти синусоиды до бесконечности. Вариант 2 - при смещении времени изменяется только фаза, как dT*2*Pi*F, вот и прибавте этот сдвиг к каждой спектральной составляющей, а дальше проводите ОБПФ. 3. не знаю ничего более простого, чем предложил, увы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dmil 0 22 августа, 2007 Опубликовано 22 августа, 2007 · Жалоба сделал-таки БИХ фильтры. в аттаче - мало-ли кому еще понадобится. с Фурье так и не разобрался. дважды шум фильтровать это уж слишком извращенно. тогда уж проще сразу шум через фильтр полосовой попускать. жаль, что сразу так нельзя генерить. IIR.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dmil 0 3 сентября, 2007 Опубликовано 3 сентября, 2007 · Жалоба кто-нибудь может дать ссылку или рассказать понятно как сделать КИХ-фильтры? нашел http://www.radioscanner.ru/forum/index.php...amp;topic=20557 но там, похоже, есть неточности. кроме того, непонятно, как сделать полосовой фильтр с заданным коэффициентом усиления\ослабления. интересует расчет коэффициентов по заданным параметрам тип фильтра/частота1/частота2/добротность/коэфф.передачи/аккуратность/тип окна Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dr.NoA 0 3 сентября, 2007 Опубликовано 3 сентября, 2007 · Жалоба кто-нибудь может дать ссылку или рассказать понятно как сделать КИХ-фильтры? нашел http://www.radioscanner.ru/forum/index.php...amp;topic=20557 но там, похоже, есть неточности. кроме того, непонятно, как сделать полосовой фильтр с заданным коэффициентом усиления\ослабления. интересует расчет коэффициентов по заданным параметрам тип фильтра/частота1/частота2/добротность/коэфф.передачи/аккуратность/тип окна Наберите в командной строке fdatool Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 23 4 сентября, 2007 Опубликовано 4 сентября, 2007 · Жалоба ... кроме того, непонятно, как сделать полосовой фильтр с заданным коэффициентом усиления\ослабления. Введение в filter banks Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
frag666 0 5 сентября, 2007 Опубликовано 5 сентября, 2007 · Жалоба Есть такая программа FilterSolutions,она умеет делать многое.В проге можно строить разные фильтры(аналоговые,цифровые),можно посмотреть потом АЧХ/ФЧХ.Ну,и для цифровых фильтров может сгенерить исходник на Си,как я уже говорил. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dmil 0 6 сентября, 2007 Опубликовано 6 сентября, 2007 · Жалоба неудобство всех этих программ в том, что они просто дают на выходе уже посчитанные фильтры. а мне надо самому считать коэффициенты по заданным параметрам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться