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

 
 
> Не получается цифровой 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
 
Start new topic
Ответов
RG29
сообщение Feb 19 2018, 09:31
Сообщение #2


Участник
*

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



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



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

Сообщений в этой теме
- RG29   Не получается цифровой LPF   Feb 19 2018, 08:10
- - Tpeck   Цитата(RG29 @ Feb 19 2018, 11:10) Есть вх...   Feb 19 2018, 08:17
- - RG29   Я так предполагал, что мой фильтр срежет все высок...   Feb 19 2018, 08:40
|- - Lmx2315   .   Feb 19 2018, 08:54
- - RG29   Не пойму за отсчёты. Исходный сигнал получен с АЦП...   Feb 19 2018, 08:58
|- - Lmx2315   Цитата(RG29 @ Feb 19 2018, 11:58) Не пойм...   Feb 19 2018, 09:08
|- - Tpeck   Цитата(RG29 @ Feb 19 2018, 11:58) Не пойм...   Feb 19 2018, 09:23
|- - Lmx2315   Автор нарисовал треугольник из входных отчётов , а...   Feb 19 2018, 09:34
- - RG29   Само собой, фильтр есть. Почему испорчен, частота ...   Feb 19 2018, 09:12
- - ViKo   А цифры 0, 2, 4, 6 ... по X на графиках - это что?...   Feb 19 2018, 09:17
|- - andyp   Цитата(RG29 @ Feb 19 2018, 12:31) Получае...   Feb 19 2018, 09:52
|- - RG29   Цитата(andyp @ Feb 19 2018, 12:52) Спектр...   Feb 19 2018, 10:09
|- - Realking   Цитата(RG29 @ Feb 19 2018, 13:05) Чисто и...   Feb 19 2018, 10:10
|- - Realking   Цитата(RG29 @ Feb 19 2018, 13:09) Чисто и...   Feb 19 2018, 10:18
- - ViKo   На 15 кГц третья гармоника покажется, если расшири...   Feb 19 2018, 09:43
- - RG29   Вот теперь (кажется) понял, спасибо Тогда такой в...   Feb 19 2018, 09:53
|- - Realking   Цитата(RG29 @ Feb 19 2018, 12:53) Вот теп...   Feb 19 2018, 10:00
|- - andyp   Цитата(RG29 @ Feb 19 2018, 12:53) Тогда т...   Feb 19 2018, 10:15
- - RG29   Сделал как описано выше. Всё работает, как и должн...   Feb 19 2018, 10:50


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

 


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


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