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

 
 
 
Reply to this topicStart new topic
Sergey Semenov
сообщение Feb 19 2014, 15:25
Сообщение #1





Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
thermit
сообщение Feb 19 2014, 15:45
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Сначала децимировать, потом фильровать/анализировать.
Go to the top of the page
 
+Quote Post
amaora
сообщение Feb 19 2014, 17:10
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 421
Регистрация: 2-01-08
Пользователь №: 33 778



Идентифицировать постоянную соствляющую и фазу 1Гц сигнала, в остатке будет phi.
Go to the top of the page
 
+Quote Post
Sergey Semenov
сообщение Feb 19 2014, 17:58
Сообщение #4





Группа: Участник
Сообщений: 12
Регистрация: 15-04-09
Из: Санкт-Петербург
Пользователь №: 47 745



Цитата(amaora @ Feb 19 2014, 21:10) *
Идентифицировать постоянную соствляющую и фазу 1Гц сигнала, в остатке будет phi.

А как? Можете сказать что почитать, куда посмотреть?

Я, к несчастью, очень неопытен в ЦОС.

Как я понимаю, если делать FFT с небольшим числом точек (512) - тогда разрешение будет порядка 40 гц и
этот 1Гц сигнал вылезет на других частотах. А позволить делать FFT с большим числом точек тоже
будет затруднително, я боюсь на финальной платформе не хватит ресурсов
Go to the top of the page
 
+Quote Post
thermit
сообщение Feb 19 2014, 18:35
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



еще раз:
1 Выполнить понижение частоты дискретизации в 10 раз
2 на чд 4кгц дпф на 512 точек даст разрешение ~8 гц
Go to the top of the page
 
+Quote Post
amaora
сообщение Feb 19 2014, 19:43
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 421
Регистрация: 2-01-08
Пользователь №: 33 778



Такой сигнал можно оценить рекуррентным фильтром второго или третьего порядка (все таки амплитуда тоже неизвестна?), если перед этим ещё перейти к низкой частоте (~400 Гц), то много вычислительных ресурсов не потребуется. Посмотрите алгоритм Герцеля. Но это мне так привычнее делать как в ТУ.

Можно оценить фазу/амплитуду путем вычисления нужных компонент дпф по какому-то окну взяв сигнал на низкой частоте, синтезировать этот сигнал обратно на требуемой частоте и вычесть из исходного. Это наверно будет больше похоже на ЦОС. Вычислений тоже не много.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 20 2014, 08:19
Сообщение #7


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

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



Вот что получил ВЧ-фильтром Баттерворта 8 порядка на 200 Гц. Когда пробую понизить частоту, увеличить порядок, фильтр ломается, видимо, из-за переполнений.

Эскизы прикрепленных изображений
 Р В Р’ Р’ Р в‚¬Р В РЎВ˜Р В Р’µР Р…ьшено Р Т‘Р С• 79%
Прикрепленное изображение
813 x 487 (31.87 килобайт)
 
Go to the top of the page
 
+Quote Post
Sergey Semenov
сообщение Feb 20 2014, 08:55
Сообщение #8





Группа: Участник
Сообщений: 12
Регистрация: 15-04-09
Из: Санкт-Петербург
Пользователь №: 47 745



Цитата(ViKo @ Feb 20 2014, 12:19) *
Вот что получил ВЧ-фильтром Баттерворта 8 порядка на 200 Гц. Когда пробую понизить частоту, увеличить порядок, фильтр ломается, видимо, из-за переполнений.

ну вот у меня получилось примерно так же. Смущает только высокий порядок фильтра, казалось, что вдруг можно было бы сделать как-то попроще.

Спасибо всем за ответы! попробую пойти по пути, предложенному thermit.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 20 2014, 09:03
Сообщение #9


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

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



А вот еще вариант. Зеленый - исходный сигнал, фиолетовый - после НЧ фильтра 5 порядка на 80 Гц, синий - разность первого и второго.
Эскизы прикрепленных изображений
 Р В Р’ Р’ Р в‚¬Р В РЎВ˜Р В Р’µР Р…ьшено Р Т‘Р С• 83%
Прикрепленное изображение
1008 x 724 (98.37 килобайт)
 
Go to the top of the page
 
+Quote Post
Pavia
сообщение Feb 21 2014, 07:47
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 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 зависит от частоты среза.

А вообще я тоже только начинающий в ЦОС.

Go to the top of the page
 
+Quote Post
AndrewN
сообщение Feb 24 2014, 01:20
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 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).
Спасибо!
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Feb 24 2014, 05:48
Сообщение #12





Guests






Цитата(Paviaa @ Feb 21 2014, 11:47) *
А вообще я тоже только начинающий в ЦОС.


В таком случае лучше слушать, чем писать, тем более с такими ошибками и не по делу.
Go to the top of the page
 
+Quote Post

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

 


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


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