|
|
  |
И ещё вопрос про фильтрацию сигнала, Помогите отфильтровать сигнал новичку |
|
|
|
Feb 19 2014, 15:25
|
Группа: Участник
Сообщений: 12
Регистрация: 15-04-09
Из: Санкт-Петербург
Пользователь №: 47 745

|
Добрый день, Есть сигнал :
 РЈРСВВВВВВеньшено Р В Р’В Р СћРІР‚ВВВВВР С• 69%
560 x 420 (4.36 килобайт)
|
Частота дискретизации: Fs= 40000 Сигнал представляет из себя сумму 1Гц тона и полезного акустического сигнала phi(t), что-то типа такого F(t) = A + B * t + sin(2 * pi * 1 * t) + phi(t) А и B - константы Вопрос: как можно отфильтровать исходный сигнал, чтобы выделить акустический сигнал phi(t), который имеет частоту от 20Гц? В дальнейшем этот сигнал хочется отфильтровать, дицимировать и проанализировать в диапазоне от 20Гц до 2 Кгц. High-pass-filter c cut-off frequency = 5Hz получился у меня со слишком высоким порядком и будет сложен для реализации. Notch filter получился неудачно, пока не понял почему. В каком направлении вообще нужно идти? Спасибо! В приложении сам сигнал длительность 2.8 сек
matlab.mat.zip ( 404.32 килобайт )
Кол-во скачиваний: 132
|
|
|
|
|
Feb 19 2014, 17:58
|
Группа: Участник
Сообщений: 12
Регистрация: 15-04-09
Из: Санкт-Петербург
Пользователь №: 47 745

|
Цитата(amaora @ Feb 19 2014, 21:10)  Идентифицировать постоянную соствляющую и фазу 1Гц сигнала, в остатке будет phi. А как? Можете сказать что почитать, куда посмотреть? Я, к несчастью, очень неопытен в ЦОС. Как я понимаю, если делать FFT с небольшим числом точек (512) - тогда разрешение будет порядка 40 гц и этот 1Гц сигнал вылезет на других частотах. А позволить делать FFT с большим числом точек тоже будет затруднително, я боюсь на финальной платформе не хватит ресурсов
|
|
|
|
|
Feb 20 2014, 08:55
|
Группа: Участник
Сообщений: 12
Регистрация: 15-04-09
Из: Санкт-Петербург
Пользователь №: 47 745

|
Цитата(ViKo @ Feb 20 2014, 12:19)  Вот что получил ВЧ-фильтром Баттерворта 8 порядка на 200 Гц. Когда пробую понизить частоту, увеличить порядок, фильтр ломается, видимо, из-за переполнений. ну вот у меня получилось примерно так же. Смущает только высокий порядок фильтра, казалось, что вдруг можно было бы сделать как-то попроще. Спасибо всем за ответы! попробую пойти по пути, предложенному thermit.
|
|
|
|
|
Feb 21 2014, 07:47
|
Участник

Группа: Участник
Сообщений: 67
Регистрация: 3-02-14
Из: Интернет
Пользователь №: 80 322

|
Внису немного смуты в головы сдешних обитателей.
Sergey Semenov Как-то странно, что вы боитесь фильтра 8 порядка? Так как это очень низкий порядок для ЦОС. Или вы его в аналоге хотите делать? А во вторых я не понядл слово "проще" ?
Напоминаю что процесс передескритизации с понижении частоты состоит из 2-х пунктов. 1. Вначале фильтрация. 2. Потом децимация
Если пропустить фильтрацию, то появяться ложные частоты. А.Б.Сергиенко_Цифровая обработка сигналов.djvu стр 231
Отсюда вывод от передескритизаци вы выиграете только при наличии дальнейшей обработки.
amaora Алгоритм Герцеля имеет недостатки. 1. Узкая полоса. Что годиться только для идеальной синусойды. А в реалии она может плавать +-1Гц. А вот для реальной лучше делать фильтр с полосой в несколько Гц. 2. Для выхода на режим требует несколько периудов скажем так 10, а то точность будет маленькая.
Sergey Semenov Что касаеться оптимизации, то надо смотреть разные фильтры: линейный фильтр с КИХ характеристикой, Баттерворта, RC, рекуретный,линейный фильтр с БИХ характеристикой, эллептический.
ViKo То что у вас преведено в 9 сообщении в ЦОС подобное можно сделать фильтром 2 порядка. Вернее есть фильтр скользящего среднего который реализуеться просто при наличии RAM. Просто запоминаем в суматоре.
r_2=1/(2*r); // константа цикл по i S[i]=S*r_2; S=S+A[i+r]-A[i-r]; i=i+1; конец цикла Где r зависит от частоты среза.
А вообще я тоже только начинающий в ЦОС.
|
|
|
|
|
Feb 24 2014, 01:20
|
Местный
  
Группа: Участник
Сообщений: 336
Регистрация: 7-03-07
Из: Петербург
Пользователь №: 25 961

|
QUOTE (Sergey Semenov @ Feb 19 2014, 19:25)  В приложении сам сигнал длительность 2.8 сек
matlab.mat.zip ( 404.32 килобайт )
Кол-во скачиваний: 132Помогите файл прочитать - конвертните в acsii в виде 4-байтовой плав точки или двоичный .mat но не сжатый (data type = 7). Спасибо!
|
|
|
|
Guest_TSerg_*
|
Feb 24 2014, 05:48
|
Guests

|
Цитата(Paviaa @ Feb 21 2014, 11:47)  А вообще я тоже только начинающий в ЦОС. В таком случае лучше слушать, чем писать, тем более с такими ошибками и не по делу.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|