Page 1 of 2

Анализ временных и частотных параметров сигнала

PostPosted: 01 Nov 2016, 23:58
by marsilenso
Доброго времени суток .
Передо мной стоит задача:
1) просмотр файла .bin Айкью формата. С которым я долго мучился но добрался до отображения сигнала на форме.
На 2 шаге ( амплитудный, энергетический спектры, а также сонограмма) у меня возникла проблема следующего характера- при работе с реальной составляющей и использованием готовых библиотек ,отображение спектров не происходит в реальном времени( т.е с изменением сигнала во времени). Если сам сигнал дышит, то спектры отображаются за первую итерацию и все . В чем проблема , помимо моей неопытности ?
П.с сигнал с мдвр.

1 панель.png
2 панель.png

как видно на 1 скрине, на форме сонограммы ничего не происходит красивого

Программа:
ReadBIN.vi
(46.34 KiB) Downloaded 93 times


https://yadi.sk/d/LOt870NRxxEoM ссылка на сигнал. Т.к через вложения на форум расширение .bin не заливается.
комментарий к файлу: Fd частота которую вводим в окно sample frequnce

Re: Анализ временных и частотных параметров сигнала

PostPosted: 02 Nov 2016, 08:27
by IvanLis
Давайте по порядку, т.к. судя по BD, основной принцип при написании программы был: "главное, что бы ошибок не вылетало".
marsilenso wrote:1) просмотр файла .bin Айкью формата. С которым я долго мучился но добрался до отображения сигнала на форме

Отобразить то у Вас получилось, а вот то ли Вы отображаете?
Что это за формат такой (ссылку на описание)?

marsilenso wrote:На 2 шаге ( амплитудный, энергетический спектры, а также сонограмма)

С этим совсем тяжко.
Отображаете Вы два сигнала, потом сворачиваете его в один (комплексный) и пытаетесь вычислить что-то типа спектра (реально делаете FFT) с отображением действительной части.
А уже за пределами цикла, Вы считаете STFT действительной части FFT.

При этом постоянно выполняете непонятные манипуляции с частотой дискретизации сигнала Fs и dT.

Re: Анализ временных и частотных параметров сигнала

PostPosted: 02 Nov 2016, 10:37
by Vitekkz88
IvanLis писал(а):Что это за формат такой (ссылку на описание)?

Айкью - расшифрую как I,Q :brows: Видимо данные идут в формате I,Q,I,Q,I,Q,I,Q etc. На каждую квадратуру 16 бит.
Я не стал вникать в реализацию автора. Просто вычитал и отобразил. STFT сами постройте. Если файлы будут большого размера, то вычитывайте порциями. Для данного примера размер файла порядка 33 МБ. Я вычитал за раз.

Re: Анализ временных и частотных параметров сигнала

PostPosted: 02 Nov 2016, 11:15
by marsilenso
Отобразить то у Вас получилось, а вот то ли Вы отображаете?
Что это за формат такой (ссылку на описание)?


Это запись квадратур цифрового сигнала, т.е на 1 отсчет приходит реальная и мнимая ссоставляющая.
64 разрядный.
С этим совсем тяжко.
Отображаете Вы два сигнала, потом сворачиваете его в один (комплексный) и пытаетесь вычислить что-то типа спектра (реально делаете FFT) с отображением действительной части.
А уже за пределами цикла, Вы считаете STFT действительной части FFT.

1 форма отображает синфазную и противофазную составляющую( синим и красным цветом),
2 форма только реальную, с нее то я и хотел брать спектры но столкнулся с конфликтом типа данных...
С выходом из цикла грубая ошибка, согласен.

По поводу конфликта данных м.б ошибка кроется еще на 1 этапе проги, открытие файла, т.к я гдето читал что лабвью не с виндовским форматом читает отсчеты а моторола... Другими словами нужно инвертировать биты .
При этом постоянно выполняете непонятные манипуляции с частотой дискретизации сигнала Fs и dT.

Связано это с тем что при разных сигналах нужно учитывать f дискритизации помноженной на 1.1 ( своего рода защитный интервал)... Это из-за особенности записи сигнала с эфира.

Re: Анализ временных и частотных параметров сигнала

PostPosted: 02 Nov 2016, 11:37
by marsilenso
Я не стал вникать в реализацию автора. Просто вычитал и отобразил. STFT сами постройте. Если файлы будут большого размера, то вычитывайте порциями. Для данного примера размер файла порядка 33 МБ. Я вычитал за раз.

Файлы будут 1 гиг и больше... Но это уже следующий этап и вытекающие проблемы с большим объёмом файла...
Я пробовал порциями реализовать но каждый блок данных прога считывала с начала каждого блока данных , а не продолжала с последнего.

Re: Анализ временных и частотных параметров сигнала

PostPosted: 02 Nov 2016, 11:43
by Vitekkz88
Я пробовал порциями реализовать но каждый блок данных прога считывала с начала каждого блока данных , а не продолжала с последнего

Нужно указывать индекс, с которого читать, и какой объём. И повторять это в цикле до тех пор, пока не вычитаете всё.
Разберитесь вначале с тем, как обрабатывать данные. Пример выше я скинул. Если на одну квадратуру 32 бита, то тип данных должен быть int32 и кол-во байт = 4

