Вопрос по преобразованию Гильберта
Re: Вопрос по преобразованию Гильберта
Вопрос : удвоить спектр в положительной области частот - как правильно удваивать положительную часть спектра?
После прямого преобразования получаем комплексный массив. Удваивать как сумму комплексных чисел или удваивать отдельно реальную и отдельно мнимую части в массиве?
После прямого преобразования получаем комплексный массив. Удваивать как сумму комплексных чисел или удваивать отдельно реальную и отдельно мнимую части в массиве?
- Бахурин Сергей
- Администратор
- Сообщения: 1116
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Вопрос по преобразованию Гильберта
удваивать каждое комплексное число (с = a+jb тогда 2c = 2a+j*2b)
Re: Вопрос по преобразованию Гильберта
Допустим у меня есть сигнал 1Гц-20кГц дискретизированный с частотой 100кГц, из этого сигнала, путем фильтрации эллиптическим БИХ-фильтром выделяются частоты 12кГц-15кГц, необходимо получить спектр огибающей на этих частотах. Соответственно я собираюсь спроектировать фильтр Гильберта, с помощью которого получу в дальнейшем аналитический сигнал, и рассчитаю мгновенную амплитуду для получения огибающей.
Вопрос: Задался вопросом моделирования КИХ-фильтра Гильберта в среде Matlab, в литературе приводится, что он рассчитывается как ПФ с симметричными относительно Fд/4 (Fд - частота дискретизации) частотами полос пропускания, следовательно у меня Fд/4=25000Гц. Я задаю его полосу пропускания соответственно 12кГц-38кГц. и считаю фильтр. Так правильно, или все это делается иначе?
Вопрос: Задался вопросом моделирования КИХ-фильтра Гильберта в среде Matlab, в литературе приводится, что он рассчитывается как ПФ с симметричными относительно Fд/4 (Fд - частота дискретизации) частотами полос пропускания, следовательно у меня Fд/4=25000Гц. Я задаю его полосу пропускания соответственно 12кГц-38кГц. и считаю фильтр. Так правильно, или все это делается иначе?
- Бахурин Сергей
- Администратор
- Сообщения: 1116
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Вопрос по преобразованию Гильберта
а зачем полосовой фильтр? почему не сделать так http://www.dsplib.ru/content/quadosc/quadosc.html
Re: Вопрос по преобразованию Гильберта
Если честно, то я с трудом представляю перенос всего что описано в статье из непрерывной в дискретную область, т.е. частота несущей будет f0=13.5 кГц (w0=2*pi*f0/Fд), затем я так понимаю реальный сигнал (1Гц - 20 кГц) необходимо умножить на sin и на cos с частотами w0*n*T. После всего прогоняем два получившихся сигнала через ФНЧ (КИХ?) с частотой среза 1,5 кГц, если не трудно можно ли поподробней объяснить, но только для дискретных сигналов . И еще вопрос: я так понимаю, при проведении всех манипуляций на выходе будет два сигнала Q и I, огибающая будет получена как Z=(Q^2+I^2)^0.5 - верно ли это?, и соответственно спектр огибающей можно получить проведя БПФ над Z с той-же частотой дискретизации, что и частотный сигнал?
Да, забыл, сигнал на частоте 12 кГц-15 кГц имеет амплитудную модуляцию, задачей является определить по спектру огибающей амплитуду и частоту модулирующего сигнала.
Да, забыл, сигнал на частоте 12 кГц-15 кГц имеет амплитудную модуляцию, задачей является определить по спектру огибающей амплитуду и частоту модулирующего сигнала.
- Бахурин Сергей
- Администратор
- Сообщения: 1116
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Вопрос по преобразованию Гильберта
делается все абсолютно точно также только вместо непрерывных сигналов используются дискретные. Вы в какой среде моделируете?
Re: Вопрос по преобразованию Гильберта
Т.е. то что я написал выше правильно?Бахурин Сергей писал(а):делается все абсолютно точно также только вместо непрерывных сигналов используются дискретные.
Моделирую в matlab. Там нашел функцию hilbert, вот и заинтересовался преобразованием Гильберта для получения аналитического сигнала с целью выделения спектра огибающей. Нужно реализовать спектр огибающей для вибродиагностики на C++.
- Бахурин Сергей
- Администратор
- Сообщения: 1116
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Вопрос по преобразованию Гильберта
вот пример который показывает как правильно выделять огибающую и измерять глубину АМ.
Попробуйте будут вопросы задавайте
Попробуйте будут вопросы задавайте
Код: Выделить всё
close all; clear all; clc;
%% ИСХОДНЫЕ ДАННЫЕ
Fs = 100E3; % частота дискретизации
f0 = 10E3; % несущая частота
N = 16384; % количество дискретных отсчетов
t = (0:N-1)/Fs; % дискретное время.
frq = Fs*(0:N-1)/N - Fs/2; % дискретная частота
%% ФОРМИРУЮ АМ НА ЧАСТОТЕ f0
sm = cos(2*pi*100*t); % модулирующий сигнал
mAM = 0.9; % глубина АМ
s = (1+mAM.*sm).*cos(2*pi*f0*t); % AM сигнал на частоте f0
% рассчитываю спектр исходного сигнала и вывожу на график
S = fftshift(abs(fft(s)));
figure; subplot(211); plot(t, s);
title('AM signal');
xlabel('time, sec');
subplot(212); plot(frq, S);
title('spectr of AM signal');
xlabel('frequency, kHz');
%% ПЕРЕНОС ПРИ ПОМОЩИ КВАДРАТУРНОГО ГЕТЕРОДИНА
i0 = s.*cos(2*pi*f0*t);
q0 = -s.*sin(2*pi*f0*t);
%% ВЫДЕЛЕНИЕ ОГИБАЮЩЕЙ ПРИ ПОМОЩИ ФНЧ
[b a] = ellip(4, 0.1, 60, 0.1); % формирую ФНЧ
i = filter(b,a,i0); % фильтрую I канал
q = filter(b,a,q0); % фильтрую Q канал
z = i + 1i * q; % выделенная комплексная огибающая
% рассчитываю спектр комплексной огибающей и вывожу на график
Z0 = fftshift(abs(fft(i0+1i*q0)));
Z = fftshift(abs(fft(z)));
figure; plot(frq, Z0, frq, Z, 'r');
title('complex envelope spectr');
xlabel('frequency, kHz');
%% ИЗМЕРЕНИЕ ГЛУБИНЫ АМ ИЗ ВЫДЕЛЕННОЙ ОГИБАЮЩЕЙ
amp = abs(z); % ам есть модуль огибающей z
% отбрасываю половину модуля чтобы исклюсить переходной процесс фильтрации
amp = amp(end/2:end);
% рассчет глубины и вывод на печать
mam = (max(amp) - min(amp))/(max(amp) + min(amp));
fprintf('исходная глубина модуляции: %.4f\n', mAM);
fprintf('измеренная глубина модуляции: %.4f\n', mam);
Re: Вопрос по преобразованию Гильберта
Спасибо огромное за пример!
Возник вопрос, если не известна несущая частота, то в моем случае я так понимаю выбирать ее как середину исследуемого диапазона частот 13,5 кГц?
Возник вопрос, если не известна несущая частота, то в моем случае я так понимаю выбирать ее как середину исследуемого диапазона частот 13,5 кГц?
- Бахурин Сергей
- Администратор
- Сообщения: 1116
- Зарегистрирован: 05 окт 2010, 19:55
- Контактная информация:
Re: Вопрос по преобразованию Гильберта
считается что частота известна. Если не известна то ее надо предварительно оценить. Частота среза фильтра должна быть больше полосы сигнала но меньше несущей частоты.