Перейти к содержанию
    

Фильтр гильберта и перенос частот

Есть задача сдвинуть частоты от 50 до 1000Гц на 90 градусов. Частота сэмплирования 8КГц. Точность сигнала на выходе нужна 0.05%, т.е. порядок фильтра Гильберта получается не разумный (всё это в риалтайме, непрерывным потоком).

Хочется как то обмануть природу))

Можно ли сдвинуть частоты в Fs/4, т.е. на 2КГц, затем применить фильтра Гилберта (гораздо меньшего порядка) и восстановить исходный сигнал но сдвинутый на 90 без потери точности на заданных частотах.

Вообще можно и не восстанавливать, на выходе нужно иметь "усредненный результат перемножения" с сигналом с другого канала, но перед перемножением нужно чтобы один сигнал был сдвинут на 90градусов.

Т.е. если на входе между сигналами 0 градусов на выходе средний сигнал должен быть 0, если на входе изначально 90, то на выходе соответственно 1 == sin угла исходных сигналов. И так во всём спектре. Сигнал одновременно может содержать несколько гармоник, любой частоты. Отфильтровывыть нужные частоты не вариант.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может быть сначала децимировать в 2 раза, или даже в 4 раза, если пожертвовать некоторой долей верхней границы в 1кГц?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 hours ago, rloc said:

Может быть сначала децимировать в 2 раза, или даже в 4 раза, если пожертвовать некоторой долей верхней границы в 1кГц?

Да это как один из вариантов, порядок фильтра будет ниже где то 100-150. Но вопрос по переносу частоты на Fs/4

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я может скажу глупость, а нельзя посчитать FFT, подвинуть у всех частот фазу и сделать IFFT?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не получится некой магии если из одного канала брать чётные отсчеты, а из другого нечётные? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 hours ago, C2000 said:

Точность сигнала на выходе нужна 0.05%

Что за конь? Какой параметр сигнала нормируется по точности?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 часов назад, C2000 сказал:

Есть задача сдвинуть частоты от 50 до 1000Гц на 90 градусов.

Чтобы комплексный сигнал сдвинуть по фазе на 90 градусов надо его комплексно умножить на комплексное число с фазой 90 градусов, так как действительный сигнал это тот же комплексный у которого мнимая часть равна нулю, то почему бы так и не сделать?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 minutes ago, Lmx2315 said:

Чтобы комплексный сигнал сдвинуть по фазе на 90 градусов надо его комплексно умножить на комплексное число с фазой 90 градусов, так как действительный сигнал это тот же комплексный у которого мнимая часть равна нулю, то почему бы так и не сделать?

 

Так это будет сдвиг на одной частоте, а не во всём спектре

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 минуты назад, C2000 сказал:

Так это будет сдвиг на одной частоте, а не во всём спектре

чтооо? Вы умножаете комплексный сигнал во временном домене, какие частоты? откуда и кто про них знает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, des00 said:

я может скажу глупость, а нельзя посчитать FFT, подвинуть у всех частот фазу и сделать IFFT?

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

1 minute ago, Lmx2315 said:

чтооо? Вы умножаете комплексный сигнал во временном домене, какие частоты? откуда и кто про них знает.

На какое комплексное число предлагаете умножить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, C2000 сказал:

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

На какое комплексное число предлагаете умножить?

На вот это - {\displaystyle z=re^{i\varphi }.} , где фи - ваш угол, r = 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, Lmx2315 said:

На вот это - {\displaystyle z=re^{i\varphi }.} , где фи - ваш угол, r = 1

И как это умножение применить на отсчёты АЦП?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, C2000 сказал:

И как это умножение применить на отсчёты АЦП?

это нужно применять к каждому отсчёту АЦП

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Just now, Lmx2315 said:

это нужно применять к каждому отсчёту АЦП

Напишите формулу хотя бы для 4 отсчётов и посмотрите что получится

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В Матлабе преобразование Гильберта делается через fft с банальным обнулением зеркальной копии спектра и обратным fft, что несколько быстрее фильтрации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...