Re: Анализ временных и частотных параметров сигнала

PostPosted: 06 Nov 2016, 20:35
by marsilenso
У кого какие идеи есть по расчету характеристик сигнала (например разнос частот, защитный интервал и т.д) с вейв формы (спектральное представление), кроме как выставления маркеров и считывание его значения в точке. Т.к он не демодулирован смысла смотреть битовый поток нет мое имхо)

Re: Анализ временных и частотных параметров сигнала

PostPosted: 11 Jun 2017, 21:19
by marsilenso
marsilenso wrote:У кого какие идеи есть по расчету характеристик сигнала (например разнос частот, защитный интервал и т.д) с вейв формы (спектральное представление), кроме как выставления маркеров и считывание его значения в точке. Т.к он не демодулирован смысла смотреть битовый поток нет мое имхо)

Доброго времени суток.
Можно ли считать позицию курсора номера 2,3 и т.д ? C property node получается посмотреть позицию курсора номер 1.

Re: Анализ временных и частотных параметров сигнала

PostPosted: 11 Jun 2017, 21:22
by marsilenso
Было бы удобно расчитывать разницу между 1 и 2 курсором, чтобы было сразу видно длительность одного пакета в индикаторе.

Re: Анализ временных и частотных параметров сигнала

PostPosted: 11 Jun 2017, 21:52
by Kosist
При помощи Property Node можно указать значение Active Cursor. Тогда, Вы можете "достучаться" до всех нужных курсоров на графике. Если не укажете его значение, то по-умолчанию оно равно 0, поэтому Вы и получаете значения только для 1-го курсора.

Re: Анализ временных и частотных параметров сигнала

PostPosted: 11 Jun 2017, 23:06
by marsilenso
Kosist wrote:При помощи Property Node можно указать значение Active Cursor. Тогда, Вы можете "достучаться" до всех нужных курсоров на графике. Если не укажете его значение, то по-умолчанию оно равно 0, поэтому Вы и получаете значения только для 1-го курсора.

Спасибо. Но я так понимаю одновременно с двух курсоров не снять значения ? Задумка следующая: есть два значения которые считываются с их позиций(одновременно), далее выполняются различные действия с этими числовыми значениями.

Re: Анализ временных и частотных параметров сигнала

PostPosted: 11 Jun 2017, 23:20
by marsilenso
вот так, но это один курсор.

Re: Анализ временных и частотных параметров сигнала

PostPosted: 12 Jun 2017, 00:30
by Kosist
marsilenso wrote:Спасибо. Но я так понимаю одновременно с двух курсоров не снять значения ? Задумка следующая: есть два значения которые считываются с их позиций(одновременно), далее выполняются различные действия с этими числовыми значениями.

А какая скорость обработки координат курсоров Вам нужна? Даже если property nodes будут параллельными, указывайте правильный индекс, и получите данные для нужного курсора. Ну, или "проганяйте" свойства через For Loop, и получайте нужные данные. Даже если получение координат есть последовательным для курсора 1 и 2, скорость получения такая, что можно сказать, что данные поступают одновременно.
Cursor.png

Как будут двигаться курсоры? Программно, или пользователем? Если пользователем, то проблем вообще нет - реакция юзера не настолько быстрая, чтобы не успевать обработать координаты двух курсоров...

Re: Анализ временных и частотных параметров сигнала

PostPosted: 20 Jun 2017, 22:16
by marsilenso
Kosist wrote:Как будут двигаться курсоры? Программно, или пользователем? Если пользователем, то проблем вообще нет - реакция юзера не настолько быстрая, чтобы не успевать обработать координаты двух курсоров...

Курсоры двигаются пользователем. Спасибо за помощь.

Вопрос по фильтрации. Как видно из скрина, на вход поступают данные .bin формата ( на 1 отсчет приходится мнимая и реальная составляющая).
Идея состоит в следующем : с помощью курсоров с вейф формы регулировать полосу пропускания (ПФ), выделять нужный мне сигнал со спектра мощности или амплитудного спектра. И строить его STFT. Проблема состоит в следующем: фильтр не фильтрует :suicide:
qqqqqq.jpg

1 рисунок при включении фильтра
фильтр1.png

2 рисунок Без фильтра
фильтр11.png

Re: Анализ временных и частотных параметров сигнала

PostPosted: 21 Jun 2017, 08:46
by IvanLis
marsilenso, не надо писать 2-3 сообщения подряд. В следующий раз я оставлю последнее, а остальные будут удалены!
У вас есть доступ к редактированию, вот и пользуйтесь им.

Вы определитесь, фильтрует или нет?
Сначала пишите, что фильтрация не работает, он в принципе и не может работать, т.к. фильтров на BD я не обнаружил.
Потом выкладываете скрины, с двумя режимами работы (с фильтрацией и без нее). Если есть вопросы, то выкладывайте и программу, по возможности Вам окажут помощь.
Только постарайтесь правильно и коротко формулировать вопросы.

Разберитесь, что вы делаете, меня например смущает полученный вами спектр (видимо амплитуд гармоник) на среднем рисунке, тем что часть их имеют отрицательное значение, ну и его полная симметричность относительно оси X.

Т.к.
1. Амплитуда - неотрицательная скалярная величина...
2. Амплитудный спектр - набор амплитуд всех гармоник...