123 / 98 / 28
Регистрация: 09.01.2018
Сообщений: 584
|
|
1 | |
Преобразование Фурье19.09.2024, 10:10. Показов 1635. Ответов 35
Метки фазовый спектр (Все метки)
Вопрос.
На картинке три сигнала синусоиды отличающиеся количеством отсчетов: 1-й сигнал содержит на 1 отсчет меньше от целого числа периодов. 2-й сигнал содержит целое число периодов. 3-й сигнал содержит на 1 отсчет больше от целого числа периодов. Отличие вполне видно невооруженным глазом в конце синусоиды. Соответственно по цветам изображены спектры (ДПФ). Амплитудные спектры очень близки между собой. По фазе - есть вопросы. 1. Почему фазовый спектр 2 и 3 сигналов гладкий, а когда на 1 отсчет меньше, чем целое число периодов, то превращается в хрень какую-то. Причем ОДПФ дает исходный сигнал, поэтому вроде как думается, что в расчете ошибок нет. При дальнейшем уменьшении кол-ва отсчетов, т.е. укорочении синуса фазовый спектр снова гладкий. Итого фазовый спектр непонятной формы получается, когда количество отсчетов на 1 меньше, чем целое число ПОЛУпериодов. (на полупериодах тот же эффект повторяется) 2. Вопрос по ОДПФ. Формально ОДПФ дает комплексные отсчеты, но (см. первые три осциллограммы с сигналами, на них ОДПФ тоже есть) при этом RE часть = сигналу, а IM часть = нулю. Однако Если я пропускаю синус через к.л. фильтр, то ОДПФ дает НЕнулевую мнимую часть. Так разве должно быть? Почему так? И что это значит физически? И как правильно сделать, чтобы была нулевая мнимая часть?
0
|
19.09.2024, 10:10 | |
Ответы с готовыми решениями:
35
Преобразование Фурье Преобразование Фурье Дискретное преобразование Фурье Дискретное преобразование Фурье |
5425 / 2778 / 561
Регистрация: 07.11.2019
Сообщений: 4,548
|
|
04.10.2024, 11:04 | 21 |
ViktorArs, фильтровать можно по разному:
Фильтрация во временной области: обычная свертка сигнала с КИХ-фильтром, например. Тут все вещественное, все просто. Фильтрация в частотной области: Делаем ПФ сигнала, делаем ПФ фильтра, перемножаем их, и делаем ОПФ. Теорема о свертке, так это называется. Вот тут и возникают особенности. Например у вас разные длины фильтра и сигнала. И потом, свертка через Фурье - циклическая, поэтому, скорее всего, надо дополнять нулями, если хотим получить нормальный результат. Вот пример на Python: a-сигнал, b-фильтр, и то и другое уже дополнено нулями. Обратите внимание на симметрию действительной и мнимой части Фурье-преобразований и отсутствие (нулевой) мнимой части у результата. Код
In [31]: a=np.array([1, 2,3,1,0,0,0,0]) In [32]: b=np.array([0,.5,.5,0,0,0,0,0]) In [33]: a_fft=np.fft.fft(a) In [34]: a_fft Out[34]: array([ 7. +0.j , 1.70710678-5.12132034j, -2. -1.j , 0.29289322+0.87867966j, 1. +0.j , 0.29289322-0.87867966j, -2. +1.j , 1.70710678+5.12132034j]) In [35]: b_fft=np.fft.fft(b) In [37]: b_fft Out[37]: array([ 1. +0.j , 0.35355339-0.85355339j, -0.5 -0.5j , -0.35355339+0.14644661j, 0. +0.j , -0.35355339-0.14644661j, -0.5 +0.5j , 0.35355339+0.85355339j]) In [38]: c_fft=a_fft*b_fft In [39]: c_fft Out[39]: array([ 7. +0.j , -3.76776695-3.26776695j, 0.5 +1.5j , -0.23223305-0.26776695j, 0. +0.j , -0.23223305+0.26776695j, 0.5 -1.5j , -3.76776695+3.26776695j]) In [40]: np.convolve(a,b ) Out[40]: array([0. , 0.5, 1.5, 2.5, 2. , 0.5, 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ]) In [42]: c=np.fft.ifft(c_fft) In [43]: c Out[43]: array([ 0.00000000e+00+0.j, 5.00000000e-01+0.j, 1.50000000e+00+0.j, 2.50000000e+00+0.j, 2.00000000e+00+0.j, 5.00000000e-01+0.j, 0.00000000e+00+0.j, -2.22044605e-16+0.j])
0
|
123 / 98 / 28
Регистрация: 09.01.2018
Сообщений: 584
|
|
04.10.2024, 15:53 [ТС] | 22 |
Класс!
Вообще я также делаю. Задумка именно такая. Но у меня вылезает мнимая часть равная примерно 20% от действительной. Одно отличие. У меня задана АФЧХ фильтра аналогового. Я из него искусственно делаю АФЧХ цифрового путем создания симметрии. (именно такой ка вы описали). Перемножаю частотные образы сигнала и фильтра, как у вас в примере. И далее ОДПФ. О результате писал. Так можно делать? (я про симметрию)
0
|
5425 / 2778 / 561
Регистрация: 07.11.2019
Сообщений: 4,548
|
|
04.10.2024, 17:34 | 23 |
Вы бы лучше бы пример со своими данными и результатами расчета выложили бы в архиве. Проще будет найти ошибку. Возможно у вас нулевые частоты не совпадают или что-то еще.
0
|
123 / 98 / 28
Регистрация: 09.01.2018
Сообщений: 584
|
|
07.10.2024, 08:26 [ТС] | 24 |
Да. Обязательно. Я просто в выходные вообще не имею возможности к компьютеру подойти. В будни тоже не всегда. А так я обязательно, ближайшее время.
0
|
123 / 98 / 28
Регистрация: 09.01.2018
Сообщений: 584
|
|
08.10.2024, 16:13 [ТС] | 25 |
1. Входной сигнал черный. Красные - ДПФ-ОДПФ входного сигнала. Мнимая часть = 0.
2. 3. АФЧХ Входного сигнала. 5. 6. АФЧХ фильтра. 7. 8. АФЧХ вЫходного сигнала. 4. Выходной сигнал. (видно, что есть мнимая часть)
0
|
5425 / 2778 / 561
Регистрация: 07.11.2019
Сообщений: 4,548
|
|
08.10.2024, 18:33 | 26 |
а можно эти данные не в виде графиков, а в виде файлов с числами?
0
|
123 / 98 / 28
Регистрация: 09.01.2018
Сообщений: 584
|
|
08.10.2024, 21:11 [ТС] | 27 |
См. вложение.
Не в тему: Интересное наблюдение. Установлен архиватор 7z. ПКМ на m-файле = в раскрывающемся меню все как обычно, есть пункт "7z -> запаковать/добавить в архив/ ...". На mat-файле в меню такой пункт отсутствует почему-то.
0
|
5425 / 2778 / 561
Регистрация: 07.11.2019
Сообщений: 4,548
|
|
08.10.2024, 22:02 | 28 |
Сообщение было отмечено ViktorArs как решение
Решение
ViktorArs, у вас проблема с фильтром stfResSpec. Первый элемент должен соответствовать нулевой частоте, второй должен быть комплексно сопряжен с последним, третий - с предпоследним и т.д., см. Фурье от входного сигнала.. А у вас первый сопряжен с последним и т.д.
1
|
5425 / 2778 / 561
Регистрация: 07.11.2019
Сообщений: 4,548
|
|||||||||||
09.10.2024, 10:32 | 29 | ||||||||||
Можно так изменить симметрию, тогда фильтр в временной области не будет комплексным.
Можно так изменить симметрию, тогда фильтр в временной области не будет комплексным.
0
|
123 / 98 / 28
Регистрация: 09.01.2018
Сообщений: 584
|
|
09.10.2024, 12:35 [ТС] | 30 |
Нашел ошибку, где происходит у меня такая кривость. Сделал по вашей рекомендации. Все работает!
Спасибо большое! Добавлено через 1 час 6 минут Где-то в середине темы между делом писал/спрашивал, про то как обстоят дела с физическими фильтрами, а не цифровыми. Там симметрии нет. Получается при ОДПФ мнимая часть всегда будет?
0
|
5425 / 2778 / 561
Регистрация: 07.11.2019
Сообщений: 4,548
|
|
09.10.2024, 12:42 | 31 |
Что значит физическими? Аналоговые фильтры или что-то еще?
0
|
123 / 98 / 28
Регистрация: 09.01.2018
Сообщений: 584
|
|
09.10.2024, 13:19 [ТС] | 32 |
Аналоговые.
Физические - имел ввиду реальные, физически существующие: резисторы, конденсаторы, ОУ (если активные), . . .
0
|
5425 / 2778 / 561
Регистрация: 07.11.2019
Сообщений: 4,548
|
|
09.10.2024, 14:06 | 33 |
ViktorArs, если аналоговые, то понятия ОДПФ для них неприменимо. Но если математически рассматривать отрицательные частоты, то симметрия АЧХ и ФЧХ должна сохраниться, как и в дискретном случае, на мой взгляд. Можно сказать, что аналоговый сигнал будет вести себя подобно дискретному с бесконечно большой частотой дискретизации.
0
|
123 / 98 / 28
Регистрация: 09.01.2018
Сообщений: 584
|
|
09.10.2024, 16:21 [ТС] | 34 |
Спасибо!!!
0
|
123 / 98 / 28
Регистрация: 09.01.2018
Сообщений: 584
|
|
06.11.2024, 11:27 [ТС] | 35 |
Возник другой вопрос. Не стал создавать разные темы, т.к. вероятно вопрос либо очень близкий, либо вообще об одном и том же.
Есть входной сигнал и некий фильтр. Фильтрацию провожу не сверткой сигнала и фильтра, а вычисляю спектр сигнала и АФЧХ фильтра, перемножаю их и произвожу ОДПФ. На рисунке пример. Синусоидальный сигнал длительностью 0,5 мс. К нему добавляю "нулевой хвост" разной длины (верхний график) и делаю преобразование. Pic1 хвост 0,5 мс (длительность сигнала 1,0 мс) Pic2 хвост 1,0 мс (длительность сигнала 1,5 мс) Pic3 хвост 1,5 мс (длительность сигнала 2,0 мс) Pic4 хвост 2,5 мс (длительность сигнала 3,0 мс) На последнем рисунке совмещены Pic1 и Pic4. Pic1: Ощущение, что затухающий "хвост" сигнала, который не поместился на Pic1, продолжился в начало сигнала. Поэтому и амплитуда возрастающей части сигнала больше. Pic4: А вот когда нулей во входном сигнале много и весь "хвост" умещается, то он просто умещается. Так ли это? Что это? С чем связано?
0
|
123 / 98 / 28
Регистрация: 09.01.2018
Сообщений: 584
|
|
06.11.2024, 22:10 [ТС] | 36 |
UPD:
Pic1: Ощущение, что затухающий "хвост" сигнала, который не поместился на Pic1, продолжился в начало сигнала. Поэтому и амплитуда возрастающей части сигнала больше и в начальный момент времени амплитуда (огибающая) начинает расти не с нуля, а уже имеет какое-то значение в начальный (нулевой) момент времени.
0
|
06.11.2024, 22:10 | |
06.11.2024, 22:10 | |
Помогаю со студенческими работами здесь
36
Оконное преобразование Фурье Быстрое преобразование Фурье Дискретное преобразование Фурье Быстрое преобразование Фурье Преобразование Фурье необычного сигнала Обратное быстрое преобразование Фурье Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |