Список использованных источников

 

1. Сергиенко А. Б. Цифровая обработка сигналов: Учебник для вузов. – С-Пб.: Питер, 2004.

2. Расчет фильтра Чебышёва [Электронный ресурс] / http:// dsplib.ru//– Режим доступа– http://www.dsplib.ru/content/filters/ch4/ch4.html - свободный.

3. Преобразование ФНЧ-ПВ и ФНЧ-РФ [Электронный ресурс] / http:// dsplib.ru//– Режим доступа– http://www.dsplib.ru/content/filters/ch8/ch8.html - свободный.

 

 

Приложение А

 

#для суммы синусоид

importmatplotlib.pyplotasplt

importnumpy as np

importpylab

a=(1,-5.5480818959417007665,14.832765013008965583,-24.401212887072047003,26.877615171722826134,-20.239082032698278678,10.203720545190539504,-3.1654121040568537528,0.47352146693640685484)

b=(0.68813152878453683225,-4.2089191339831740913,12.406385625670294764,-22.467975325901266009,27.198587887949074885,-22.467975325901266009,12.406385625670294764,-4.2089191339831740913,0.68813152878453683225)

F1=1000

F2=1200

F3=2000

fd=11025

w1=2*np.pi*F1

w2=2*np.pi*F2

w3=2*np.pi*F3

n = np.arange(0,fd,1)

t=n/fd

s1 = np.sin(w1*t)

s2 = np.sin(w2*t)

s3 = np.sin(w3*t)

s=s1+s2+s3

Y=np.zeros(len(s))

N=4

x=np.zeros(N+1)

y=np.zeros(len(s))

for m in range (0,int(len(s))):

for k in range(0,N+1):

x[k]=b[k]*s[k-m]

if m>5:

for k in range(1,N+1):

y[k]=a[k]*y[k-m]

       q=sum(x)

       e=sum(y)

       Y[m]=q-e

else:

   q=sum(x)

   e=0

   Y[m]=q-e

Sp=np.fft.fft(Y)

pylab.xlim(0,3000)

plt.plot(abs(Sp))

plt.show()

 

 

#длятреугольныхимпульсов

importmatplotlib.pyplot as plt

importnumpy as np

a=(1,-5.5480818959417007665,14.832765013008965583,-24.401212887072047003,26.877615171722826134,-20.239082032698278678,10.203720545190539504,-3.1654121040568537528,0.47352146693640685484)

b=(0.68813152878453683225,-4.2089191339831740913,12.406385625670294764,-22.467975325901266009,27.198587887949074885,-22.467975325901266009,12.406385625670294764,-4.2089191339831740913,0.68813152878453683225)

u=np.linspace(0,1,5)

u=u[1]-u[0]

Q=np.append(np.linspace(0+u,1,5,np.linspace(1-u,0,5))

Q2=1102*list(Q)

Y=np.zeros(len(Q2))

N=4

x=np.zeros(N+1)

y=np.zeros(len(Q2))

for m in range(0, int(len(Q2))):

     for k in range(0,N+1):

              x[k]=b[k]*Q2[k-m]       

     if (m>N+1):

              for k in range(1,(N+1)):

                        y[k]=a[k]*y[k-m]

                        q=sum(x)

                        e=sum(y)

                        Y[m]=q-e

     else:

              Y[m]=sum(x)

z=np.fft.fft(Y)

plt.plot(abs(z))

plt.show()

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: