Страница 3 из 4

Re: Формирование пачки радиоимпульсов и его амплитудный спектр

Добавлено: 23 янв 2016, 14:15
Андрей1991
В матлабе есть встроенная функция называется hilbert не могу понять как она работает. По идее я должен взять от сигнала ДПФ потом обнулить половину массива. В этой же функции алгоритм како-то странный формируется массив h как то странно в нем есть и единицы и двойки и нули (что касается двоек и нулей вроде понятно потому что мы спектр умножаем на два и обнуляем вторую половину, а единицы к чему?) Может объясните мне принцип этого алгоритма. В интернете нашел алгоритмm,но все равно не понимаю его
Алгоритм

Аналитический сигнал для последовательности x имеет односторонний спектр, то есть значения его ДПФ для отрицательных частот равны нулю. Для получения аналитического сигнала функция hilbert вычисляет ДПФ входной последовательности отсчетов, обнуляет результаты, соответствующие отрицательным частотам, после чего вычисляет обратное ДПФ.

Ниже более детально приведен четырехшаговый алгоритм, используемый функцией hilbert:

С помощью функции fft вычисляется n-точечное ДПФ входной последовательности, результат сохраняется в векторе x.
1 для i = 1 и i = (n/2)+1;
2 для i = 2, 3, …, (n/2);
0 для i = (n/2)+2, …, n.
Создается вектор h, элементы которого, h(i), имеют следующие значения:
Вычисляется поэлементное произведение векторов x и h.
С помощью функции ifft вычисляется обратное ДПФ последовательности, полученной на предыдущем шаге.
Если входной параметр xr является матрицей, функция hilbert использует тот же алгоритм, расширяя каждый его шаг для обработки матрицы по столбцам.

Re: Формирование пачки радиоимпульсов и его амплитудный спектр

Добавлено: 23 янв 2016, 15:00
Santik
Андрей1991 писал(а): а единицы к чему?
Если сказать по-русски: для постоянной составляющей и частоты Найквиста умножать на 2 не надо. :D
Как Модератор, делаю очередное замечание за overquoting, к тому же с ошибками!

С помощью функции fft вычисляется n-точечное ДПФ входной последовательности, результат сохраняется в векторе x.
Создается вектор h, элементы которого, h(i), имеют следующие значения:
1 для i = 1 и i = (n/2)+1;
2 для i = 2, 3, …, (n/2);
0 для i = (n/2)+2, …, n.
Вычисляется поэлементное произведение векторов x и h.
С помощью функции ifft вычисляется обратное ДПФ последовательности, полученной на предыдущем шаге.

Re: Формирование пачки радиоимпульсов и его амплитудный спектр

Добавлено: 23 янв 2016, 16:30
petrov
Андрей1991 писал(а): По идее я должен взять от сигнала ДПФ потом обнулить половину массива.
Не должны. Пребразование Гильберта - инвариантная во времени линейная система, чтобы обнуление ДПФ являлось таковым, оно должно быть скользящим, что совершенно не выгодно по ресурсам. Фильтр Гильберта в виде быстрой свёртки очень длинным быть должен, чтобы это было выгодно. Делайте обычный полосовой КИХ фильтр антисимметричный с нечётным количеством коэффициентов, 4-х кратная экономия на умножениях.

Re: Формирование пачки радиоимпульсов и его амплитудный спектр

Добавлено: 23 янв 2016, 16:46
Santik
petrov писал(а): Делайте обычный полосовой КИХ фильтр антисимметричный с нечётным количеством коэффициентов, 4-х кратная экономия на умножениях.
А это точно будет выгоднее, чем два всепропускающих БИХ -фильтра?

Re: Формирование пачки радиоимпульсов и его амплитудный спектр

Добавлено: 23 янв 2016, 22:03
Андрей1991
Я просто не пойму почему такой массив h получается, я думал массив h должен содержать половину нулей и половину двоек и все, объясните а то я не понимаю, тупой наверно

Re: Формирование пачки радиоимпульсов и его амплитудный спектр

Добавлено: 23 янв 2016, 23:06
petrov
Santik писал(а):А это точно будет выгоднее, чем два всепропускающих БИХ -фильтра?
ХЗ, не люблю БИХ, лишние искажения, с которыми и так нужно бороться. Обычно ведь не гильберт, а перенос в ноль и фильтрация КИХ ФНЧ, он же согласованный фильтр, он же имеет эффективную полифазную реализацию, не вносит искажений, легко считаются разрядности арифметических устройств(FPGA).

Re: Формирование пачки радиоимпульсов и его амплитудный спектр

Добавлено: 24 янв 2016, 07:24
Santik
Андрей1991 писал(а): Я просто не пойму почему такой массив h получается, я думал массив h должен содержать половину нулей и половину двоек и все, объясните а то я не понимаю, тупой наверно
Да так оно в принципе и есть (это я про массив h) :D
Исключение составляют всего две точки - с 0-частотой и частотой Найквиста.
И скорее всего - в описании ошибка. Должно быть h(1)=0.

Re: Формирование пачки радиоимпульсов и его амплитудный спектр

Добавлено: 24 янв 2016, 14:04
Андрей1991
Скажите, а если умножить двойку на частоту Найквиста и на нулевую частоту, что произойдет? Хочу это физически понять.Почему исключение составляют эти две точки?

Re: Формирование пачки радиоимпульсов и его амплитудный спектр

Добавлено: 24 янв 2016, 16:06
Santik
Андрей1991 писал(а): Скажите, а если умножить двойку на частоту Найквиста и на нулевую частоту, что произойдет?
Ну умножь сам и посмотри. А вообще за этот вопрос - тебе ещё одно предупреждение.
Для начала посмотри, что такое БПФ. (Я имею ввиду стандартные программы).
Э.Р. Канасевич "Анализ временных последовательностей в геофизике" стр. 54

Re: Формирование пачки радиоимпульсов и его амплитудный спектр

Добавлено: 27 янв 2016, 02:20
Андрей1991
А почему вы говорите что должно быть h(1)=0? Вы же говорили что в точках h(1)=1 и h((n/2)+1)=1.объясните