Перейти к содержанию
    

Добрый день.

Есть вопрос. У меня есть фильтр рассчитанный на частоту дискретизации 33 кГц. Как мне произвести конвертацию на 40 кГц? Т.е. сделать (в идеале) точно такой же фильтр с такой же АФЧХ но для частоты дискретизации 40 кГц. ПРо передискретизацию сигналов как-то много знаю, а тут че-то . . . 
Физически что сделать - вроде ясно (на первый взгляд)...
1. По идее надо построить импульсную хар-ку.
2. Ее передискретизировать. (в принципе даже простой линейной интерполяцией)
3. А потом назад превратить в передаточную.
Вот как сделать 3-й пункт - что-то я никак не пойму.

PS: расчеты делаю в matlab.

Заранее благодарен.

С уважением.

Изменено пользователем aBoomest

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а почему нельзя добить ИХ нулями, сделать фурье, потом смасштабировать частотные бины на новую частотную сетку и сделать обратное фурье?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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);

 

Я так собирал из нескольких фильтров один для эквалайзера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое. Ща попробую.

Пардон. А что значит искривляем? В том то и вопрос основной: я не совсем понимаю какой подход нужен для искривления?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И еще вопрос, а как я из этого всего получу коэффициенты фильтра?

Вот имею я БИХ фильтр с Fs = 33 с коэффициентами
a1,a2,a3 (числитель)
b1,b2,b3 (знаменатель)

Как мне получить аналогичные шесть коэффициентов для Fs = 40?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 16.04.2023 в 20:57, aBoomest сказал:

И еще вопрос, а как я из этого всего получу коэффициенты фильтра?

Вот имею я БИХ фильтр с Fs = 33 с коэффициентами
a1,a2,a3 (числитель)
b1,b2,b3 (знаменатель)

Как мне получить аналогичные шесть коэффициентов для Fs = 40?

По вашим коэффициентам можно построить ноль-полюсную диаграмму для вашей частоты. При изменении Fs угол всех точек должен пропорционально измениться и получится новая ноль-полюсная диаграмма. Превратить ее в коэффициенты a и b.  Я бы так попробовал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

О! Супер. Я сижу и тоже думаю о нулях и полюсах. ибо просто 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 сказал:

О! Супер. Я сижу и тоже думаю о нулях и полюсах. ибо просто 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, adnega said:

Да. Но это лишь один из вариантов решения, т.к. у вас ничего кроме коэффициентов нет. Того же спада АЧХ у вас скорее всего не будет, т.к. порядок фильтра не изменяется. Если вы хотите те же характеристики спада АЧХ, то нужно пересчитывать фильтр полностью, т.к. может потребоваться увеличивать порядок фильтра (коэффициентов станет больше).

Да, именно так. Потому и такая корявая задача. Еслиб были исходные параметры (подавлние, пропускание, переходная область), то вопроса и не возникло бы наверно.

 

5 minutes ago, adnega said:

Дык, вроде делить на 1.21

Прошу прощения за глупость: почему делить? У нас же частота Fs увеличилась, поэтому как бы АФЧХ "растянулась", если можно так выразиться. Т.е. каждая точка частотной сетки АФЧХ увеличилась. Нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 16.04.2023 в 22:01, aBoomest сказал:

Прошу прощения за глупость: почему делить? У нас же частота Fs увеличилась, поэтому как бы АФЧХ "растянулась", если можно так выразиться. Т.е. каждая точка частотной сетки АФЧХ увеличилась. Нет?

Частота Fs увеличилась, но вам нужно частоту фильтра оставить прежней, поэтому она в безразмерном (деленном на Fs) виде как бы уменьшилась, т.е. характерные точки как бы стянулись к нулю по частоте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 16.04.2023 в 22:14, aBoomest сказал:

Понял. Спасибо.

Нужно пробовать, т.к. при этом преобразовании тоже не все гладко. Что делать с точками, которые лежат на оси X? Расщеплять на две комплексно-сопряженные?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прям вы 2-й раз в точку . . . .

Как раз про это думаю. 


   0.25 z
  --------
  z - 0.75

Ноль в нуле.

А полюс на горизонтальной оси.

А если "расщеплять", то на какой угол вращать?

Изменено пользователем aBoomest

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 16.04.2023 в 22:42, aBoomest сказал:

А полюс на горизонтальной оси.

А если "расщеплять", то на какой угол вращать?

+180/1.21 и -180/1.21

Стоп. Это для точек с углом 180.

У вас фильтр уж очень простой - решение тоже может быть простым.

А что если z заменить на z*1.21 или z/1.21?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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?

ПОпробую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...