Как найти частоту сигнала матлаб
Перейти к содержимому

Как найти частоту сигнала матлаб

  • автор:

Документация

Преобразование Фурье является инструментом для выполнения частоты и анализа спектра мощности сигналов временной области.

Количества спектрального анализа

Спектральный анализ изучает спектр частоты, содержавшийся в дискретном, однородно выборочных данных. Преобразование Фурье является инструментом, который показывает частотные составляющие времени — или основанный на пробеле сигнал путем представления его в пространстве частоты. В следующей таблице перечислены общие количества, используемые, чтобы охарактеризовать и интерпретировать свойства сигнала. Чтобы узнать больше о преобразовании Фурье, смотрите преобразования Фурье.

Демонстрационная частота (выборки в единицу времени или пробел)

Шаг времени или пространства на выборку

Область значений времени или пространства для данных

Дискретное преобразование Фурье данных (ДПФ)

Частота Найквиста (средняя точка частотного диапазона)

Сигнал с шумом

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

Создайте сигнал с частотами компонента на уровне 15 Гц и 40 Гц, и введите случайный Гауссов шум.

rng('default') fs = 100; % sample frequency (Hz) t = 0:1/fs:10-1/fs; % 10 second span time vector x = (1.3)*sin(2*pi*15*t) . % 15 Hz component + (1.7)*sin(2*pi*40*(t-2)) . % 40 Hz component + 2.5*randn(size(t)); % Gaussian noise;

Преобразование Фурье сигнала идентифицирует свои частотные составляющие. В MATLAB®, fft функция вычисляет преобразование Фурье с помощью алгоритма быстрого преобразования Фурье. Используйте fft вычислить дискретное преобразование Фурье сигнала.

y = fft(x);

Постройте спектр мощности в зависимости от частоты. В то время как шум маскирует частотные составляющие сигнала на основанном на времени пробеле, преобразование Фурье показывает их как скачки в степени.

n = length(x); % number of samples f = (0:n-1)*(fs/n); % frequency range power = abs(y).^2/n; % power of the DFT plot(f,power) xlabel('Frequency') ylabel('Power')

Figure contains an axes object. The axes object contains an object of type line.

Во многих приложениях более удобно просмотреть спектр мощности, сосредоточенный на 0 частотах, потому что это лучше представляет периодичность сигнала. Используйте fftshift функция, чтобы выполнить циклический сдвиг на y , и постройте степень в центре 0.

y0 = fftshift(y); % shift y values f0 = (-n/2:n/2-1)*(fs/n); % 0-centered frequency range power0 = abs(y0).^2/n; % 0-centered power plot(f0,power0) xlabel('Frequency') ylabel('Power')

Figure contains an axes object. The axes object contains an object of type line.

Звуковой сигнал

Можно использовать преобразование Фурье, чтобы анализировать спектр частоты аудиоданных.

Файл bluewhale.au содержит аудиоданные от Тихоокеанской вокализации голубого кита, зарегистрированной подводными микрофонами недалеко от берегов Калифорнии. Файл от библиотеки вокализаций животных, обеспеченных Программой исследований Биоакустики Корнелльского университета.

Поскольку вызовы голубого кита являются настолько низкими, они являются едва слышимыми людям. Масштаб времени в данных сжат на коэффициент 10, чтобы повысить тангаж и выполнить более явно слышимый вызов. Считайте и постройте аудиоданные. Можно использовать команду sound(x,fs) слушать аудио.

whaleFile = 'bluewhale.au'; [x,fs] = audioread(whaleFile); plot(x) xlabel('Sample Number') ylabel('Amplitude')

Figure contains an axes object. The axes object contains an object of type line.

Первый звук является «трелью», сопровождаемой тремя «стонами». Этот пример анализирует один стон. Задайте новые данные, которые приблизительно состоят из первого стона, и откорректируйте данные времени с учетом factor-10 ускорения. Постройте усеченный сигнал в зависимости от времени.

moan = x(2.45e4:3.10e4); t = 10*(0:1/fs:(length(moan)-1)/fs); plot(t,moan) xlabel('Time (seconds)') ylabel('Amplitude') xlim([0 t(end)])

Figure contains an axes object. The axes object contains an object of type line.

Преобразование Фурье данных идентифицирует частотные составляющие звукового сигнала. В некоторых приложениях, что процесс большие объемы данных с fft , распространено изменить размер входа так, чтобы количество отсчетов было степенью 2. Это может сделать расчет преобразования значительно быстрее, особенно для объемов выборки с большими простыми множителями. Задайте новую длину сигнала n это — степень 2, и используйте fft функция, чтобы вычислить дискретное преобразование Фурье сигнала. fft автоматически заполняет исходные данные нулями, чтобы увеличить объем выборки.

