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

Убрать из сигнала гармонику

Есть задание, в котором я в принципе разобрался, но есть один не ясный момент (наверняка самый главный)

 

Создать меандр с амплитудой 1 В, периодом 20/Fs и частотой дискретизации Fs. Предложить способ и реализовать удаление из сигнала только третьей гармоники. Отобразить результат во временной и частотной областях.

Вот создать меандр понятно как более менее. Так как любой сигнал можно представить в виде суммы синусоид, то такой сигнал состоит из гармоник. Но, вопрос в том, как найти эту третью гармонику и убрать ее? Желательно с помощью КИХ фильтра. 

Есть предположение, что частота первой гармоники будет равняться: f = Fs/20, а следовательно получается, что частота нужной гармоники будет равняться 3*f. 

Я не прошу решать задачу за меня, просто можете дать направление, в котором мыслить, чтобы решить эту задачу?

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


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

Гость vitzap

ход ваших мыслей правильный. Далее вам нужно спроектировать необходимый фильтр (кстати, почему КИХ?). Если есть MATLAB, попробуйте инструмент fdatool - там все наглядно. Делаете фильтр, ослабляющий требуемую гармонику на необходимую величину (совсем убрать ее, естественно, не выйдет) и вносящий допустимое затухание в первую (конечно, она будет ослабляться, как же иначе). Потом пропускаете сигнал через фильтр. Если есть матлаб, найдите книгу Сергиенко про цифровую обработку сигналов, там было много примеров.

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

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


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

Я хочу разобраться именно в КИХ фильтре, и еще мы используем scilab, и даже если там есть похожая функция, то это немного не честно получается ее использовать. Можно сконструировать КИХ фильтр такой, чтобы в его АЧХ было сильное затухание в при частоте у 3 кГц?
То есть нужно задать коэффициенты y(k) = a1*x(k) +a2*x(k-1)+a3*x(k-2)+a4*x(k)+a5*x(k)...

Вот,как более менее точно найти эти коэффициенты? 

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

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


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

Гость vitzap
1 hour ago, Quttar said:

Я хочу разобраться именно в КИХ фильтре, и еще мы используем scilab, и даже если там есть похожая функция, то это немного не честно получается ее использовать. Можно сконструировать КИХ фильтр такой, чтобы в его АЧХ было сильное затухание в при частоте у 3 кГц?
То есть нужно задать коэффициенты y(k) = a1*x(k) +a2*x(k-1)+a3*x(k-2)+a4*x(k)+a5*x(k)...

Вот,как более менее точно найти эти коэффициенты? 

 

Есть разные методы. Ищите "методы синтеза ких фильтров".

Один из методова "на пальцах": то задаетесь требуемой АЧХ, делаете обратное преобразование от нее - получаете импульсную характеристику. В общем случае она бесконечная. Поскольку у нас должен получиться фильтр с конечной характеристикой, возьмем только N первых, где N-порядок фильтра. Это и будут коэффициенты a1, a2, .. aN. Найдем Фурье-образ этой импульсной характеристики, и у нас получится АЧХ получившегося фильтра. Она конечно, исказиться. Чтобы уменьшить искажения, коэффициенты фильтра придумали умножать на специальные полиномы - весовые окна. Для большего понимания читайте учебники.

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


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

4 минуты назад, vitzap сказал:

Есть разные методы. Ищите "методы синтеза ких фильтров".

Один из методова "на пальцах": то задаетесь требуемой АЧХ, делаете обратное преобразование от нее - получаете импульсную характеристику. В общем случае она бесконечная. Поскольку у нас должен получиться фильтр с конечной характеристикой, возьмем только N первых, где N-порядок фильтра. Это и будут коэффициенты a1, a2, .. aN. Найдем Фурье-образ этой импульсной характеристики, и у нас получится АЧХ получившегося фильтра. Она конечно, исказиться. Чтобы уменьшить искажения, коэффициенты фильтра придумали умножать на специальные полиномы - весовые окна. Для большего понимания читайте учебники.

А при обратном преобразовании мы разве не получим комплексные отсчёты ? Или это не проблема?

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


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

27 минут назад, vitzap сказал:

Есть разные методы. Ищите "методы синтеза ких фильтров".

Один из методова "на пальцах": то задаетесь требуемой АЧХ, делаете обратное преобразование от нее - получаете импульсную характеристику. В общем случае она бесконечная. Поскольку у нас должен получиться фильтр с конечной характеристикой, возьмем только N первых, где N-порядок фильтра. Это и будут коэффициенты a1, a2, .. aN. Найдем Фурье-образ этой импульсной характеристики, и у нас получится АЧХ получившегося фильтра. Она конечно, исказиться. Чтобы уменьшить искажения, коэффициенты фильтра придумали умножать на специальные полиномы - весовые окна. Для большего понимания читайте учебники.

