aBoomest 0 15 апреля, 2023 Опубликовано 15 апреля, 2023 (изменено) · Жалоба Добрый день. Есть вопрос. У меня есть фильтр рассчитанный на частоту дискретизации 33 кГц. Как мне произвести конвертацию на 40 кГц? Т.е. сделать (в идеале) точно такой же фильтр с такой же АФЧХ но для частоты дискретизации 40 кГц. ПРо передискретизацию сигналов как-то много знаю, а тут че-то . . . Физически что сделать - вроде ясно (на первый взгляд)... 1. По идее надо построить импульсную хар-ку. 2. Ее передискретизировать. (в принципе даже простой линейной интерполяцией) 3. А потом назад превратить в передаточную. Вот как сделать 3-й пункт - что-то я никак не пойму. PS: расчеты делаю в matlab. Заранее благодарен. С уважением. Изменено 15 апреля, 2023 пользователем aBoomest Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 15 апреля, 2023 Опубликовано 15 апреля, 2023 · Жалоба а почему нельзя добить ИХ нулями, сделать фурье, потом смасштабировать частотные бины на новую частотную сетку и сделать обратное фурье? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_4afc_ 26 15 апреля, 2023 Опубликовано 15 апреля, 2023 · Жалоба 8 hours ago, aBoomest said: Есть вопрос. У меня есть фильтр рассчитанный на частоту дискретизации 33 кГц. Как мне произвести конвертацию на 40 кГц? Т.е. сделать (в идеале) точно такой же фильтр с такой же АФЧХ но для частоты дискретизации 40 кГц. ПРо передискретизацию сигналов как-то много знаю, а тут че-то . . . Физически что сделать - вроде ясно (на первый взгляд)... Что то типа этого: fb_old=fir1(.....); HDold = freqz(fb_old, 1, N, 'whole'); HD_new = искривляем HDold. fb_new=ifft(HD_new); Я так собирал из нескольких фильтров один для эквалайзера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aBoomest 0 16 апреля, 2023 Опубликовано 16 апреля, 2023 · Жалоба Спасибо большое. Ща попробую. Пардон. А что значит искривляем? В том то и вопрос основной: я не совсем понимаю какой подход нужен для искривления? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aBoomest 0 16 апреля, 2023 Опубликовано 16 апреля, 2023 · Жалоба И еще вопрос, а как я из этого всего получу коэффициенты фильтра? Вот имею я БИХ фильтр с Fs = 33 с коэффициентами a1,a2,a3 (числитель) b1,b2,b3 (знаменатель) Как мне получить аналогичные шесть коэффициентов для Fs = 40? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 16 апреля, 2023 Опубликовано 16 апреля, 2023 · Жалоба В 16.04.2023 в 20:57, aBoomest сказал: И еще вопрос, а как я из этого всего получу коэффициенты фильтра? Вот имею я БИХ фильтр с Fs = 33 с коэффициентами a1,a2,a3 (числитель) b1,b2,b3 (знаменатель) Как мне получить аналогичные шесть коэффициентов для Fs = 40? По вашим коэффициентам можно построить ноль-полюсную диаграмму для вашей частоты. При изменении Fs угол всех точек должен пропорционально измениться и получится новая ноль-полюсная диаграмма. Превратить ее в коэффициенты a и b. Я бы так попробовал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aBoomest 0 16 апреля, 2023 Опубликовано 16 апреля, 2023 · Жалоба О! Супер. Я сижу и тоже думаю о нулях и полюсах. ибо просто dft и idft как-то не понятно что с этим делать . . . . . А на какаой угол менять? диаграммы диапазон [0..+180] и [0..-180] Имеем 33 и 40 кГц. 180 градусам соответствует 33 кГц. 40/33 = 1,2121 Т.е. мне как бы диапазон 0..180 надо растянуть на 0 .. (180*1,2121) Т.е. угол каждого нуля/полюса надо умножить на 1.21 ??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 16 апреля, 2023 Опубликовано 16 апреля, 2023 · Жалоба В 16.04.2023 в 21:43, aBoomest сказал: О! Супер. Я сижу и тоже думаю о нулях и полюсах. ибо просто dft и idft как-то не понятно что с этим делать . . . . . А на какаой угол менять? диаграммы диапазон [0..+180] и [0..-180] Имеем 33 и 40 кГц. 180 градусам соответствует 33 кГц. 40/33 = 1,2121 Т.е. мне как бы диапазон 0..180 надо растянуть на 0 .. (180*1,2121) Т.е. угол каждого нуля/полюса надо умножить на 1.21 ??? Да. Но это лишь один из вариантов решения, т.к. у вас ничего кроме коэффициентов нет. Того же спада АЧХ у вас скорее всего не будет, т.к. порядок фильтра не изменяется. Если вы хотите те же характеристики спада АЧХ, то нужно пересчитывать фильтр полностью, т.к. может потребоваться увеличивать порядок фильтра (коэффициентов станет больше). В 16.04.2023 в 21:43, aBoomest сказал: Т.е. угол каждого нуля/полюса надо умножить на 1.21 ??? Дык, вроде делить на 1.21 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aBoomest 0 16 апреля, 2023 Опубликовано 16 апреля, 2023 · Жалоба 4 minutes ago, adnega said: Да. Но это лишь один из вариантов решения, т.к. у вас ничего кроме коэффициентов нет. Того же спада АЧХ у вас скорее всего не будет, т.к. порядок фильтра не изменяется. Если вы хотите те же характеристики спада АЧХ, то нужно пересчитывать фильтр полностью, т.к. может потребоваться увеличивать порядок фильтра (коэффициентов станет больше). Да, именно так. Потому и такая корявая задача. Еслиб были исходные параметры (подавлние, пропускание, переходная область), то вопроса и не возникло бы наверно. 5 minutes ago, adnega said: Дык, вроде делить на 1.21 Прошу прощения за глупость: почему делить? У нас же частота Fs увеличилась, поэтому как бы АФЧХ "растянулась", если можно так выразиться. Т.е. каждая точка частотной сетки АФЧХ увеличилась. Нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 16 апреля, 2023 Опубликовано 16 апреля, 2023 · Жалоба В 16.04.2023 в 22:01, aBoomest сказал: Прошу прощения за глупость: почему делить? У нас же частота Fs увеличилась, поэтому как бы АФЧХ "растянулась", если можно так выразиться. Т.е. каждая точка частотной сетки АФЧХ увеличилась. Нет? Частота Fs увеличилась, но вам нужно частоту фильтра оставить прежней, поэтому она в безразмерном (деленном на Fs) виде как бы уменьшилась, т.е. характерные точки как бы стянулись к нулю по частоте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aBoomest 0 16 апреля, 2023 Опубликовано 16 апреля, 2023 · Жалоба Понял. Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 16 апреля, 2023 Опубликовано 16 апреля, 2023 · Жалоба В 16.04.2023 в 22:14, aBoomest сказал: Понял. Спасибо. Нужно пробовать, т.к. при этом преобразовании тоже не все гладко. Что делать с точками, которые лежат на оси X? Расщеплять на две комплексно-сопряженные? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aBoomest 0 16 апреля, 2023 Опубликовано 16 апреля, 2023 (изменено) · Жалоба Прям вы 2-й раз в точку . . . . Как раз про это думаю. 0.25 z -------- z - 0.75 Ноль в нуле. А полюс на горизонтальной оси. А если "расщеплять", то на какой угол вращать? Изменено 16 апреля, 2023 пользователем aBoomest Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 16 апреля, 2023 Опубликовано 16 апреля, 2023 · Жалоба В 16.04.2023 в 22:42, aBoomest сказал: А полюс на горизонтальной оси. А если "расщеплять", то на какой угол вращать? +180/1.21 и -180/1.21 Стоп. Это для точек с углом 180. У вас фильтр уж очень простой - решение тоже может быть простым. А что если z заменить на z*1.21 или z/1.21? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aBoomest 0 17 апреля, 2023 Опубликовано 17 апреля, 2023 · Жалоба 8 hours ago, adnega said: +180/1.21 и -180/1.21 Стоп. Это для точек с углом 180. У вас фильтр уж очень простой - решение тоже может быть простым. А что если z заменить на z*1.21 или z/1.21? Это я пытаюсь разобраться на простых фильтрах. Чтобы понять. А так то фильтр у меня БИХ 8-го порядка. 8 hours ago, adnega said: А что если z заменить на z*1.21 или z/1.21? ПОпробую. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться