реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Не получается цифровой LPF, (в Matlab)
RG29
сообщение Feb 19 2018, 08:10
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 31-10-17
Пользователь №: 99 993



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



Хотелось бы из него сделать что-то близкое к синусоиде. Для этого пропускаю его через фильтр НЧ.
Код фильтра был сгенерирован калькулятором ЗДЕСЬ для параметров:
-тип - Баттерворт
-порядок - 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];
      }
  }

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



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



Почему не получилась синусоида?
Я не правильно применил фильтр?
Я ошибся в коде Матлаба?

Сообщение отредактировал RG29 - Feb 19 2018, 08:11
Go to the top of the page
 
+Quote Post
Tpeck
сообщение Feb 19 2018, 08:17
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243



Цитата(RG29 @ Feb 19 2018, 11:10) *
Есть входной сигнал 5кГц напоминающий треугольник

Ключевое слово - напоминающий треугольник.
Теорема Котельникова Вам знакома?
Go to the top of the page
 
+Quote Post
RG29
сообщение Feb 19 2018, 08:40
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 31-10-17
Пользователь №: 99 993



Я так предполагал, что мой фильтр срежет все высокочастотные составляющие и сигнал сгладится, станет более похож на синус, но сглаживания нет. Вы намекаете, что мой исходный сигнал не содержит гармоник выше 5500Гц, поэтому фильтр не работает?
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Feb 19 2018, 08:54
Сообщение #4


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
RG29
сообщение Feb 19 2018, 08:58
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 31-10-17
Пользователь №: 99 993



Не пойму за отсчёты. Исходный сигнал получен с АЦП оцифровкой сигнала 5000 Гц с частотой семплирования 11025 Гц. Где не соответствие Котельникову?
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Feb 19 2018, 09:08
Сообщение #6


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



Цитата(RG29 @ Feb 19 2018, 11:58) *
Не пойму за отсчёты. Исходный сигнал получен с АЦП оцифровкой сигнала 5000 Гц с частотой семплирования 11025 Гц. Где не соответствие Котельникову?

У вас на входе АЦП нет аналогового фильтра который пропускает только сигналы с частотой до 5 Кгц ?
Если нет - то вы наблюдаете Альясинг , ваш сигнал испорчен и востановлению не подлежит.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
RG29
сообщение Feb 19 2018, 09:12
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 31-10-17
Пользователь №: 99 993



Само собой, фильтр есть.
Почему испорчен, частота 5КГц, сэмплинг 11КГц, разве не нормальный вид для такого количества выборок?
Почему не подлежит, почему ФНЧ не сможет сгладить гармоники выше 5КГц?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 19 2018, 09:17
Сообщение #8


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



А цифры 0, 2, 4, 6 ... по X на графиках - это что?
С Котельниковым у вас все нормально. Или нет? Нужно же весь спектр сигнала пропустить.
Да, вы передаете гармоники сигнала из других зон периодического цифрового фильтра.
Go to the top of the page
 
+Quote Post
Tpeck
сообщение Feb 19 2018, 09:23
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243



Цитата(RG29 @ Feb 19 2018, 11:58) *
Не пойму за отсчёты. Исходный сигнал получен с АЦП оцифровкой сигнала 5000 Гц с частотой семплирования 11025 Гц. Где не соответствие Котельникову?


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

Цитата(RG29 @ Feb 19 2018, 12:12) *
Почему не подлежит, почему ФНЧ не сможет сгладить гармоники выше 5КГц?

А какие гармоники, по Вашему мнению, там присутствуют?
Можете частоты привести?
Go to the top of the page
 
+Quote Post
RG29
сообщение Feb 19 2018, 09:31
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 31-10-17
Пользователь №: 99 993



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



Получается, при такой частоте семплирования в цифровых данных сигнале не достаточно информации о высших гармониках, и поэтому, как написал Lmx2315, оцифрованный сигнал как бы повреждён и не может быть восстановлен до исходной синусоиды. Верно?
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Feb 19 2018, 09:34
Сообщение #11


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



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

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


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 19 2018, 09:43
Сообщение #12


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



На 15 кГц третья гармоника покажется, если расширить график спектра. И т.д.
Go to the top of the page
 
+Quote Post
andyp
сообщение Feb 19 2018, 09:52
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 453
Регистрация: 23-07-08
Пользователь №: 39 163



Цитата(RG29 @ Feb 19 2018, 12:31) *
Получается, при такой частоте семплирования в цифровых данных сигнале не достаточно информации о высших гармониках, и поэтому, как написал Lmx2315, оцифрованный сигнал как бы повреждён и не может быть восстановлен до исходной синусоиды. Верно?


Спектр треугольника содержит нечетные гармоники фундаментальной частоты (в Вашем случае еще и постоянку), амплитуда которых убывает как квадрат их номера. Для того, чтобы синтезировать более-менее нормальны треугольник нужно взять хотя бы 5 гармоник (см https://en.wikipedia.org/wiki/Triangle_wave). Это даст полосу сигнала равную 10*(1/Период). Соответственно, для дискретизации такого сигнала требуется примерно 20-ти кратная частота дискретизации.
Go to the top of the page
 
+Quote Post
RG29
сообщение Feb 19 2018, 09:53
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 31-10-17
Пользователь №: 99 993



Вот теперь (кажется) понял, спасибо 08.gif
Тогда такой вопрос - можно как-то исправить искажения из-за низкой частоты семплирования программно?

Сообщение отредактировал RG29 - Feb 19 2018, 09:56
Go to the top of the page
 
+Quote Post
Realking
сообщение Feb 19 2018, 10:00
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 498
Регистрация: 4-10-04
Из: Нижний Новгород
Пользователь №: 771



Цитата(RG29 @ Feb 19 2018, 12:53) *
Вот теперь (кажется) понял, спасибо 08.gif
Тогда такой вопрос - можно как-то исправить искажения из-за низкой частоты семплирования программно?


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

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

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




--------------------
Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th June 2025 - 05:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01508 секунд с 7
ELECTRONIX ©2004-2016