реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Перенос спектра в Matlab
deneb13
сообщение Mar 9 2011, 11:11
Сообщение #31


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 16-02-11
Пользователь №: 63 022



Цитата(Taradov Alexander @ Mar 8 2011, 22:03) *
Обратите внимание на временное представление сигнала z, у него в начале проявляется переходная характеристика фильра и сигнал задержан на половину длинны ИХ фильра (40 отсчетов). При потоковой обработке такое произойдет только один раз в начале работы и далее все будет хорошо, но если поток разбивать на блоки, то такое будет в каждом блоке.


Вопрос:можно ли устранить данную задержку?
Go to the top of the page
 
+Quote Post
ataradov
сообщение Mar 9 2011, 11:17
Сообщение #32


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



QUOTE (deneb13 @ Mar 9 2011, 14:11) *
Вопрос:можно ли устранить данную задержку?
Если фильтруете всегда блок фиксированной длинны, то filtfilt() как раз для этого.


Go to the top of the page
 
+Quote Post
deneb13
сообщение Mar 9 2011, 11:41
Сообщение #33


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 16-02-11
Пользователь №: 63 022



Да,блок всегда фиксированной длины.а если использовать filter?как быть в этом случае?
Go to the top of the page
 
+Quote Post
ataradov
сообщение Mar 9 2011, 11:53
Сообщение #34


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



QUOTE (deneb13 @ Mar 9 2011, 14:41) *
Да,блок всегда фиксированной длины.а если использовать filter?как быть в этом случае?
Например можно добавить в начало сигнала 40 (длинна фильтра/2) отсчетов сигнала с обратным знаком и в обратном порядке во времени. То есть если есть вектор [1 2 3 4 5 .... 100], то его нужно превратить в вектор [-40 -39 .... -1 1 2 3.... 100] и после филтрации начало обрезать. В конец тоже нулей добавить, чтобы не потерять хвост.

Но filtfilt() не хуже совсем, она делает 2 прохода - в одну и другую сторону, чтобы скомпенсировать искажение фазы.
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 9 2011, 12:05
Сообщение #35


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



deneb13, делайте с переносом в 0 и обратно, в нуле задавите вашу помеху ФВЧ фильтром, это нормальный подход. FFT здесь не нужно. Блочность не должна влиять на обработку, совпадать она должна с потоковой, это всего лишь манипуляции с данными.
Go to the top of the page
 
+Quote Post
ataradov
сообщение Mar 9 2011, 12:13
Сообщение #36


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



QUOTE (petrov @ Mar 9 2011, 15:05) *
deneb13, делайте с переносом в 0 и обратно, в нуле задавите вашу помеху ФВЧ фильтром
Это несомненно позволит добиться нужного результата, но не совпадет с темой курсовой, так как так или иначе помеху просто отфильтровали, а не оценили и вычли. То что требуется - это извращение еше то, конечно, но чего не сделаешь ради образования sm.gif

PS: хотя если применить ФНЧ и в 0 снести именно помеху, то на выходе как раз получится чисто помеха, ее обратно на место перенести и можно вычитать.

Сообщение отредактировал Taradov Alexander - Mar 9 2011, 12:15
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 9 2011, 12:17
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Taradov Alexander @ Mar 9 2011, 15:13) *
Это несомненно позволит добиться нужного результата, но не совпадет с темой курсовой, так как так или иначе помеху просто отфильтровали, а не оценили и вычли. То что требуется - это извращение еше то, конечно, но чего не сделаешь ради образования sm.gif



А что есть какая-то разница выделить сигнал ФНЧ фильтром и вычесть из задержанного сигнала или сразу ФВЧ задавить? Это буквально одно и то же. ИХ ФВЧ фильтра так и получается из ФНЧ прототипа задержкой и вычитанием.
Go to the top of the page
 
+Quote Post
ataradov
сообщение Mar 9 2011, 12:22
Сообщение #38


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



QUOTE (petrov @ Mar 9 2011, 15:17) *
Это буквально одно и то же. ИХ ФВЧ фильтра так и получается из ФНЧ прототипа задержкой и вычитанием.
Я понимаю, просто курсовая тогда очень странная получается, больше на ДЗ похожа.
Go to the top of the page
 
