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

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

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

Чисто из интереса, то есть, если я руками допишу по 20 промежуточных точек в исходные данные и в расчёт фильтра поставлю новую частоту 220500, то фильтр отработает как надо и на выходе получится синусоида?

 

Triangle_signal.jpg

 

 

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

 

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

 

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

Цель проста - постижение науки ЦОС :rolleyes:

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


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

Чисто из интереса, то есть, если я руками допишу по 20 промежуточных точек в исходные данные и в расчёт фильтра поставлю новую частоту 220500, то фильтр отработает как надо и на выходе получится синусоида?

 

Triangle_signal.jpg

 

 

)))

да не треугольник у Вас

 

но если допишите, то да - треугольник

 

но и фильтровать (гасить) вы должны от 10 кГц и выше

 

 

 

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


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

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

 

Что значит исправить?

 

В лучшем случае удастся отфильтровать те гармоники, которые завернулись в полосу сигнала при дискретизации. Только проще сразу формировать сигнал как сумму гармоник, которые укладываются в половину частоты дискретизации. Среднеквадратическая ошибка в этом случае будет минимальна.

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


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

Чисто из интереса, то есть, если я руками допишу по 20 промежуточных точек в исходные данные и в расчёт фильтра поставлю новую частоту 220500, то фильтр отработает как надо и на выходе получится синусоида?

 

Triangle_signal.jpg

 

 

 

Цель проста - постижение науки ЦОС :rolleyes:

 

Fs = 220500;

t = (0:250)/Fs;

 

tri = sawtooth(2 * pi * 5000 * t, 0.5);

 

windowSize = 15;

b = (1 / windowSize)*ones(1,windowSize);

a = 1;

 

out = filter(b,a,tri);

 

plot(tri);

hold on;

plot(out);

 

грубый пример (фильтр однородный)

 

поставьте Fs = 10000;

и увидите первоначальную свою картинку )

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


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

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

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

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

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

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

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

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

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

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