Изменил генерацию с учётом коэффициента для уменьшения амплитуды.
объявление - void SinGen( float freq, float ampl, int bufersize, int samplrate, float * sin_array);
вызов - SinGen(FreqArr, 0.9, BUFER_SIZE, SAMPLE_RATE, sin_array);
расчёт семпла - sin_array= ampl* sin ((i+random) * 2 * M_PI *freq / samplrate);
Интересно, что у низких частот амплитуда после фильтра становится больше.
Еще подскажите коэффициенты для среза на 660 Гц.
ФНЧ Баттерворта
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: ФНЧ Баттерворта
Попробуйте к Сергею Бахурину обратиться в личку. С просьбой выслать filter.exe Раньше эта программа висела на сайте в свободном доступе...
Или найдите другую программу для расчёта коэффициентов фильтра - таких программ много!
Или найдите другую программу для расчёта коэффициентов фильтра - таких программ много!
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: ФНЧ Баттерворта
Ampl советую не константой сделать. Желательно, чтобы амплитуда плавно повышалась в начале сигнала и плавно спадала в конце.
И ещё, я уже говорил, sin ((i+random) * 2 * M_PI *freq / samplrate); - это как-то не очень красиво выглядит
И ещё, я уже говорил, sin ((i+random) * 2 * M_PI *freq / samplrate); - это как-то не очень красиво выглядит
Re: ФНЧ Баттерворта
Я надеюсь это последнее моё соприкосновение с темой фильтров. Поэтому программу всю не надо, надо до диапазона заданий, 660Гц. Можно такой же скриншот попросить?
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: ФНЧ Баттерворта
Да.Rem писал(а):Ух как хорошо получилось
Единственный вопрос. В итоговом массиве Y первые два значения присвоил нулю. Правильно сделал?
Надо не забывать, что в общем случае итоговый массив должен иметь размерность buffersize+"порядок фильтра".
Если фильтрация происходит не в реальном времени, то всегда можно выходной массив сдвинуть
for ( i=0; i<bufersize ; i++){
Y1=Y[i+"порядок фильтра"]
}
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: ФНЧ Баттерворта
Да без проблем. Только частота нужна относительная Fs/FN, где FN - частота Найквиста.Rem писал(а):Я надеюсь это последнее моё соприкосновение с темой фильтров. Поэтому программу всю не надо, надо до диапазона заданий, 660Гц. Можно такой же скриншот попросить?
Re: ФНЧ Баттерворта
Ч.среза 660 / Ч.Найквиста 22050 = 0.03 ( уточнённая частота среза 661.5)
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: ФНЧ Баттерворта
Коэффициенты b:
7.744755801413687800e-014
7.744755801413688800e-013
3.485140110636159600e-012
9.293706961696426200e-012
1.626398718296874700e-011
1.951678461956249500e-011
1.626398718296874700e-011
9.293706961696426200e-012
3.485140110636159600e-012
7.744755801413688800e-013
7.744755801413687800e-014
Коэффициенты a:
1.000000000000000000e+000
-9.355502734921367700e+000
3.940608498045521900e+001
-9.840743727783855400e+001
1.613503924899139600e+002
-1.814928563902834100e+002
1.418361576498764400e+002
-7.604213695631484900e+001
2.676604354547086100e+001
-5.585474088628570800e+000
5.247287823496200600e-001
7.744755801413687800e-014
7.744755801413688800e-013
3.485140110636159600e-012
9.293706961696426200e-012
1.626398718296874700e-011
1.951678461956249500e-011
1.626398718296874700e-011
9.293706961696426200e-012
3.485140110636159600e-012
7.744755801413688800e-013
7.744755801413687800e-014
Коэффициенты a:
1.000000000000000000e+000
-9.355502734921367700e+000
3.940608498045521900e+001
-9.840743727783855400e+001
1.613503924899139600e+002
-1.814928563902834100e+002
1.418361576498764400e+002
-7.604213695631484900e+001
2.676604354547086100e+001
-5.585474088628570800e+000
5.247287823496200600e-001
Re: ФНЧ Баттерворта
Ой... что так много.. 10 степени? Нет, дайте пожалуйста второй степени, как раньше. (можно только скриншот) Расчеты будут в реальном времени.
- Santik
- Сообщения: 609
- Зарегистрирован: 28 дек 2010, 08:04
- Откуда: Мирный (Якутия)
- Контактная информация:
Re: ФНЧ Баттерворта
Коэффициенты b:
3.980974416962729900e-003
7.961948833925459900e-003
3.980974416962729900e-003
Коэффициенты a:
1.000000000000000000e+000
-1.813756244168086800e+000
8.296801418359376300e-001
3.980974416962729900e-003
7.961948833925459900e-003
3.980974416962729900e-003
Коэффициенты a:
1.000000000000000000e+000
-1.813756244168086800e+000
8.296801418359376300e-001