[/b/] [/d/] [/tu/] [/a/] [/34/] [/ph/] [/wa/] [/cg/] [/t/]

[Burichan] [Futaba] [Gurochan] [Photon] - [Home] [Manage] [Archive]

[Return]
Posting mode: Reply
Leave these fields empty (spam trap):
Name
Link
Subject
Comment
File
Verification
Password (for post and file deletion)
  • Supported file types are: GIF, JPG, PDF, PNG
  • Maximum file size allowed is 20480 KB.
  • Images greater than 200x200 pixels will be thumbnailed.

File: 1319994786934.jpg -(67276 B, 691x399) Thumbnail displayed, click image for full size.
67276 No.70217  

Аноны, киньте кто-нибудь исходник или мануал для полосового фильтра.
На одном форуме рекомендовали делать следующее: "Сначала расчитывется импульсная характеристика ФНЧ с ВЕРХНЕЙ частотой среза желаемого ПФ, затем расчитывается импульсная характеристка ФНЧ c НИЖНЕЙ частотой, и наконец делается вычитание f_high - f_low результатом которого и будет характеристика нужного ПФ".
Делал по этому рецепту, в итоге получил пикрилейтед. Ширина полосы пропускания должна быть 1кГц, а по диаграмме она с трудом до половины дотягивает. Кроме того, сигнал на выходе чересчур гасятся - раза в четыре точно. И, кроме того, беспокоят странные скачки на нижних частотах.

>> No.70220  
File: 1319996051746.jpg -(185910 B, 600x800) Thumbnail displayed, click image for full size.
185910

>>70217
Разложи на спектр, убери ненужные полосы, собери обратно.

>> No.70221  

>>70220
А не слишком медленно будет? Надо чтобы оно в реальном времени успевало и, по возможности, не сильно грузило машину.

>> No.70224  
File: 1319999666116.png -(3877343 B, 1731x1567) Thumbnail displayed, click image for full size.
3877343

>>70221
Если ты не будешь пытаться сделать это на каком-нибудь скриптовом языке то проблем быть не должно.

>> No.70353  
File: 1320170313805.jpg -(72083 B, 759x678) Thumbnail displayed, click image for full size.
72083

>>70224
А сможешь что-нибудь сказать про эти формуды? Нашёл на одном форуме, ругаются, что нерабочие, хотя у меня вроде завелось. Но есть всё-таки странность:

>> No.70354  
File: 1320170510031.png -(56395 B, 677x798) Thumbnail displayed, click image for full size.
56395

>>70353
Для сравнения взял два ФНЧ.
На пике верхняя кривая - АЧХ КИХ-фильтра по непонятной формуле, стыренной с того же форума. Нижняя сделана по формулам в предыдущем посте. Почему они так отличаются? Частоты выше граничной давятся плохо, да и ослабление в рабочей полосе почти на 1,5Дб больше.

>> No.70356  
File: 1320171413791.jpg -(1130800 B, 1370x1000) Thumbnail displayed, click image for full size.
1130800

>>70353

> А сможешь что-нибудь сказать про эти формуды?

Формулы как формулы. Если интересно, насколько хорошо они работают - попробуй построить для них АЧХ.
>>70354

> Почему они так отличаются?

Могу предположить, что формулы разные. Это все что можно сказать, не глядя на сами фомулы.

>> No.70369  

>>70356
Если в виде кусков кода, то выглядят они так:
Первый
Fs = 4000; // Частота среза

n = FILTER_SIZE / 2;
j = n + 1;
omega = 2*M_PI * Fs / fRate;
a = omega / M_PI;
int i;
for (i = 0; i < n; i++) {
if (i == 0) mat[j] = a;
else {
mat[j+i] = mat[j-i] = a*sinf((float)i * omega) / ((float)i * omega);

И второй
if (i == 0) mat[j] = 2*Fs / fRate;
else {

  mat[j+i] = mat[j-i] = sinf((float)i * omega) /(float) (i * M_PI);}

Второй - это нечётный ФНЧ из таблицы.

>> No.70378  
File: 1320181254572.jpg -(791692 B, 1280x1024) Thumbnail displayed, click image for full size.
791692

>>70369
Или я что-то не понимаю или у тебя случай с четным n не риализован.

Олсо если вместо

    omega = 2*M_PI * Fs / fRate;
a = omega / M_PI;
int i;
for (i = 0; i < n; i++) {
if (i == 0) mat[j] = a;
else {
mat[j+i] = mat[j-i] = a*sinf((float)i * omega) / ((float)i * omega);

использовать

    a = M_PI * Fs / fRate;
omega = a * M_PI;
mat[0] = a;
int i;
for (i = 1; i < n; i++) {
mat[j+i] = mat[j-i] = a*sinf((float)i * omega) / ((float)i * omega);

то ты получишь некоторый прирост производительности (нету сравнения в цикле) и точности (умножение чисел с плавающей точкой на константу а потом деление на нее же приводит к накоплению ошибок).

Кстати что тебе мешает прогнать фильтр несколько раз подряд?

>> No.70379  
File: 1320181605675.gif -(203471 B, 150x113) Thumbnail displayed, click image for full size.
203471

>>70378

>риализован

ололо

>> No.70429  

>>70378

>случай с четным n не риализован

Вот здесь не понял. Зачем мне делать формулу для чётного n, если размер окна нечётный и он не меняется?

>что тебе мешает прогнать фильтр несколько раз подряд?

Идея, конечно, интересная, но я боюсь, что в полосе пропускания всё заглохнет - он ведь и её ослабляет тоже. Да и задержка наверняка возрастёт. Ну кроме того интересно, какого хрена он так делает. В наборах LV2 плагинов, например, есть три разных ФНЧ со срезом в 12Дб/24Дб/36Дб, может и здесь как-то можно регулировать?

>> No.70430  
File: 1320221580457.jpg -(91251 B, 750x1250) Thumbnail displayed, click image for full size.
91251

>>70429

> в полосе пропускания всё заглохнет - он ведь и её ослабляет тоже

Предварительно усиль весь сигнал да и все.

> задержка наверняка возрастёт

Куда же без этого, но заметить будет трудно.

>> No.70446  
File: 1320264588718.png -(28719 B, 691x399) Thumbnail displayed, click image for full size.
28719

>>70430
При внимательном рассмотрении оказалось, что формулы одинаковые, просто записаны немного по-разному. А не взлетало потому, что си - лучший способ выстрелить себе в ногу (особенно если нет явного приведения типов).Полосовой фильтр из таблицы заработал, выглядит слегка посимпатичнее.
Спасибо, бро, за поддержку!

>> No.72466  
File: 1323286227598.jpg -(71639 B, 346x672) Thumbnail displayed, click image for full size.
71639


Delete Post []
Password

[/b/] [/d/] [/tu/] [/a/] [/34/] [/ph/] [/wa/] [/cg/] [/t/]