Jump to content
    

Просьба (коэффициенты для ких-фильтра)

Нужны целочисленные коэффициенты для децимирующего и интерполирующего  ких-фильтров (коэффициент интерполяции/децимации 2), размерностью  18 бит, количеством 256 и частотой среза как можно ближе к Fs/4 

Совершенно нет никакого инструментария под рукой. Помогите, добрые люди, если есть такая возможность и желание!

 

Share this post


Link to post
Share on other sites

   Для интерполяции их на 2 нужно умножить.     

          -1          -1           1           1          -1          -1           2

           2          -2          -2           3           3          -4          -4

           5           5          -6          -6           7           7          -9

          -9          11          11         -13         -13          15          15

         -18         -18          21          21         -25         -25          29

          29         -33         -33          38          38         -43         -44

          49          50         -56         -57          64          64         -72

         -72          81          82         -90         -91         101         102

        -113        -114         125         127        -139        -141         154

         156        -171        -173         188         191        -207        -211

         228         232        -251        -255         275         280        -302

        -307         330         337        -361        -369         395         404

        -432        -442         473         484        -517        -530         565

         580        -618        -636         678         698        -743        -767

         817         846        -901        -935         996        1037       -1107

       -1155        1235        1295       -1388       -1463        1574        1669

       -1804       -1928        2100        2267       -2493       -2730        3047

        3405       -3889       -4486        5333        6517       -8412      -11776

       19664       58992       58992       19664      -11776       -8412        6517

        5333       -4486       -3889        3405        3047       -2730       -2493

        2267        2100       -1928       -1804        1669        1574       -1463

       -1388        1295        1235       -1155       -1107        1037         996

        -935        -901         846         817        -767        -743         698

         678        -636        -618         580         565        -530        -517

         484         473        -442        -432         404         395        -369

        -361         337         330        -307        -302         280         275

        -255        -251         232         228        -211        -207         191

         188        -173        -171         156         154        -141        -139

         127         125        -114        -113         102         101         -91

         -90          82          81         -72         -72          64          64

         -57         -56          50          49         -44         -43          38

          38         -33         -33          29          29         -25         -25

          21          21         -18         -18          15          15         -13

         -13          11          11          -9          -9           7           7

          -6          -6           5           5          -4          -4           3

           3          -2          -2           2           2          -1          -1

           1           1          -1          -1

 

Share this post


Link to post
Share on other sites

Python+Scipy доступны всегда, вместе с интернетом.

Welcome To Colaboratory - Colaboratory (google.com)

Можно поиграть и поквантовать коэффициенты так как надо

import numpy as np
from scipy import signal
import matplotlib.pyplot as plt
 
fs = 1   # Sample rate, Hz
def plot_response(whtitle):
    "Utility function to plot response functions"
    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.plot(w, 20*np.log10(np.abs(h)))
    ax.set_ylim(-80, 5)
    ax.grid(True)
    ax.set_xlabel('Frequency (Hz)')
    ax.set_ylabel('Gain (dB)')
    ax.set_title(title)
 
cutoff = 0.4    # Desired cutoff frequency
trans_width = 0.01/fs  # Width of transition from pass to stop, Hz
numtaps = 256      # Size of the FIR filter.
taps = signal.remez(numtaps, [0, cutoff, cutoff + trans_width, 0.5*fs],
                    [1, 0], fs=fs)
w, h = signal.freqz(taps, [1], worN=2000, fs=fs)
plot_response(w, h, "Low-pass Filter")
plt.show()

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...