У меня есть функция, которая в основном воссоздает команду freqz в matlab. Я выяснил, как построить всю трансформацию моего частотного отклика, но мне нужно только половину его, и мне нужно нормализовать его от pi до 1 (где 0: pi представляет мою ось x, и я хочу, чтобы это 0: 1). Код здесь:Matlab Восстанавливая freqz, нормализуя ось x и получая половину графика
function freqrespplot(b, a)
hb = fft(b,512);
ha = fft(a,512);
magh = (abs(hb) ./ abs(ha));
angh = angle(hb ./ ha);
x = linspace(0,2*pi, 512);
subplot(2,1,1);
plot(x,magh,'g');
subplot(2,1,2);
plot(x,angh,'r');
end
В примере б = [1 2 2], а = [0 1 0,8], участки, такие как следующие:
freqrespplot ([1 2 2], [0 1 .8]); Магнитуда
и мой соответствующий фазовый участок
Я хочу, чтобы ось х (омега), чтобы перейти от 0 до 1, в обоих случаях, и соответствуют 0 до пи, принимая только половину граф, как это возможно, если:
Что случилось с replotting самого с помощью пользовательских й координат осей и кадрирования у-данных ? – krisdestruction
Пожалуйста, также разместите образцы входных данных или пример игрушки, чтобы помочь воссоздать ваши сюжеты. – krisdestruction
Я не уверен, как получить нормированную ось x: 0 по оси x, без изменения размера графика (округляя его горизонтально вдоль оси). То, что я хотел бы сделать, - это посмотреть только 0 на pi текущего изображения и установить его на нормированной оси. Образцы входных данных размещены, спасибо за это хедз-ап! – MikaelCMiller