m = length(moan); % original sample length n = pow2(nextpow2(m)); % transform length y = fft(moan,n); % DFT of signal

Настройте частотный диапазон из-за фактора ускорения, и вычислите и постройте спектр мощности сигнала. График показывает, что стон состоит из основной частоты приблизительно 17 Гц и последовательности гармоник, где вторая гармоника подчеркнута.

f = (0:n-1)*(fs/n)/10; power = abs(y).^2/n; plot(f(1:floor(n/2)),power(1:floor(n/2))) xlabel('Frequency') ylabel('Power')

Figure contains an axes object. The axes object contains an object of type line.

Смотрите также

Похожие темы

  • Преобразования Фурье
  • 2D преобразования Фурье

Открытый пример

У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?

Документация MATLAB

Поддержка

  • MATLAB Answers
  • Помощь в установке
  • Отчеты об ошибках
  • Требования к продукту
  • Загрузка программного обеспечения

© 1994-2021 The MathWorks, Inc.

  • Условия использования
  • Патенты
  • Торговые марки
  • Список благодарностей

Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика

1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.

4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.

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

Нахождения частоты сигнала

Author24 — интернет-сервис помощи студентам

Извлечение сигнала заданной частоты из более сложного сигнала
Нужен совет. Предположим, у меня есть некий сложный сигнал. Я знаю, что в него входит синусоида.

Перенос частоты сигнала
Доброго времени суток! Возникла необходимость смоделировать в симулинке перенос частоты скажем.

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

Анализ сигнала и разложение его на частоты
Доброго времени суток. Есть сигнал, записанный в wav файл. После Фурье преобразования получаю.

Эксперт по математике/физике

3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365

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

Регистрация: 02.04.2018
Сообщений: 21
А как тогда точно найти частоту?

Эксперт по математике/физике

3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365

Многое зависит от сигнала.
Если у Вас сигнал почти чистая синусоида, то надо определить период и по нему частоту.
Для повышения точности если есть возможность определяют длительность сразу нескольких периодов и затем для определения периода делят на число периодов.
При определении периодов можно использовать расстояние между максимумами / минимумами или пересечение средней линии синусоиды.

Регистрация: 02.04.2018
Сообщений: 21

Сигнал сгенерирован по принципу DTMF , там 2 синусоиды высокой и низкой частоты, мне нужно определить каждую из этих частот