+Quote Post
deneb13
сообщение Mar 9 2011, 12:45
Сообщение #39


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 16-02-11
Пользователь №: 63 022



Цитата(Taradov Alexander @ Mar 9 2011, 15:13) *
PS: хотя если применить ФНЧ и в 0 снести именно помеху, то на выходе как раз получится чисто помеха, ее обратно на место перенести и можно вычитать.


именно это я и пытаюсь сделать!вот только при вычитании, помеха до абсолютного 0 не уходит
Go to the top of the page
 
+Quote Post
ataradov
сообщение Mar 9 2011, 12:52
Сообщение #40


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



QUOTE (deneb13 @ Mar 9 2011, 15:45) *
именно это я и пытаюсь сделать!вот только при вычитании, помеха до абсолютного 0 не уходит
Нужно смотреть на задержки фазы, вносимые фильтрами. Ну и плного прямо нуля не выдет, немного все-равно останется.

Я вечерком попробую такое сотворить.
Go to the top of the page
 
+Quote Post
deneb13
сообщение Mar 9 2011, 12:58
Сообщение #41


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 16-02-11
Пользователь №: 63 022



Буду благодарна,если расскажете о своих результатах!
Go to the top of the page
 
+Quote Post
ataradov
сообщение Mar 9 2011, 18:43
Сообщение #42


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



Я решил попробовать для начала просто одну помеху подавить таким методом, но наткнулся на эффект, который сходу объяснить не могу, может коллективный разум поможет.

Код:
CODE
clear all;

Fs = 10e3;
f1 = 1e3;

t = 0:1/Fs:100000/Fs;

s = sin(2*pi*f1*t);

s0 = s .* exp(-j*2*pi*f1*t);

h = firls(150, [0 150 1000 Fs] / Fs, [1 1 0 0]);

sf = filtfilt(h, 1, s0);

sh = sf .* exp(j*2*pi*f1*t);

figure; hold on; plot(s); plot(real(sh), 'r'); plot(imag(sh), 'g');


Тут происходит перенос помехи в 0, фильтрация ФНЧ и перенос результата назад.

Проблема - если частота помехи низкая (f1 = 20 Гц), то imag(sh) около 0, а real(sh) совпадает по фазе и амплитуде с исходным синусом. Но если частоту увеличивать, то постепенно действительная и мнимая части становятся амплитудой 0.5 и не совпадают по фазе с исходным синусом.

Похоже это из-за фильтрации, но я не могу с ходу понять почему именно.
Go to the top of the page
 
+Quote Post
Самурай
сообщение Mar 9 2011, 19:30
Сообщение #43


Местный
***

Группа: Участник
Сообщений: 468
Регистрация: 4-03-05
Пользователь №: 3 066



Цитата(Taradov Alexander @ Mar 9 2011, 21:43) *
Я решил попробовать для начала просто одну помеху подавить таким методом, но наткнулся на эффект, который сходу объяснить не могу, может коллективный разум поможет.
...
Похоже это из-за фильтрации, но я не могу с ходу понять почему именно.


Угу, из-за фильтрации. Тот фильтр, что у Вас, просто давит зеркальную часть смещенного в ноль синуса. Что там происходит при обратном переносе мне не ведомо (лень формулы писать), но явно не то, что хотелось быsm.gif. Полосу пропускание фильтра надо бы увеличить, или делать комплексный фильтр.
Go to the top of the page
 
+Quote Post
ataradov
сообщение Mar 9 2011, 19:42
Сообщение #44


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



QUOTE (Самурай @ Mar 9 2011, 22:30) *
Полосу пропускание фильтра надо бы увеличить, или делать комплексный фильтр.


Да, действительно, это из-за того, что фильр с действительными коэффициентами.

В общем идею это иллюстрирует, только нужно правильно фильтр посчитать.

Но вообще так избаляться от помех - это изврат.
Go to the top of the page
 
+Quote Post
deneb13
сообщение Mar 9 2011, 20:48
Сообщение #45


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 16-02-11
Пользователь №: 63 022



Скажите, а как можно посчитать комплексный фильтр?может литература есть какая по этому вопросу?дело в том,что если в качестве сигнала использовать шпс, то нельзя сильно увеличивать ПП фильтра-сигнал ведь тоже вырезаться будет.
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 07:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01475 секунд с 7
ELECTRONIX ©2004-2016