Вот, это наверно способ, который мне подойдет) Собственно для данной задачи, по фильтрации гармоники 3 кГц, исходный (идеальный) АЧХ будет выглядеть так? Правильно, ли я понимаю, что нам достаточно ее строить для частот до половины частоты дискретизации?

 

 

фильтр.png

 

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

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


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

Гость vitzap

в идеале-да, но такой фильтр с КИХ-архитектурой будет не оооочень большого порядка. Но если в задании сказано КИХ, значит КИХ.

53 minutes ago, Lmx2315 said:

А при обратном преобразовании мы разве не получим комплексные отсчёты ? Или это не проблема? 

Можно взять исходную АЧХ действительную, т.е. симметричную относительно нулевой частоты. Можно отбросить комплексные составляющие. Вроде бы должно получиться одно и то же.

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


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

19 минут назад, vitzap сказал:

Можно взять исходную АЧХ действительную, т.е. симметричную относительно нулевой частоты. Можно отбросить комплексные составляющие. Вроде бы должно получиться одно и то же.

Поэтому, человеку выше, надо его АЧХ для полной шкалы дискретизации строить а не для половины.

з.ы.

идеально конечно в octave накидать примерчик и играться с полосами, окнами и т.д.

afh_428875_432000_435125_128_v1.txt

afh_428875_432000_435125_128_v1_etalon.txt

fir_compes_achh_v1.m

 

Я как-то считал корректирующий фильтр КИХ для характеристики.

В первом файле измеренная АЧХ  , во втором эталонная. Код ищет компенсационную характеристику и считает коэффициенты.

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


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

2 часа назад, vitzap сказал:

Есть разные методы. Ищите "методы синтеза ких фильтров".

Один из методова "на пальцах": то задаетесь требуемой АЧХ, делаете обратное преобразование от нее - получаете импульсную характеристику. В общем случае она бесконечная. Поскольку у нас должен получиться фильтр с конечной характеристикой, возьмем только N первых, где N-порядок фильтра. Это и будут коэффициенты a1, a2, .. aN. Найдем Фурье-образ этой импульсной характеристики, и у нас получится АЧХ получившегося фильтра. Она конечно, исказиться. Чтобы уменьшить искажения, коэффициенты фильтра придумали умножать на специальные полиномы - весовые окна. Для большего понимания читайте учебники.

Я сделал по данному методу, импульсная характеристика получилась с комплексными числами. Отбросил мнимую часть. И по построенной импульсной характеристике нашел ее АЧХ. Но на АЧХ характеристика, там где изначально принимала 0, теперь принимает 0.5. Пробовал увеличивать полосу заграждения, но видимо, нужно что-то другое исправить. Не подскажите, в чем может быть тут проблема?

ачх.png

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

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


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

Гость vitzap

Не должно так быть. Для начала строчка 73-должно быть ifft, и почему второй параметр - количество точек = 1? Это вы получите импульсную характеристику вашего идеального фильтра. Ограничьте ее длину (обнулите массив дальше N-го коэффициента) и сделайте прямое fft. Потом "поиграйте" с окнами, какое даст лучший результат.

 

Скоро сессия?

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

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


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

2 минуты назад, vitzap сказал:

Не должно так быть. Для начала строчка 73-должно быть ifft, и почему второй параметр - количество точек = 1? Это вы получите импульсную характеристику вашего идеального фильтра. Ограничьте ее длину (обнулите массив дальше N-го коэффициента) и сделайте прямое fft. Потом "поиграйте" с окнами, какое даст лучший результат.

 

Скоро сессия?

 

У меня по этому предмету нет сессии

Цифра 1 как я понимаю говорит о том, что нужно сделать обратное преобразование фурье

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

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


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

Может быть ошибка в самом начале решения задачи? Смотрите есть такой сигнал, длительностью 120 отсчетов. Рядом с ним приведен его частотный спектр.

image.png

Я строю АЧХ, которая мне нужна. Правильно ли, что я беру в ней 4500 отсчетов?

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

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


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

Гость vitzap

Не нужно столь много. Начните с 128. Впрочем, в любом случае работать должно.

У вас в программе 450, можно так оставить

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


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

Что-бы загородить частоту 1350 (частота 3 гармоники) нужно занулить отсчеты например с 1300 по 1400? По идее другие гармоники не должны быть задеты.

image.png

Я беру столько отсчетов, так как проще понять какие отсчеты на АЧХ занулить. Хотя согласен, что может быть это перебор.

Вот так выглядит АЧХ данного фильтра:

image.png.def91ecebbddb3cb6a0dbb5ecfe4f0ce.png

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

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


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

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

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

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

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

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

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

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

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

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