функция спектрометра matlab [дубликат]

У вас будет трудное время иметь дело с международными номерами с одним / простым регулярным выражением, см. этот пост о трудностях международных (и даже северных) телефонных номеров.

Вы хотите проанализировать первые несколько цифр, чтобы определить, что такое код страны, а затем действовать по-разному в зависимости от страны.

Кроме того - в списке, который вы указали, не содержится другой общий формат США - оставляя начальный 1. Большинство сотовых телефонов в США не требуют этого, и он начнет дезориентировать молодое поколение, если только они не набрали на международном уровне.

Вы правильно определили, что это сложная проблема ...

-адам

8
задан rayryeng 28 March 2015 в 23:52
поделиться

1 ответ

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

Спектрограмма представляет собой визуальное представление Short-Time Fourier Transform . Подумайте об этом, взяв куски входного сигнала и применив локальное преобразование Фурье на каждом фрагменте. Каждый кусок имеет заданную ширину, и вы применяете преобразование Фурье к этому фрагменту. Вы должны принять во внимание, что каждый кусок имеет связанное распределение частот. Для каждого фрагмента, который центрируется в определенный момент времени в вашем сигнале времени, вы получаете кучу частотных компонентов. Сбор всех этих частотных составляющих на каждом куске и построение всего вместе - это, по сути, спектрограмма.

Спектрограмма представляет собой 2D визуальную карту тепла, где горизонтальная ось представляет время сигнала, а вертикальная ось представляет собой частотную ось. То, что визуализируется, - это изображение, в котором более темные цвета означают, что для определенного момента времени и конкретной частоты, чем ниже по частоте компонент частоты, тем темнее цвет. Аналогичным образом, чем выше по величине компонент частоты, тем легче цвет.

Вот один прекрасный пример спектрограммы:

[/g4]

Источник: Википедия

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


Итак! ... теперь вы вооружены этим, давайте перейдем к тому, как работает MATLAB членов функции и ее параметров. Способ, которым вы вызываете spectrogram , соответствует этой версии функции:

spectrogram(x,window,noverlap,nfft,fs) 

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

  • x - это входной сигнал во временной области, который вы хотите найти спектрограмму. Это не может быть намного проще. В вашем случае сигнал, который вы хотите найти спектрограмму, определяется в следующем коде:
    N=5000;
    phi = (rand(1,N)-0.5)*pi;
    a = tan((0.5.*phi));
    i = 2.*a./(1-a.^2);
    
    Здесь i - это сигнал, который вы хотите найти спектрограмму.
  • window - Если вы помните, мы разложим изображение на куски, и каждый кусок имеет указанную ширину. window определяет ширину каждого фрагмента в терминах выборок. Поскольку это сигнал дискретного времени, вы знаете, что этот сигнал был выбран с определенной частотой дискретизации и периодом выборки. Вы можете определить, насколько велико окно в терминах выборок: window_samples = window_time/Ts Ts - время выборки вашего сигнала. Установка размера окна на самом деле очень эмпирическая и требует много экспериментов. В основном, чем больше размер окна, тем лучше разрешение по частоте, которое вы получаете, когда вы захватываете больше частот, но локализация времени оставляет желать лучшего. Аналогичным образом, чем меньше размер окна, тем лучше локализация у вас есть во времени, но вы не получите такой большой разницы в частоте. У меня нет никаких предложений о том, какой самый оптимальный размер ... вот почему вейвлеты предпочтительнее, когда речь идет о разложении по частоте. Для каждого «куска» куски разлагаются на более мелкие куски динамической ширины, поэтому вы получаете смесь хорошей локализации времени и частоты.
  • noverlap. Еще один способ обеспечить хорошую локализацию частоты - это то, что куски перекрываются. Правильный спектрограмм гарантирует, что каждый кусок имеет определенное количество выборок, которые перекрываются для каждого фрагмента, а noverlap определяет, сколько выборок перекрывается в каждом окне. Значение по умолчанию составляет 50% от ширины каждого фрагмента.
  • nfft - Вы по существу используете БПФ каждого фрагмента. nfft сообщает вам, сколько очков FFT нужно вычислить за кусок. Число точек по умолчанию самое большое из 256 или floor(log2(N)), где N - длина сигнала. nfft также дает оценку того, насколько мелкозернистым будет разрешение по частоте. Более высокое число точек БПФ даст более высокое разрешение по частоте и, таким образом, покажет мелкозернистые детали вдоль оси частот спектрограммы.
  • fs - Частота дискретизации вашего сигнала. Значение по умолчанию - 1 Гц, но вы можете переопределить это значение независимо от частоты дискретизации вашего сигнала.

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


Удачи!

21
ответ дан Community 21 August 2018 в 14:02
поделиться
  • 1
    Это отличный ответ. Я просто добавлю, что nfft дает оценку того, насколько мелкозернистым будет разрешение по частоте. Более высокое число точек БПФ даст более высокое разрешение по частоте, показывая мелкозернистые детали вдоль оси частот спектрограммы при визуализации. – AruniRC 15 August 2016 в 16:01
  • 2
    @AruniRC Это очень верно. Я вложу это. Спасибо! – rayryeng 15 August 2016 в 16:09
  • 3
    замечательный ответ! – angryip 22 March 2018 в 19:28
Другие вопросы по тегам:

Похожие вопросы: