0 / 0 / 0
Регистрация: 23.04.2017
Сообщений: 24
|
|
1 | |
Установка времени задержки сигнала06.09.2018, 20:37. Показов 6301. Ответов 4
Доброго времени суток!
Столкнулся с задачей определения времени задержки сигнала в Симулинке. Имеется синусоидальный сигнал (рис.1), ЗАКРЫТЫЙ блок в котором к нему добавляется шумовая составляющая и задержка(рис.2). Сигнал на выходе (рис.3). По нему можно сделать вывод, что время задержки приблизительно 744 нс. Первое что пришло в голову для установления времени задержки сигнала, это построить свёртку сигнала. По идее тогда всё заканчивалось бы поиском индекса максимума и умножение его на шаг дискретизации времени, тогда я бы получал время задержки сигнала. Но при выполнении этого АКФ данных сигналов получилась в виде трапеции и явный максимум отсутствует (рис.4), при некоторых попытках может выскочить и верный результат, но это не является корректным, на мой взгляд. Допустил ли я где-то ошибку при моделировании данного процесса, можно ли установить время задержки другим методом? Пользоваться собственными функциями нельзя, только стандартные блоки симулинка. Сохранить и скинуть .SLX файл не могу.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
06.09.2018, 20:37 | |
Ответы с готовыми решениями:
4
Функции задержки времени Функция задержки времени Открыть файл формата WAV, воспроизвести его и отобразить график амплитуды и времени этого сигнала (файла), а также спектр сигнала Установка задержки на рисование |
1220 / 871 / 422
Регистрация: 21.10.2012
Сообщений: 2,507
|
|
07.09.2018, 13:28 | 2 |
![]() Решение
Вам нужно пересчитать значение индекса, плучаемое на выходе блока Maximum, с учетом размера буфера накопления. Модель прикрепил.
0
|
0 / 0 / 0
Регистрация: 23.04.2017
Сообщений: 24
|
|
08.09.2018, 20:00 [ТС] | 3 |
Тогда я не совсем понимаю принцип работы Вашей схемы. А точнее блока определения максимума.
Если увеличить изображение "пиков" акф, то видно что они одинаковой амплитуды, каким образом определяется нужный? Или он находит значение первого максимума и после добавления буфера накопления получается нужное время задержки? Если так, то я сомневаюсь, что после добавления шума данная модель продолжит работать.
0
|
1220 / 871 / 422
Регистрация: 21.10.2012
Сообщений: 2,507
|
|
10.09.2018, 11:04 | 4 |
Вам как раз и нужен первый максимум из "серии максимумов ~одинаковой амплитуды".
Зависит, наверное, от величины шума. Если посмотреть на ваше изображение задержанного/зашумленного сигнала, то видно, что сигнал не очень-то и зашумился. В этом случае, скорее всего, всё определится правильно. И если у вас не доступа к закрытому блоку и вы, получается, работаете с неизменным уровнем шумов, то, может быть, всё и получится.
1
|
0 / 0 / 0
Регистрация: 23.04.2017
Сообщений: 24
|
||||||
10.09.2018, 18:07 [ТС] | 5 | |||||
Спасибо за помощь!
Вернусь снова в данную тему, может кому-то потребуется данная реализация процесса. Для того чтобы определить время задержки сигнала на приёмнике были сделаны следующие манипуляции: 1)Обнуление первых временных отсчётов сигнала. Необходимо для того чтобы не учитывать в модели переходный процесс АЦП. Это одна из особенностей блока Sine Wave. Делается следующим образом: создаётся вектор данных равный количеству отсчётов, первые несколько отсчетов приравниваются к 0, остальные 1. С помощью блока Constante, в значении которого написать [0 0 0 ones(1,1021)]. (если количество отсчётов 1024). Дальше необходимо домножить буфер на данный вектор и мы получаем наши "чистые" данные, для анализа. Рисунки 1, 2. 2) Вычисление среднего шума. Так же создаётся вектор с помощью константы из 512 единиц и 512 нулей, [ones(1,512) zeros(1,512)], перемножается с сигналом и получается чистый шум, для вычисления среднего рисунок 3. И сигнал и шум я взял по модулю, чтобы упросить процесс сравнения, для моей модуляции это не критично. Дальше с помощью блока Mean вычислил среднее значение. В данном случае можно сказать, что среднее значение получено некорректно, так как 512 отсчётов присвоено значение 0, но при расчёте среднего всё равно учитывается, согласен, но так как шум получился слишком мал по амплитуде, его всё равно приходится умножать на коэффициент, что компенсирует нулевые значения. 3) Сравнение и определение времени задержки сигнала. С помощью блока Relational Operator получил вектор из логических нулей и единиц. Что поставило в тупик дальнейшие вычисления. Но выход был найден. Данный вектор имеет тип данных Boolean, симулинк дальше не позволяет получать из него каких-то других типов данных после использования функции, но если домножить этот вектор на вектор 1,2,3..1024, то он уже имеет тип double и мы можем получить минимум. Добавив блок MATLAB Function и вписав в него следующее:
Полная модель схемы для анализа изображена на рисунке 4. Блок Object of Location выполняет задержку сигнала, добавление шума и уменьшение амплитуды. Немного увеличил схему, чтобы можно было разглядеть связи
0
|
10.09.2018, 18:07 | |
Помогаю со студенческими работами здесь
5
Программа с введением времени задержки с клавиатуры 5 СПОСОБОВ задержки времени: Что скажете?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |