На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
  
> Проблемы со спектром продолжаются , DSP
    Получаю спектр сигнала следующим образом:

    M := Round(N/2)+1; //N - кол-во отсчетов
    SetLength(re, M);
    for i := 0 to M-1 do
    re[i] := 0;
    for i := 0 to M-1 do
    begin
    SumRe := 0;
    SumIm := 0;
    arg := 2 * Pi * i /N;
    for k := 0 to N-1 do
    begin
    SumRe := SumRe + signal[k] * cos(arg*k); //signal - массив отсчетов сигнала
    SumIm := SumIm - signal[k] * sin(arg*k);
    end;
    re[i] := Sqrt(Power(SumRe,2) + Power(SumIm,2)) / M;
    end;

    Проверял я работоспособность этого просто, вместо signal[k], ставил (Amp * Sin(2 * Pi * fs * k / fd)), где fs - част. сигнала, fd - част. дискретизации. Таким образом я должен был получить один пик величиной Amp на частоте fs. Но, в процессе эксперимента, выяснилось, что такой результат получается только тогда, когда кол-во отсчетов N кратно fd. В других случаях вокруг пика появляются левые частоты и амплетуда не верна. Я в DSP не силен, может это так и должно быть. Или может это связанно с характером сигнала (скажем с тем что он периодический)? Объясните.
    Проблема состоит в том, что мне надо нарисовать спектр для выбранной части сигнала, т.е. кол-во отсчетов - произвольно, да и сигнал непериодический. Если я повторял сигнал или дополнял нулями выборку до нужного кол-ва, сами понимаете, в спектре появлялись неточности. Тем более что fd обычно дробная. Как в таких ситуациях спектр получают???
    Сообщение отредактировано: Dimand -
      Попробуй плавно менять количество отсчетов(ДПФ позволяет)
      Но это поможет если сигнал- 1 частота + ее гармоники.
      А еще исползуют окна Хеминга, Хеннинга и еще кого-нить на Х... biggrin.gif
      Сообщение отредактировано: Alexei -
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0351 ]   [ 15 queries used ]   [ Generated: 3.05.24, 05:24 GMT ]