Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 2

Преобразование Фурье

18.09.2013, 11:34. Показов 4524. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Подскажите, для того чтобы корректно вывести частотный спектр сигнала, его частота дискретизации должна быть больше частоты сигнала?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.09.2013, 11:34
Ответы с готовыми решениями:

Преобразование Фурье
Всем привет! Помогите, пожалуйста. У меня имеется данный сигнал. Мне нужно получить из него преобразование Фурье в MATLAB. я много разных...

Преобразование Фурье
Здравствуйте! Помогите пожалуйста разобраться с преобразованием Фурье и получить "адекватное" АЧХ. clear all% Очистка памяти ...

Преобразование Фурье
Здравствуйте! Необходимо провернуть преобразование Фурье модельного сигнала y=50 * sin(2*Pi*50); Насколько я понимаю делается это...

4
 Аватар для lomt
454 / 280 / 13
Регистрация: 13.11.2012
Сообщений: 588
Записей в блоге: 1
18.09.2013, 12:24
В общем случаи для отсутствия наложений и корректного восстановления сигнала по его отсчётам максимальная частота сигнала не должна превышать частоты Найквиста, то есть половины частоты дискретизации. Это следует из теоремы Котельникова. Подробно можно почитать в книге Сергиенко "Цифровая обработка сигналов", есть ещё неплохие книги у Марпла мл. А для самого первого знакомства многие советуют Юкио Сато "Обработка сигналов"
1
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 2
18.09.2013, 14:18  [ТС]
lomt, спасибо за ответ.
Можно уточнить на примере?

Пусть:
Fmax = 5 ГГц

Тогда частота дискретизации должна быть, как минимум:
Fd = 2*Fmax = 10 ГГц

Подскажите, а можно ли воспользоваться БПФ так, чтобы посмотреть на частотный спектр сигнала в конкретном диапазоне, при этом не просчитывая ненужные частоты?
0
Эксперт по электронике
 Аватар для R2D2
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,488
18.09.2013, 14:59
Что бы
Цитата Сообщение от lunkhead Посмотреть сообщение
посмотреть на частотный спектр сигнала в конкретном диапазоне, при этом не просчитывая ненужные частоты
и (уж тем более) учитывая это:
Цитата Сообщение от lunkhead Посмотреть сообщение
Fmax = 5 ГГц
Вам, товарищ придется не хило вникнуть в теорию преобразования Гильберта.
Читайте (к примеру) у того же Сергиенка А.Б. параграф "квадратурная дискретизация узкополосных сигналов".

Не по теме:

Успехов:) Если что - пишите))

1
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
19.09.2013, 11:27
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от lunkhead Посмотреть сообщение
посмотреть на частотный спектр сигнала в конкретном диапазоне, при этом не просчитывая ненужные частоты?
если спектр нужно расчитывать на коротком интервале (короче чем log2(N)), используйте алгоритм Герцеля для преобразования фурье (в матлабе функция goertzel)

Добавлено через 18 часов 2 минуты
попробовал для интереса потестить данную функцию и получил неутешительный результат Дело как известно, не только в правильном выборе аглоритма, но и в оптимальности кода, который его реализует. Функция fft в матлабе рулит(точнее ребята из MIT которые сделали библиотеку fftw), а матлабовская функция goertzel как раз наоборот, работает очень медленно. Использовать ее разумно наверно только если фрагмент намного меньше длины окна fft, 2-3 отсчета.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
clear all; close all; clc;
 
N = 2^14;   % log2 = 14
x = 0.1*sin(2*pi*(0:N-1)/20) + 0.5*randn(1, N);
frameLen = 10; % <log2(N)
 
figure;
disp('fft:')
t = tic;
SFFT = abs(fft(x));
toc(t)
beginSample = 815;
plot(SFFT(beginSample+1:beginSample+frameLen), 'k'); hold on;
 
s = zeros(1, frameLen);
disp('dft:')
t = tic;
for n=0:frameLen-1
    s(n+1) = 0;
    for k=0:N-1
        s(n+1) = s(n+1) + x(k+1)*exp(-2i*pi*k*(n+beginSample)/N);
    end
end
toc(t)
plot(abs(s));
 
S = zeros(1, frameLen);
v1=0; v2=0; v3=0;
disp('goertzel:')
t = tic;
for k=0:frameLen-1
    idx = k+beginSample;
    wr = cos(2*pi*idx/N);
    wi = sin(2*pi*idx/N);
    a = 2*wr;
 
    v1 = x(1);
    v2 = x(2) + a*v1;
 
    for i = 3:N-1
        v3 = x(i) + a*v2 - v1;
        v1 = v2;
        v2 = v3;
    end
    v3 = x(N) + a*v2 - v1;
    S(k+1) = complex(v3*wr-v2, v3*wi);
end
toc(t)
plot(abs(S), 'r')
 
disp('goertzel matlab mex:')
t = tic;
S = goertzel(x, beginSample+1:beginSample+frameLen);
toc(t)
plot(abs(S), 'g')
вот результаты теста на моем довольно стареньком компе:
fft:
Elapsed time is 0.002897 seconds.
dft:
Elapsed time is 0.064944 seconds.
goertzel:
Elapsed time is 0.004947 seconds.
goertzel matlab mex:
Elapsed time is 0.048774 seconds.
посмотрите кому не будет лень, может я где ошибся, потому что результат довольно странный...

Добавлено через 41 минуту
все становится на места если использовать очень большие размеры. Собственно для них данная функция и применяется. Там матлабовской goertzel нет равных...
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.09.2013, 11:27
Помогаю со студенческими работами здесь

Преобразование Фурье
Здравствуйте. Как разложить функцию в ряд Фурье (тригонометрическая, комплексная формы) и нарисовать спектры(амплитудный,...

Преобразование Фурье
Добрый день.Помогите. Нужна помощь нужно сделать преобразование Фурье. Нам дана таблица 1 столбец значения дискретизации, 8 столбцов это...

Обратное преобразование Фурье
Выполняю прямое ПФ, потом прореживаю 0 до размерности обратного ПФ. Проблема в том, что после обратного ПФ я получаю комплексные числа,...

Дискретное преобразование Фурье
Помогите пожалуйста! В задаче нужно найти среднее значение сигнала, использую фрагмент см. рис. На рис. показан неполный сигнал.

Быстрое преобразование Фурье
Доброго времени суток. Есть такая задача - даны два сигнала. Обычные сигналы синуса по времени. Нужно построить их взаимный спектр. Это у...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru