Расчёт дисткретной свёртки и частотных характеристик в Matlab

1. Вводим значения отсчетов импульсной характеристики

>> h=[3 4 8];

2. Вводим значения отсчетов сигнала:

>> x=[3 2 -2 1 -1];

3. Вычисляем линейную свертку:

>> y1=conv(h,x)
y1 = 9 18 26 11 -15 4 -8

4. Определяем общий период для вычисления циклической свертки:

N1 = 3
N2 = 5
N= 5

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

5. Вычисляем циклическую свертку:

>> ylc=conv(h,x); for i=1:N-1,yc(i)=ylc(i)+ylc(N+i);end,yc(N)=ylc(N)
yc = 13 10 26 11 -15

6. Вычисляем частотную характеристику:

Сначала формируем сетку для проведения расчётов:

>> w=[0:pi/12:2*pi];f=w/(2*pi);
>> H=freqz(x,b,w)

а) вещественная ЧХ.

>> R=real(H)

б) мнимая

>>I=imag(H)

7. Для получения АЧХ системы:

>> A=abs(H)

8. Вычисляем ФЧХ в градусах

>> Phi=angle(H)*180/pi

Вот как выглядит график этих характеристик:

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий

  1. lamazavr

    Подробнее о линейной свертке

    Ответить