Как мне поступить с NaN, возвращаемым freqz в R?

Я работаю над методом оптимизации для разработки цифровых фильтров и использования freqz, от signal пакет, чтобы оценить кандидатов. Тем не менее, я получаю NaN's на ответ, данный freqz, Это большая проблема для меня, потому что мне нужно вычислить среднеквадратичную ошибку этого ответа.

Фильтр ниже является примером этого. Самым первым пунктом ответа является NaN,

Код R:

b <- c(-100.00000, 62.92546, -73.64395, -82.57045, 35.11388, -100.00000)
a <- c(100, 100, 100, -100, -100, -100)
r <- freqz(b,a)
r$h[1]

Запустив эквивалентный код в Matlab я получаю -Inf, хоть. Что очень хорошо для моей цели.

Код Matlab:

b = [-100.00000, 62.92546, -73.64395, -82.57045, 35.11388, -100.00000]
a = [100, 100, 100, -100, -100, -100]
[h, ~] = freqz(b,a)
h(1)

Насколько я понимаю, так как freqz делает свои расчеты на основе формулы ниже, что должно происходить, что у нас есть значение, близкое к нулю на знаменателе (обратите внимание, что коэффициенты в a сложенные вместе равны нулю) но вместо +/-Inf (как делает Matlab) он по ошибке возвращается NaN,

Суть в том, что я думаю, что он должен дать тот же ответ, что и Matlab.


Работа вокруг (с бутами)

Пока это то, что я сделал в качестве обходного пути:

r <- freqz(b,a)
if(anyNA(hw$h)){
  r$h[is.nan(r$h)] <- Inf
}

Это решает мою проблему, но мне интересно, есть ли лучший способ сделать это или я должен считать это ошибкой и сообщать об этом, я был бы рад помочь. Возможно, это уже было решено (если это реальная ошибка).


Дополнительная информация

В случае, если это уместно, вот моя информация об окружении разработчика:

platform       x86_64-apple-darwin13.4.0   
arch           x86_64                      
os             darwin13.4.0                
system         x86_64, darwin13.4.0        
status                                     
major          3                           
minor          2.3                         
year           2015                        
month          12                          
day            10                          
svn rev        69752                       
language       R                           
version.string R version 3.2.3 (2015-12-10)

0 ответов

Другие вопросы по тегам