Jump to content
    

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

10 hours ago, rloc said:

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

14 hours ago, C2000 said:

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

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

Share this post


Link to post
Share on other sites

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

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

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

 

Share this post


Link to post
Share on other sites

13 minutes ago, Lmx2315 said:

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

 

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

3 hours ago, des00 said:

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

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

1 minute ago, Lmx2315 said:

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

1 minute ago, Lmx2315 said:

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

Just now, Lmx2315 said:

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...