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

Не получается цифровой LPF

Есть входной сигнал 5кГц напоминающий треугольник

 

Triangle_signal.jpg

 

Хотелось бы из него сделать что-то близкое к синусоиде. Для этого пропускаю его через фильтр НЧ.

Код фильтра был сгенерирован калькулятором ЗДЕСЬ для параметров:

-тип - Баттерворт

-порядок - 4

-сэмплинг - 11025

-частота среза - 5500

 

#define NZEROS 4
#define NPOLES 4
#define GAIN   1.009351158e+00

static float xv[NZEROS+1], yv[NPOLES+1];

static void filterloop()
  { for (;;)
      { xv[0] = xv[1]; xv[1] = xv[2]; xv[2] = xv[3]; xv[3] = xv[4]; 
        xv[4] = next input value / GAIN;
        yv[0] = yv[1]; yv[1] = yv[2]; yv[2] = yv[3]; yv[3] = yv[4]; 
        yv[4] =   (xv[0] + xv[4]) + 4 * (xv[1] + xv[3]) + 6 * xv[2]
                     + ( -0.9815567827 * yv[0]) + ( -3.9444991525 * yv[1])
                     + ( -5.9443270236 * yv[2]) + ( -3.9813846512 * yv[3]);
        next output value = yv[4];
      }
  }

Перевёл код в Матлаб

 

mat_L.jpg

 

Но результат не понятен (верх - исходный,низ - результат):

 

OUT.jpg

 

Почему не получилась синусоида?

Я не правильно применил фильтр?

Я ошибся в коде Матлаба?

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

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


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

Есть входной сигнал 5кГц напоминающий треугольник

Ключевое слово - напоминающий треугольник.

Теорема Котельникова Вам знакома?

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


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

Я так предполагал, что мой фильтр срежет все высокочастотные составляющие и сигнал сгладится, станет более похож на синус, но сглаживания нет. Вы намекаете, что мой исходный сигнал не содержит гармоник выше 5500Гц, поэтому фильтр не работает?

 

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


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

Не пойму за отсчёты. Исходный сигнал получен с АЦП оцифровкой сигнала 5000 Гц с частотой семплирования 11025 Гц. Где не соответствие Котельникову?

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


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

Не пойму за отсчёты. Исходный сигнал получен с АЦП оцифровкой сигнала 5000 Гц с частотой семплирования 11025 Гц. Где не соответствие Котельникову?

У вас на входе АЦП нет аналогового фильтра который пропускает только сигналы с частотой до 5 Кгц ?

Если нет - то вы наблюдаете Альясинг , ваш сигнал испорчен и востановлению не подлежит.

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


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

Само собой, фильтр есть.

Почему испорчен, частота 5КГц, сэмплинг 11КГц, разве не нормальный вид для такого количества выборок?

Почему не подлежит, почему ФНЧ не сможет сгладить гармоники выше 5КГц?

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


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

А цифры 0, 2, 4, 6 ... по X на графиках - это что?

С Котельниковым у вас все нормально. Или нет? Нужно же весь спектр сигнала пропустить.

Да, вы передаете гармоники сигнала из других зон периодического цифрового фильтра.

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


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

Не пойму за отсчёты. Исходный сигнал получен с АЦП оцифровкой сигнала 5000 Гц с частотой семплирования 11025 Гц. Где не соответствие Котельникову?

 

И какой сигнал можно оцифровать с такой частотой дискретизации?

Когда у вас, чуть более, чем два отсчета на период?

 

Почему не подлежит, почему ФНЧ не сможет сгладить гармоники выше 5КГц?

А какие гармоники, по Вашему мнению, там присутствуют?

Можете частоты привести?

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


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

Попробовал построить спектр сигнала:

 

image.jpg

 

Получается, при такой частоте семплирования в цифровых данных сигнале не достаточно информации о высших гармониках, и поэтому, как написал Lmx2315, оцифрованный сигнал как бы повреждён и не может быть восстановлен до исходной синусоиды. Верно?

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


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

Автор нарисовал треугольник из входных отчётов , а на самом деле у него синусоида с двумя , с небольшим , отчётами на период . -никакого треугольника там быть не может .

По этому и после фильтра у него тоже самое . Линии что он соеденил отчёты - несуществующие , прямо скажем - ошибочные в данном случае абстракции.

У треугольного сигнала бесконечный спектр гармоник , а они не могли пролезть через входной фильтр.

 

з.ы.

спектр как мы видим правильный - постоянная составляющая и маленькая синусоидальная гармоника на 5 кгц , а не треугольник.

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


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

На 15 кГц третья гармоника покажется, если расширить график спектра. И т.д.

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


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

Получается, при такой частоте семплирования в цифровых данных сигнале не достаточно информации о высших гармониках, и поэтому, как написал Lmx2315, оцифрованный сигнал как бы повреждён и не может быть восстановлен до исходной синусоиды. Верно?

 

Спектр треугольника содержит нечетные гармоники фундаментальной частоты (в Вашем случае еще и постоянку), амплитуда которых убывает как квадрат их номера. Для того, чтобы синтезировать более-менее нормальны треугольник нужно взять хотя бы 5 гармоник (см https://en.wikipedia.org/wiki/Triangle_wave). Это даст полосу сигнала равную 10*(1/Период). Соответственно, для дискретизации такого сигнала требуется примерно 20-ти кратная частота дискретизации.

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


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

Вот теперь (кажется) понял, спасибо :08:

Тогда такой вопрос - можно как-то исправить искажения из-за низкой частоты семплирования программно?

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

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


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

Вот теперь (кажется) понял, спасибо :08:

Тогда такой вопрос - можно как-то исправить искажения из-за низкой частоты семплирования программно?

 

Цель то всего этого? не понятно..

 

Или показать кому то наглядно надо? ))

 

и еще.. как уже было сказано выше, это не искажения...

 

 

 

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


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

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

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

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

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

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

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

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

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

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