Добавлено через 15 минут
вот у меня уже есть такой код, в котором я разбиваю код на части и достаточно точно вижу частоты, которые мне нужны, как я могу из этого графика найти частоту ?. Я понимаю, что мне не хватает каких-то элементарных знаний в языке матлаб, но к сожалению так устроена учеба в моем универе(

Спасибо за помощь!

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
[sig1,Fs]=audioread('9234567.wav'); NFFT=512; WINDOW=NFFT; NOVERLAP=NFFT/2; t1=0:Fs/NFFT:Fs/2-Fs/NFFT; subplot(2,1,1) X1 = fft(sig1,NFFT); stem(t1,1/(NFFT/2)*abs(X1(1:NFFT/2)),'.'); subplot(2,1,2) nbWindows = floor(length(sig1)/ NFFT); for i=1:nbWindows coeffs = fft(sig1((i-1)*NFFT+1:i*NFFT)); plot(abs(coeffs(1:NOVERLAP))); end; f = (Fs/NFFT)*(0:NFFT-1); plot(f,abs(X1)); peaks=findpeaks(abs(X1)); axis([500 1500 0 100]) xlabel('f(Hz)') title('Power')

Measurements with MATLAB

В этом вебинаре будет сделан обзор основных возможностей MATLAB в области цифровой обработки сигналов.

Первая часть рассказа будет посвещена спектральному анализу и проектированию фильтров. Особое внимание при этом будет уделено возможностям среды, способствующим скорейшему ее освоению пользователями, плохо знакомыми с MATLAB.

Затем мы рассмотрим процесс взаимодействия MATLAB с измерительным оборудованием и платами сбора данных, что позволяет унифицировать и автоматизировать задачи связанные с тестированием устройств и измерениями сигналов. И в завершении, обратим внимание на способы организации потоковой обработки данных в MATLAB.

Будут освещены следующие аспекты моделирования и реализации систем ЦОС:

  • Разработка цифровых фильтров и спектральный анализ в MATLAB;
  • Работа с измерительным оборудованием и платами сбора данных;
  • Потоковая обработка данных.

Вебинар будет интересен алгоритмистам в области цифровой обработки сигналов, инженерам, работающим с измерительным оборудованием и руководителям проектов.

Recorded: 15 May 2014

Визуализация сигнала и измерения в MATLAB

В этом примере показано, как визуализировать и измерить сигналы во время и частотный диапазон в MATLAB® с помощью осциллографа времени и спектра анализатор.

Визуализация сигнала во временном и частотном диапазонах

$N(0,0.0025)$

Создайте синусоиду с частотой 100 Гц, произведенных на уровне 1 000 Гц. Сгенерируйте пять секунд синусоиды на 100 Гц с аддитивным белым шумом во вторых интервалах. Отправьте сигнал в осциллограф времени и спектр анализатор для отображения и измерения.

SampPerFrame = 1000; Fs = 1000; SW = dsp.SineWave('Frequency',100,. 'SampleRate',Fs,. 'SamplesPerFrame',SampPerFrame); TS = timescope('SampleRate',Fs,. 'TimeSpanSource','property',. 'TimeSpan',0.1,. 'YLimits',[-2, 2],. 'ShowGrid',true); SA = dsp.SpectrumAnalyzer('SampleRate',Fs); tic; while toc < 5 sigData = SW() + 0.05*randn(SampPerFrame,1); SA(sigData); TS(sigData); end release(TS) release(SA)

Измерения временного интервала

Используя осциллограф времени, можно сделать много измерений сигнала.

Следующие измерения доступны:

  • Измерения курсора — помещают экранные курсоры на все отображения осциллографа.
  • Статистика сигнала — отображает максимум, минимум, различие от пика к пику, среднее значение, медиану, значения RMS выбранного сигнала, и времена, в которые происходят максимум и минимум.
  • Двухуровневые Измерения — отображают информацию о переходах выбранного сигнала, аберрациях и циклах.
  • Пиковое Средство поиска — отображает максимумы и времена, в которые они происходят.

Можно включить и отключить эти измерения от вкладки Measurements.

Чтобы проиллюстрировать использование измерений в осциллографе времени, симулируйте сигнал ECG. Используйте ecg функция, чтобы сгенерировать 2 700 выборок сигнала. Используйте фильтр Savitzky-Golay, чтобы сглаживать сигнал и периодически расширять данные, чтобы получить приблизительно 11 периодов.

x = 3.5*ecg(2700).'; y = repmat(sgolayfilt(x,0,21),[1 13]); sigData = y((1:30000) + round(2700*rand(1))).';

Отобразитесь сигнал во время определяют объем и используют Пиковые измерения Средства поиска и Data Cursor. Примите частоту дискретизации 4 кГц.

TS_ECG = timescope('SampleRate',4000,. 'TimeSpanSource','Auto',. 'ShowGrid', true); TS_ECG(sigData); TS_ECG.YLimits = [-4, 4];

Пиковые измерения

Включите Пиковые Измерения из вкладки Measurements путем нажатия соответствующей кнопки панели инструментов. Панель Peaks появляется в нижней части окна scope времени. Для свойства Num Peaks введите 8 и нажмите Enter. В панели Peaks осциллограф времени отображает список 8 пиковых амплитудных значений и времена, в которые они происходят.

Существует постоянная разница во времени 0,675 секунд между каждым heartbeat. Поэтому сердечный ритм сигнала ECG дан следующим уравнением:

$\frac<60\,<\rm sec/min></p>
<p>>> =
88.89\,$» /></p><div class='code-block code-block-15' style='margin: 8px 0; clear: both;'>
<!-- 15theinternet -->
<script src=

Измерения курсора

$\Delta T$

Включите Измерения Курсора из вкладки Measurements путем нажатия соответствующей кнопки панели инструментов. Курсоры появляются на осциллографе времени с полем, показывающим изменение вовремя и значение между этими двумя курсорами. Можно перетащить курсоры и использовать их, чтобы измерить время между событиями в форме волны. Когда вы перетаскиваете курсор, время, значение в курсоре появляется. Этот рисунок показывает, как использовать курсоры, чтобы измерить временной интервал между peaks в форме волны ECG. Измерение в поле курсора демонстрирует, что временной интервал между двумя peaks составляет 0,675 секунды, соответствуя сердечному ритму 1,482 Гц или 88,9 ударам/min.

Статистика сигнала и двухуровневые измерения

Можно также выбрать Signal Statistics и различные двухуровневые измерения от вкладки Measurements. Статистика сигнала может использоваться, чтобы определить минимальные и максимальные значения сигнала, а также другие метрики как от пика к пику, среднее значение, медиана и значения RMS. Двухуровневые измерения могут использоваться, чтобы определить информацию о повышении и падающих переходах, аберрациях перехода, перерегулировании и информации об отклонении от номинала, времени урегулирования, ширине импульса и рабочем цикле. Чтобы читать больше об этих измерениях, смотрите, Конфигурируют Time Scope Объект MATLAB.

Измерения частотного диапазона

Этот раздел объясняет, как сделать измерения частотного диапазона со спектром анализатор.

Спектр анализатор обеспечивает следующие измерения:

  • Измерения курсора — устанавливают курсоры на отображение спектра.
  • Пиковое Средство поиска — отображает максимумы и частоты, на которых они происходят.
  • Измерения канала — отображают занимаемую полосу и измерения канала ACPR.
  • Измерения искажения — отображают измерения искажения гармонической и интермодуляции.
  • Измерения CCDF — отображают дополнительные измерения кумулятивной функции распределения.

Можно включить и отключить эти измерения от спектра панель инструментов анализатора или в меню Tools> Measurements.

Измерения искажения

Чтобы проиллюстрировать использование измерений со спектром анализатор, создайте синусоиду на 2,5 кГц, произведенную на уровне 48 кГц с аддитивным белым Гауссовым шумом. Оцените старший полином (9-я степень) в каждом значении сигналов, чтобы смоделировать нелинейное искажение. Отобразите сигнал в спектре анализатор.

Fs = 48e3; SW = dsp.SineWave('Frequency',2500,. 'SampleRate',Fs,. 'SamplesPerFrame',SampPerFrame); SA_Distortion = dsp.SpectrumAnalyzer('SampleRate',Fs,. 'PlotAsTwoSidedSpectrum',false); y = [1e-6 1e-9 1e-5 1e-9 1e-6 5e-8 0.5e-3 1e-6 1 3e-3]; tic; while toc < 5 x = SW() + 1e-8*randn(SampPerFrame,1); sigData = polyval(y, x); SA_Distortion(sigData); end clear SA_Distortion;

Включите гармонические измерения искажения путем нажатия на соответствующий значок на панели инструментов или путем нажатия на пункт меню Tools> Measurements> Distortion Measurements. В Измерениях Искажения измените значение для Цифры. Гармоники к 9 и проверка флажок Label Harmonics. В панели вы видите значение основного принципа близко к 2 500 Гц и 8 гармоник, а также их ОСШ, SINAD, THD и значений SFDR, на которые ссылаются относительно основной выходной мощности.

Пиковое средство поиска

Можно отследить изменяющиеся во времени спектральные компоненты при помощи Пикового диалогового окна измерения Средства поиска. Можно показать и опционально пометить до 100 peaks. Можно вызвать Пиковое диалоговое окно Средства поиска от пункта меню Tools> Measurements> Peak Finder, или путем нажатия на соответствующий значок на панели инструментов.

$N(0,10^<-8></p>
<p>Чтобы проиллюстрировать использование <strong>Пикового Средства поиска</strong>, создайте сигнал, состоящий из суммы трех синусоид с частотами 5, 15, и 25 кГц и амплитудами 1, 0.1, и 0.01 соответственно. Данные производятся на уровне 100 кГц. Добавьте )$» /> белый Гауссов шум в сумму синусоид и отобразите односторонний спектр мощности в спектре анализатор.</p>
<pre>Fs = 100e3; SW1 = dsp.SineWave(1e0,5e3,0,<span style=. 'SampleRate',Fs,. 'SamplesPerFrame',SampPerFrame); SW2 = dsp.SineWave(1e-1,15e3,0,. 'SampleRate',Fs,. 'SamplesPerFrame',SampPerFrame); SW3 = dsp.SineWave(1e-2,25e3,0,. 'SampleRate',Fs,. 'SamplesPerFrame',SampPerFrame); SA_Peak = dsp.SpectrumAnalyzer('SampleRate',Fs,. 'PlotAsTwoSidedSpectrum',false); tic; while toc < 5 sigData = SW1() + SW2() + SW3() + 1e-4*randn(SampPerFrame,1); SA_Peak(sigData); end clear SA_Peak;

Позвольте Пиковому Средству поиска пометить три частоты синусоиды. Значения частоты и степени в dBm отображены в Пиковой панели Средства поиска. Можно увеличить или сократить максимальное число peaks, задать минимальное пиковое расстояние и изменить другие настройки от панели Настроек в Пиковой панели Измерения Средства поиска.

Чтобы узнать больше об использовании измерений со спектром анализатор, смотрите Спектр пример Измерений Анализатора.

Открытый пример

У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *