ã¿ãªããããã«ã¡ã¯ïŒ ããžã¿ã«ä¿¡å·åŠçã®ã»ãããŒã§è¬æŒããããšã«ããããã®èšäºãæžãããšã«è§ŠçºãããŸãããåŠçã¯ããã®ãããã¯ã«è¡šé¢çã«è§Šããã»ãšãã©ã®éšåã§å®éã®æ©èœã«ã€ããŠè©±ãããšããäºå®ã«ãããããããåžžã«ä¿®æ£FIRãã£ã«ã¿ãŒãèšç®ããæ¹æ³è«ã«é¢å¿ãåããŸããã å ¬è¡ãç§å¯ã®ç¥èãæãã§ãããªãããªããããå ±æããŸãããã ãã®èšäºã§ã¯ãä¿¡å·ã®ãã·ã¡ãŒã·ã§ã³ãšè£éã®åé¡ã§CICãã£ã«ã¿ãŒã®ãªã³ã¯åŸã®éé垯åã®åšæ³¢æ°å¿çãçããããããã«å¿ èŠãªä¿®æ£FIRãã£ã«ã¿ãŒãèšç®ããããã®ã¢ã«ãŽãªãºã ãã¢ã¯ã»ã¹å¯èœãªåœ¢åŒã§èª¬æããããšããŸãã ç¹ã«ãææ°ã®ã¶ã€ãªã³ã¯ã¹FPGAã§ã®ãã£ã«ã¿ãŒã®èšèšãæ€èšããŸãã ãã€ãã®ããã«ãèšäºã®æåŸã«ãããŸããŸãªãã£ã«ã¿ãŒãèšç®ãããã£ã«ã¿ãŒè£æ£ä¿æ°ã®ãã¡ã€ã«ãååŸããããã®äŸ¿å©ãªã¹ã¯ãªãããžã®ãªã³ã¯ããããŸãã
èªè ã¯ããžã¿ã«ä¿¡å·åŠçã®åºæ¬ã«ç²ŸéããŠãããCICããã³FIRãã£ã«ã¿ãŒã«ã€ããŠç解ããŠããããšãåæãšããŠããŸãã å§ããŸãããã
ã¯ããã«
ãåãã®ããã«ãCICãã£ã«ã¿ãŒã¯1ã€ã®éåžžã«éèŠãªç¹æ§ãæã£ãŠãããããéåŒãããã³è£éã®åé¡ã§ãã䜿çšãããŸãã CICãã£ã«ã¿ãŒã®ç¹åŸŽã¯ããã£ã«ã¿ãŒåºåã§å¿çãèšç®ããä¹ç®æŒç®ããªãããšã§ãã CICãã£ã«ã¿ãŒã¯ãè€æ°ã®é床ãŸãã¯ç°ãªãé床ã§äœæ¥ãå¿ èŠãªãã¹ãŠã®å Žæãã€ãŸããããŒã¿ã¹ããªãŒã ã®ãã·ã¡ãŒã·ã§ã³ãšè£éãå¿ èŠãªã¿ã¹ã¯ã§äœ¿çšãããŸãã éåŒããšã¯ãä¿¡å·ã®ãµã³ããªã³ã°åšæ³¢æ°ãäžããããã»ã¹ïŒããŒã¿ã¹ããªãŒã ã®é床ãäžããïŒãæããè£éãšã¯ãä¿¡å·ã®ãµã³ããªã³ã°åšæ³¢æ°ãäžããããã»ã¹ïŒããŒã¿ã¹ããªãŒã ã®é床ãäžããïŒãæããŸãã CICãã£ã«ã¿ãŒ-ããŒãDDC ïŒããžã¿ã«ããŠã³ã³ã³ããŒã¿ãŒïŒããã³DUC ïŒããžã¿ã«ã¢ããã³ã³ããŒã¿ãŒïŒã®äžå¯æ¬ ãªéšåã
CICãã£ã«ã¿ãŒã®åšæ³¢æ°å¿çã¯ãããŒãã¹ãã£ã«ã¿ãŒïŒããŒãã¹ãã£ã«ã¿ãŒïŒã®åšæ³¢æ°å¿çãšåçã§ãã åšæ³¢æ°å¿çã®åœ¢ç¶ãšç¹æ§ã®ãŒãã®äœçœ®ã¯ã次ã®ãã£ã«ã¿ãŒãã©ã¡ãŒã¿ãŒã®åœ±é¿ãåããŸãã次æ°N ãéåŒã/è£éä¿æ°R ã埮åãªã³ã¯Mã®é å»¶å€ ãããŠãCICãã£ã«ã¿ãŒã®äž»ãªæ¬ ç¹ã¯ããããã®ãã©ã¡ãŒã¿ãŒãåšæ³¢æ°å¿çã«äžãã圱é¿ã«ãããŸãã 倧ããªãã£ã«ã¿ãŒæ¬¡æ°Nããã³éåŒã/è£éä¿æ°Rã®å Žåãéé垯åå ã®çµæã®ã¹ãã¯ãã«ã¯å€§å¹ ã«å£åããŸããã€ãŸããåšæ³¢æ°å¿çã®ã¡ã€ã³ããŒãã®åœ¢ç¶ãæªã¿ãŸãã å€åšæ³¢æ°ããã³åºåž¯åä¿¡å·åŠçã®å€ãã®ã¿ã¹ã¯ã§ã¯ãéé垯åã§æãåäžã§ç©åœ¢ã®ã¹ãã¯ãã«ãæã€å¿ èŠããããŸãã ããããCICãã£ã«ã¿ãŒã®åšæ³¢æ°å¿çã®ã°ã©ããèŠããšãéé垯åã«æ¥æ¿ã«æžå°ããæ²ç·ããããŸãã ãã®ãããªäžåäžæ§ã¯å®¹èªã§ãããæçšãªä¿¡å·ãšãã«ã®ãŒã®æ倱ãšãã®åœ¢ç¶ã®æªã¿ã«ã€ãªãããŸãã ãã®ç¹ã§ãéé垯åå ã®CICãã£ã«ã¿ãŒã®åšæ³¢æ°å¿çã調æŽããªãããæžè¡°åž¯åå ã®å¹²æžãæå°éã«æãããšããæ¥åã§ãã
åé¡ã®å£°æ
次æ°Nãšãµã³ããªã³ã°åšæ³¢æ°Rã®å€åä¿æ°ãæå®ãããŠããCICãã£ã«ã¿ãŒããããšããŸãã é 延å€ã¯ã移åå¹³åãã£ã«ã¿ãŒã§ã¯ãªãå Žåãå®éã«ã¯M = 1ãŸãã¯2ã§ãããDSP48 FPGAä¹ç®åšã®ããŒãã®ã¬ãžã¹ã¿ãŒã«ãã£ãŠæ±ºå®ãããŸãïŒãã³ããŒ-ã¢ã«ãã©ãŸãã¯ã¶ã€ãªã³ã¯ã¹ã«é¢ä¿ãªãïŒã ä¿¡å·ããã£ã«ã¿ãŒã®CICãªã³ã¯ãééããåŸãåšæ³¢æ°å¿çãçããããããã«è£æ£ãã£ã«ã¿ãŒãèšç®ããå¿ èŠããããŸãã
解決ç
ä¿®æ£ãã£ã«ã¿ãŒã¯ãFIRãã£ã«ã¿ãŒã«åºã¥ããŠäœæããã®ãæãç°¡åã§ãã ãã®ãã£ã«ã¿ãŒãèšç®ããã«ã¯ãäºåã«ãã©ã¡ãŒã¿ãŒã決å®ããå¿ èŠããããŸãã
- ãã£ã«ã¿ãŒæ¬¡æ°ãŸãã¯ã€ã³ãã«ã¹å¿çã®é·ã-NFIR ã
- ã¢ã©ã€ã¡ã³ããå¿ èŠãªæå¹åž¯å-Fr ã
- ãã£ã«ã¿ãŒä¿æ°ã®å¹ -Bc ã
- ãŠã£ã³ããŠãã£ã«ã¿ãªã³ã°ã®ååš-WIN ã
泚æ -NFIRã ãã®ãã©ã¡ãŒã¿ãŒã¯ããã£ã«ã¿ãŒã®åšæ³¢æ°å¿çã®ãå質ãã決å®ããŸãã FPGAã®DSPèšèšè ã¯ãæé©ãªãã£ã«ã¿ãŒæ¬¡æ°ãéžæãããšãã課é¡ã«åžžã«çŽé¢ããŠããŸããããã¯ã次æ°ãé«ãã»ã©ãåšæ³¢æ°ç¹æ§ã®ç¹ã§åªããŠããŸããããã®ãã£ã«ã¿ãŒãå®è£ ããããã«FPGAããããè²»ããå¿ èŠããããªãœãŒã¹ãå€ãããã§ã ãã£ã«ã¿ãŒè£æ£ã®æ¬¡æ°ã®æé©å€ã¯ã32ãã128ã®ç¯å²ã§ããåé¡ã«ãã£ãŠã¯ããã£ã«ã¿ãŒã®æ¬¡æ°ãé«ããªãã256ã«éããå ŽåããããŸãããå®éã«ã¯ããã¯æå³ããªãããã®ãããªé·ããã£ã«ã¿ãŒè£æ£ã¯èŠãããšããããŸããã è£æ£ãã£ã«ã¿ãŒã¯å°ãããããè€éãªãã®ãå®è£ ããããã«å¿ èŠãªã³ã³ãã¥ãŒãã£ã³ã°ãªãœãŒã¹ã«åœ±é¿ããªãããã«ããå¿ èŠããããŸãã FPGAã«åºã¥ããã£ã«ã¿ãŒã®äœ¿çšã«ã€ããŠè©±ããŠããå Žåããã®å®è£ ã®ãã£ã«ã¿ãŒæ¬¡æ°ã¯å¶æ°ãš2ã®ã¹ãä¹ã®åæ°ãèšå®ããæ¹ãé©åã§ããããã®èŠä»¶ã¯ãªãã·ã§ã³ã§ã ã
æå¹åž¯åå¹ Frãšã¯ãéåŒããŸãã¯è£éåŸã®çžå¯Ÿçãªæ£èŠåãããã«ãããªãåšæ³¢æ°ã®å€ãæå³ããŸãã éåŒãåé¡ã®å ŽåãåŒFr = Fo / Rã§èšç®ãããŸããããã§ãFoã¯æ£èŠåãããåšæ³¢æ°ïŒããšãã°ã0.1ã0.5ïŒã®ãã©ã¡ãŒã¿ãŒã§ãããRã¯éåŒãä¿æ°ã§ãã Foã®å€ã¯ããã£ã«ã¿ãŒåž¯åå¹ ã決å®ããŸãã Fr = 0.5ã§ã¯ããã£ã«ã¿ãŒè£æ£åšã®ãŒãåšæ³¢æ°å¿çãæçšãªä¿¡å·ã®åž¯åå ã«åãŸããªãããã«ããã£ã«ã¿ãŒã®æ¬¡æ°ã¯å¥æ°ã§ãªããã°ãªããŸããã Frã®ä»ã®å€ã®å Žåããã£ã«ã¿ãŒæ¬¡æ°ã¯ä»»æã§ãã ããã¯ãMatlab CADã®THEIRçµã¿èŸŒã¿FIR2é¢æ°ã®èšç®ã®ç¹æ§ã«ãããã®ã§ãã
説æããã¢ã«ãŽãªãºã ã®ä¿æ°ã®ããã深床ã«ãã ãéé垯åãšé害ç©åž¯åã«ãããåšæ³¢æ°å¿çã®äžåäžæ§ã決ãŸããŸãã å®éã«ã¯ãä¿æ°ã®ããã深床ã¯16ã27ãããã«èšå®ãããŠãããããã¯ææ°ã®FPGAã®DSP48ããŒãã®æ©èœã«é¢é£ä»ããããŠããŸãã å®éã«ã¯ãä¿æ°ã®ããã深床ã16ã18ãããã«èšå®ããã ãã§ååã§ããããã«ãããå¿ èŠãªåšæ³¢æ°å¿çã®åäžæ§ãé©åã«æäŸãããŸãã é«æ¬¡ãã£ã«ã¿ãŒïŒããšãã°ãN = 256ïŒã®å Žåã18ãããã®ãããå¹ ã§ã¯äžååã§ãç¹ã«é害ç©åž¯åã§éååå¹æãçŸãå§ããŸãã ãããã£ãŠãé«æ¬¡ãã£ã«ã¿ãŒã®å ŽåãFPGAã®DSP48åŠçããŒãã®æ§é ããããå¯èœã«ãããããä¿æ°ã®ããã深床ãå¢ããå¿ èŠããããŸãïŒå³DSP48ããŒããåç §ïŒã
ãŠã£ã³ããŠãã£ã«ã¿ãªã³ã°ã䜿çšãããšããã£ã«ã¿ãŒè£æ£ãé©çšããåŸãéé垯åã§çµæãšããŠçããåšæ³¢æ°å¿çã®ãªããã«ãæ»ããã«ããããšãã§ããŸãã çªé¢æ°ã¯ãèšç®ãããFIRãã£ã«ã¿ãŒã®ã€ã³ãã«ã¹å¿çã«éç³ãããŸãïŒæ°åŠçã«ã¯ãããã¯ã¹ãã¯ãã«ã®ç³ã¿èŸŒã¿ã§ãïŒã å人çãªçµéšã«åºã¥ããŠãKaiseré¢æ°ã¯ãŠã£ã³ããŠé¢æ°ã®æé©ãªãªãã·ã§ã³ã§ããããšã«æ³šæããŠãã ããã 1ã€ã®BETAãã©ã¡ãŒã¿ãŒã䜿çšããŠããã£ã«ã¿ãŒã®åšæ³¢æ°å¿çãç®çã®ã¿ã¹ã¯ã«å€æŽã§ããŸãã ã«ã€ã¶ãŒé¢æ°ã¯ãä¿®æ£ããããŒã次ããã»ã«é¢æ°I0ã«ãã£ãŠèšç®ãããŸãããå€ãã®æšæºããã±ãŒãžã«çµã¿èŸŒãŸããŠããŸãïŒ MatlabãGNU OctaveãMathCAD ïŒã ç©ççã«ãããŒã¿ãã©ã¡ãŒã¿ã¯ãã¹ãã¯ãã«ã®ã¡ã€ã³ããŒãå ã«éäžãããšãã«ã®ãŒã®å²åã決å®ããŸãã BETAãã©ã¡ãŒã¿ãŒã倧ããã»ã©ããšãã«ã®ãŒãéäžããã¡ã€ã³ããŒããåºããªããŸããããµã€ãããŒãã®ã¬ãã«ã¯äœããªããŸãã å®éã«ã¯ããã©ã¡ãŒã¿BETA = 3-11ã
FIRãã£ã«ã¿ãŒãèšç®ããããã®è©³çŽ°ãªæ¹æ³è«ã¯èª¬æããŸããããããã«ã€ããŠã¯ä»¥åã®èšäºã§èªãããšãã§ããŸãã è€éãªããšã¯äœããããŸãã-䟿å©ãªæ¹æ³ã§FIRãã£ã«ã¿ãŒä¿æ°ãååŸããå¿ èŠããããŸãã MathCADãGNU OctaveãMatlabïŒFDAToolãŠãŒãã£ãªãã£ïŒãScopeFIRã¢ããªã±ãŒã·ã§ã³ãLabViewããã°ã©ã ã䜿çšããŠãããè¡ãããããç¥ãããã¢ã«ãŽãªãºã ã«åºã¥ããŠç¬èªã®èšç®æ¹æ³è«ãèšè¿°ã§ããŸãã
ã¢ã«ãŽãªãºã
è£æ£FIRãã£ã«ã¿ãŒãèšç®ããã¢ã«ãŽãªãºã ã説æããŸãããã 以äžã§ã¯ãMatlabã¹ã¯ãªããèšèªã®ã³ãŒãæ¿å ¥ã䜿çšããŠãå®è£ ããã»ã¹ãããããç解ããŸãã
1ã¹ãããïŒ CICãã£ã«ã¿ãŒã®åæãã©ã¡ãŒã¿ãŒãèšå®ããŸã-
R = 8; % Decimation factor N = 4; % Number of stages M = 1; % Differential delay (only 1)
ã¹ããã2ïŒ FIRãã£ã«ã¿ãŒã®ãã©ã¡ãŒã¿ãŒïŒä¿æ°ã®ããã深床ã次æ°ããŠã£ã³ããŠïŒãšåšæ³¢æ°å¿çã®æ£èŠåãããã«ãããªãåšæ³¢æ°ãèšå®ããŸã-
NFIR = 128; % Filter order, must be odd when Fo = 0.5 ! Bc = 16; % Coef. Bit-width Fo = 0.3; % Normalized Cutoff: 0.2 < Fo < 0.5; BETA = 8; % BETA parameter for Kaiser window (if IS_WIND = 'Y')
ã¹ããã3ïŒç¹æ§ãèšç®ããããã«ããã¯ãã«ã®ãé¢æ£åãã®ã¹ããããéžæããŸãã ãã®æé ã«åŸã£ãŠãå¿ èŠãªæ°åã®é åãäœæããŸãã æ¢ç¥ã®åŒã«åŸã£ãŠCICãã£ã«ã¿ãŒãèšç®ããçµæããã·ãã«ã«å€æããŸãã
HCIC = (R^-N*abs(1*M*sin(pi*M*R*ff) ./ sin(pi*ff)).^N); HCICdb = 20 * log10(abs(HCIC));
ã¹ããã4ïŒæå¹åž¯åå¹ ãã©ã¡ãŒã¿ãŒFoã«åŸã£ãŠãåšæ³¢æ°ãµã³ãã«ã®ãã¯ãã«ã2ã€ã®éšåã«åå²ããŸããfpã¯éé垯åã®åšæ³¢æ°ãã¯ãã«ã fsã¯æžè¡°åž¯åã®åšæ³¢æ°ãã¯ãã«ã§ãã 次ã®åŒã«åŸã£ãŠãã«ãããªãåšæ³¢æ°Fo / Rã®è£åãã£ã«ã¿ãŒã®çæ³çãªç¹æ§ãèšç®ããŸãã
ããã§ã fã¯ã0ããFo / Rã®åž¯åå¹ ç¯å²ã§æ£èŠåãããåšæ³¢æ°ã®ãµã³ãã«ã§ãã æ®ãã®ãµã³ãã«ã¯ãŒãã§ãã
% Calculate ideal response Mp = ones(1, length(fp)); % Pass band response; Mp(1) = 1 Mp(2:end) = abs(M * R * sin(pi*fp(2:end)/R) ./ sin(pi*M*fp(2:end))).^(N); Mf = [Mp zeros(1, length(fs))];
åŸãããç¹æ§ã®ã¿ã€ãã¯ã次ã®å³ã«ç€ºãããŠããŸãã
ã¹ããã5ïŒçæ³çãªåšæ³¢æ°å¿çã䜿çšããŠãæå®ããããã©ã¡ãŒã¿ãŒïŒéã¿ãŠã£ã³ããŠãããå Žåãä¿æ°ã®ããã深床ãšãã£ã«ã¿ãŒæ¬¡æ°ïŒã䜿çšããŠãè£åFIRãã£ã«ã¿ãŒã®ã€ã³ãã«ã¹å¿çãèšç®ããŸãã
ãã£ã«ã¿ãŒè£æ£åšã®ã€ã³ãã«ã¹å¿çã®ã¿ã€ãïŒèšç®ã¯çµã¿èŸŒã¿ã®FIR2é¢æ°ã䜿çšããŠå®è¡ãããçªé¢æ°ã¯FIR1é¢æ°ãä»ããŠèšç®ãããŸãïŒïŒ
è£æ£ãã£ã«ã¿ãŒãèšç®ããããã®ãœãŒã¹ã³ãŒãïŒ
% Calculate FIR hFIR = fir2(NFIR-1, f, Mf); % Filter length NFIR hFIR = hFIR / max(hFIR); % Double coefficients hCOE = round(hFIR*(2^(Bc-1)-1)); % Fixed point coefficients % Windowed FIR (Kaiser with BETA) if (IS_WIND == 'Y') WIND = kaiser(NFIR, BETA); % KAISER WINDOW IS USED! hWIND = fir1(NFIR-1, Fo/R, 'low', WIND); hNEW = hCOE .* hWIND;% conv2(hCOE,Hwind); hCOE = hNEW; end
ããã§ãã£ã«ã¿ãŒã®èšç®ãå®äºããŸããã çµæã¯ããŠãŒã¶ãŒãã¬ã³ããªãŒãªæ¹æ³ã§ãã£ã«ã¿ãŒä¿æ°ã®ãã¡ã€ã«ã§ãã ã芧ã®ãšãããè€éãªããšã¯ãªããããã»ã¹å šäœã4ã5段éã«åããããŸãã
- CICããã³FIRãã£ã«ã¿ãŒã®å ¥åãã©ã¡ãŒã¿ãŒã®å®çŸ©ã
- çæ³çãªåšæ³¢æ°å¿çã®åœ¢æã
- FIRãã£ã«ã¿ãŒä¿æ°ã®èšç®ïŒ FIR2é¢æ°ïŒã
- ãã§ãã¯ããè£æ£ãã£ã«ã¿ãŒã®åšæ³¢æ°å¿çã®æ§ç¯
- éé垯åã®äžåäžæ§ã®èšç®ã
ãµã³ããªã³ã°åšæ³¢æ°ãäœãåè·¯ïŒéåŒãã®åé¡ïŒã§ã¯ãéåžžãè£æ£ãã£ã«ã¿ãŒã¯CICãã£ã«ã¿ãŒã®åŸã«ããããšã«æ³šæããŠãã ããã ãµã³ããªã³ã°ã¬ãŒãïŒè£éïŒãå¢ããã¿ã¹ã¯ã®å Žåãè£æ£ãã£ã«ã¿ãŒã¯CICãã£ã«ã¿ãŒã®åã«ãããŸãã ãã®å Žåã®FIRè£æ£ãã£ã«ã¿ãŒã¯ãããäœãåšæ³¢æ°ã§ïŒãã·ã¡ãŒã·ã§ã³åŸãŸãã¯è£éåã«ïŒåäœããããããã®ãã£ã«ã¿ãŒé 眮ã¯ãå æãããæ°Žæ¶ãªãœãŒã¹ã®éã«é¢ããŠæé©ã§ãã
次ã®å³ã¯ãCICããã³FIRãã£ã«ã¿ãŒã®åšæ³¢æ°å¿çãšã次ã®ãã©ã¡ãŒã¿ãŒã«ããè£æ£åŸã®åšæ³¢æ°å¿çã瀺ããŠããŸãã
- éåŒãä¿æ°R = 11 ;
- CICãã£ã«ã¿ãŒæ¬¡æ°N = 4 ;
- å路差åã®é 延ã ãªã³ã¯M = 1 ;
- FIRãã£ã«ã¿ãŒã®æ¬¡æ°NFIR = 64 ;
- ä¿æ°Bc = 16ã®å®¹éã
- æ£èŠåãããã«ãããªãåšæ³¢æ°Fo = 0.4 ;
- ãŠã£ã³ããŠé¢æ°-䜿çšãããŠããŸãã
ã芧ã®ããã«ãCICãã£ã«ã¿ãŒã®åšæ³¢æ°å¿çã¯è£æ£ãããŠãããçµæã®åšæ³¢æ°å¿çã¯èŠèŠçã«ååãªçŽè§åºŠãæã£ãŠããŸãïŒèµ€ãæ²ç·ïŒã
éé垯åã®åšæ³¢æ°å¿çã®äžåäžæ§
æ®å¿µãªãããåšæ³¢æ°å¿çã®èª¿æŽã¯ããã§çµããã§ã¯ãããŸããã 垯åå¹ å ã§ã°ã©ããå¢ãããŸãã 次ã®ã°ã©ãã§ã¯ãã¹ããªããã«å°ããªããŒãã衚瀺ãããŠããŸãã
ãªããã éé垯åã®åšæ³¢æ°å¿çã¯ãCICãã£ã«ã¿ãŒNã®æ¬¡æ°ãé«ããªãã»ã©é«ããªããŸãã éåŒã/è£éä¿æ°Rã¯ãäžåäžæ§ã«åœ±é¿ããŸããã ãŸããè£åFIRãã£ã«ã¿ãŒã®æ¬¡æ°ã¯äžèŠåæ§ã«åœ±é¿ããŸãã ãã£ã«ã¿ãŒã®æ¬¡æ°ãå°ããã»ã©ãäžåäžæ§ã¯å€§ãããªããŸãã ãã ãããã£ã«ã¿ãŒã®æ¬¡æ°ã倧ããã»ã©ãéé垯åã®ãããŒããã®åšæ³¢æ°ã倧ãããªããŸãã ãã®ãããå®çšçãªç®çã®ããã«ãé«æ¬¡ã®è£åãã£ã«ã¿ãŒNFIR> 128ã¯äœ¿çšãããŸããïŒ ãŸããæå¹ãã³ãã¯ããããªè²¢ç®ãããŸããæŽåããããã³ããå°ããã»ã©ãäžåäžæ§ã¯å°ãªããªããŸãã
ããŒãã«å¯Ÿæããããã«ãå ã»ã©ã話ããããŠã£ã³ããŠé¢æ°ã䜿çšãããŸãã ãŠã£ã³ããŠãã£ã«ã¿ãªã³ã°ã䜿çšããã«ã«ã€ã¶ãŒé¢æ°ã䜿çšããŠãæ¡å€§ã¹ã±ãŒã«ã§ã°ã©ããã©ã®ããã«èŠããããèŠãŠã¿ãŸãããïŒ ããŒã¿= 8 ïŒã ä»ã®ãã©ã¡ãŒã¿ãŒã¯å€æŽãããŸããã
- é-ãŠã£ã³ããŠãã£ã«ã¿ãªã³ã°ãªãã®çµæã
- èµ€-ã«ã€ã¶ãŒãŠã£ã³ããŠé¢æ°ã®é©çšã
ã芧ã®ãšããããŠã£ã³ããŠãã£ã«ã¿ãªã³ã°ã䜿çšãããšãéé垯åå ã®ããŒããæ»ããã«ããããšãã§ããçµæã®åšæ³¢æ°å¿çã°ã©ããæ»ããã«ãªããŸãã
åšæ³¢æ°å¿çã®ç¹æ§ãæ¹åãã2çªç®ã®æ¹æ³ã¯ãåŠçãããã€ãã®æ®µéã«åå²ããããšã§ãã ããšãã°ããã·ã¡ãŒã·ã§ã³ã¯1段éã§ã¯ãªãããµã³ããªã³ã°åšæ³¢æ°ãäžããããã€ãã®ãªã³ã¯ã䜿çšããŠå®è¡ãããŸãïŒ R = R1 * R2 * ... Rn ã
äžéšã®ã¿ã¹ã¯ã§FPGAãªãœãŒã¹ãç¯çŽããããã«ãä¿®æ£ããã³ã·ã§ãŒãã³ã°FIRãã£ã«ã¿ãŒãçµã¿åãããããšãã§ããŸãã ãããè¡ãã«ã¯ãã€ã³ãã«ã¹ç¹æ§ãä¹ç®ããããã¹ãã¯ãã«ã®ç³ã¿èŸŒã¿ãå®è¡ããå¿ èŠããããŸãã
çµæ
ãã£ã«ã¿ãŒè£æ£ãèšç®ããããã«ãèŠèŠçãªåœ¢åŒã§çµæãååŸã§ããmã¹ã¯ãªãããèšè¿°ãããŠããŸãã ã¹ã¯ãªããã¯ãããã€ãã®äžè¬çãªåœ¢åŒã®ããããã§ä¿æ°ããŒã¿ã衚瀺ã§ããŸãããå¿ èŠã«å¿ããŠç®çã«å¿ããŠè¿œå ããã³å€æŽã§ããŸãã
- COE-ä¿æ°ãCore Generatorã«ããŒãããããã®ã¶ã€ãªã³ã¯ã¹åœ¢åŒã
- H -C / C ++ãããžã§ã¯ãïŒCode Composer StudioïŒã«æ¥ç¶ããããã®ããããŒãã¡ã€ã«ã
ã¹ã¯ãªãããå®è¡ããã«ã¯ãMatlabãŸãã¯GNU Octave CADãœãããŠã§ã¢ãå¿ èŠã§ãïŒåŸè ã§ã¯ãããã°ããŠããŸããïŒã 次ã«ãçµæã®ä¿æ°ãã¡ã€ã«ã* .COE圢åŒã§ã¶ã€ãªã³ã¯ã¹ã³ã¢ãžã§ãã¬ãŒã¿ãŒã«ããŠã³ããŒããããè£åFIRãã£ã«ã¿ãŒãå®è£ ãããŸãã
ã¶ã€ãªã³ã¯ã¹Vivadoã®FIRãã£ã«ã¿ãŒã®æŠç¥å³ïŒåæåŸã¿ãïŒïŒ
代æ¿æ¹æ³
è£æ£ãã£ã«ã¿ãŒãèšç®ããå¥ã®æ¹æ³ããååã®ã¢ã³ãããA.Eã«ãã£ãŠææ¡ãããŸããã 圌ã¯ãæåã¢ãŒãã§æ®µéçã«ãã£ã«ã¿ãŒã®åšæ³¢æ°å¿çã®å¿ èŠãªäžåäžæ§ãéžæãããããªãäœæ¥ã®ããã«ä¿æ°ãã¢ã³ããŒãããã€ã³ã¿ã©ã¯ãã£ããªã¢ããªã±ãŒã·ã§ã³ãæžããŸããã ææ¡ãããŠããããã°ã©ã c_koeff.exeã¯ã2ã€ã®CICãã£ã«ã¿ãŒã®ã·ã¹ãã ã®èåŸã«ããFIRãã£ã«ã¿ãŒä¿æ°ãä¿®æ£ããCICãã£ã«ã¿ãŒã«ãã£ãŠå°å ¥ãããéé垯åå ã®ã·ã¹ãã å šäœã®äžåäžãªåšæ³¢æ°å¿çãè£æ£ããããã«èšèšãããŠããŸãã FIRãã£ã«ã¿ãŒä¿æ°ã¯ãMATLABããã±ãŒãžã®FDAToolç°å¢ã§ååŸãããCããããŒãã¡ã€ã«ãšããŠæå®ãããŠãããšæ³å®ãããŠããŸãã ããã°ã©ã ã¯C ++ Builderã§äœæãããŠããŸãã è£æ£ãããFIRãã£ã«ã¿ãŒã®èšç®ãããä¿æ°ãšãã®åšæ³¢æ°å¿çã衚瀺ããã«ã¯ãZAO InSisã«ãã£ãŠéçºããã ç¡æã§é åžãããŠããISVIããã°ã©ã ããŒãžã§ã³6以éã䜿çšãããŸãã ãªãœãŒã¹ã®ã«ãŒã«ã«éåããªãããã«ãäŒç€Ÿã®æ¥çžŸãšé©çšããããœãããŠã§ã¢ã®æ©èœã宣äŒããŸããã
ããã°ã©ã ã®çµæã次ã®å³ã«ç€ºããŸãã ãã©ã¡ãŒã¿ãŒNpãåæããããšã«ãããè£åãã£ã«ã¿ãŒã®ã¹ãã¯ãã«é¢æ°ãååŸããŸãã ISVIã¢ããªã±ãŒã·ã§ã³ã§ã¯ããã£ã«ã¿ãŒã®ã€ã³ãã«ã¹å¿çã芳å¯ããããšãã§ããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®èª¬æã¯ãgithubã®ãœãŒã¹ã®ã¯ãŒããã¡ã€ã«ã«ãããŸãïŒä»¥äžã®ãªã³ã¯ïŒã
ãœãŒã¹ã³ãŒã
- Matlab / GNU Octaveã®mã¹ã¯ãªãã ïŒFIRãã£ã«ã¿ãŒãšè£æ£ãã£ã«ã¿ãŒã®èšç®ïŒ
- ã€ã³ã¿ã©ã¯ãã£ããªãã£ã«ã¿ãŒè£æ£èšç®ã®ããã®C_koeffã¢ããªã±ãŒã·ã§ã³
æåŠ
- FPGAã§ã®ããžã¿ã«ä¿¡å·åŠç-1
- FPGAã§ã®ããžã¿ã«ä¿¡å·åŠç-2
- ã¢ã«ãã©DSïŒCICè£åãã£ã«ã¿ãŒã«ã€ããŠïŒ
- éåŒãããã³è£éåé¡ã§ã®CICãã£ã«ã¿ãŒã®äœ¿çš
- E.S. EificherãBarry W. Dervisãããžã¿ã«ä¿¡å·åŠçã å®è·µçã¢ãããŒã
- Rabiner L.ãGold B.ãããžã¿ã«ä¿¡å·åŠçã®çè«ãšå¿çš
- éåŒãããã³è£éã®ããã®çµæžçãªã¯ã©ã¹ã®ããžã¿ã«ãã£ã«ã¿ãŒ
ãæž èŽããããšãããããŸããïŒ