PowerPoint 프레젠테이션

Similar documents
PowerPoint 프레젠테이션

슬라이드 1

Microsoft PowerPoint - Ch15-1

PowerPoint 프레젠테이션

<445350BCB3B0E820BAB8B0EDBCAD2E687770>

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

슬라이드 1

BMP 파일 처리

untitled

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

C 언어 프로그래밊 과제 풀이

歯9장.PDF

Microsoft Word - Lab.7

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

Chapter 연습문제답안. 아날로그카메라와디지털카메라 소형화, 경량화에한계가있음 필름, 저장용량작음 ( 회 장미만 ) 고화질 & 확대해도화질유지 인화과정을거쳐야하고복잡함 이미지보정이어려움 ( 필름수정 ) 간단한효과만가능 다른기기와이미지공유불가능 소형화, 경량화가용이함

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

그룹웨어와 XXXXX 제목 예제

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - chap11-포인터의활용.pptx

Chapter4.hwp

untitled

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint - Chapter_08.pptx

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조


통신이론 2 장주파수해석 성공회대학교 정보통신공학과 1

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

Microsoft PowerPoint - ch12ysk2015x [호환 모드]

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

(Microsoft Word - GNU\272\270\260\355\274\255)

11장 포인터

Microsoft PowerPoint - chap10-함수의활용.pptx

슬라이드 제목 없음

Microsoft PowerPoint - chap03-변수와데이터형.pptx

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

별지제 호서식 연구결과보고서 과제명 소속소방산업기술연구소연구책임자권성필 연구기간 연구목표 연구배경

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

6주차.key

Slide 1

PowerPoint 프레젠테이션

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

chap7.key

Microsoft PowerPoint - [2009] 02.pptx

영상처리 이론 과 실제 제3장 영역처리

PowerPoint Presentation

중간고사

목차 배열의개요 배열사용하기 다차원배열 배열을이용한문자열다루기 실무응용예제 C 2

이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2

슬라이드 1

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

, ( ),, ( ), 3, int kor[5]; int eng[5]; int Microsoft Windows 4 (ANSI C2 ) int kor[5] 20 # define #define SIZE 20 int a[10]; char c[10]; float

untitled

본 강의에 들어가기 전

컴파일러

PowerPoint 프레젠테이션

Infinity(∞) Strategy

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

저작자표시 - 비영리 - 동일조건변경허락 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 이차적저작물을작성할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - 제11장 포인터(강의)

OCW_C언어 기초

슬라이드 1

2015 개정교육과정에따른정보과평가기준개발연구 연구책임자 공동연구자 연구협력관

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

fprintf(fp, "clf; clear; clc; \n"); fprintf(fp, "x = linspace(0, %d, %d)\n ", L, N); fprintf(fp, "U = [ "); for (i = 0; i <= (N - 1) ; i++) for (j = 0


chap8.PDF

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

슬라이드 1

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

Microsoft PowerPoint - chap04-연산자.pptx

28 저전력복합스위칭기반의 0.16mm 2 12b 30MS/s 0.18um CMOS SAR ADC 신희욱외 Ⅰ. 서론 Ⅱ. 제안하는 SAR ADC 구조및회로설계 1. 제안하는 SAR ADC의전체구조

Microsoft PowerPoint - 제11장 포인터

Microsoft PowerPoint - chap-11.pptx

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문

: 1 int arr[9]; int n, i; printf(" : "); scanf("%d", &n); : : for(i=1; i<10; i++) arr[i-1] = n * i; for(i=0; i<9; i++) if(i%2 == 1) print

Microsoft PowerPoint - es-arduino-lecture-03

C++ Programming


C 프로그래밊 개요

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - Ch13

금오공대 컴퓨터공학전공 강의자료

PowerPoint Presentation

PowerPoint Presentation

) (Linearity) y(n) = T[x(n)] y2(n) = T[x2(n)] y(n) = T[ax(n)+bx2(n)] = T[ax(n)]+T[bx2(n)] = ay(n)+by2(n),., superposition superposition

4. 1 포인터와 1 차원배열 4. 2 포인터와 2 차원배열 4. 3 포인터배열 4. 4 포인터와문자그리고포인터와문자열

Chapter. 14 DAC 를이용한 LED 밝기제어 HBE-MCU-Multi AVR Jaeheung, Lee

02장.배열과 클래스

컴퓨터와디지털샘플링이출현하기전에, 엔지니어는주로전기회로로구현된아날로그필터를다루었습니다. 이들필터에는콘벌루션이라고알려진 " 아날로그계산 " 을수행하기위해저항커패시터및인덕터를사용했습니다. 디지털컴퓨터및 A/D 컨버터의발명과더불어, 콘벌루션프로세스는신호를나타내는 2진데이터샘

제 8 장기저대역전송 제 8 장기저대역전송 1 / 40

DBPIA-NURIMEDIA

Microsoft PowerPoint - Ch16

歯7장.PDF

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Transcription:

디지털필터의설계

목차 2 I 필터의기초 II 디지털필터의설계

3 PART I 필터의기초

4 필터의개념 필터링 (Filtering) 관측된신호에어떠한처리를하여그중에서필요한성분만추출 필터 (Filter) 필터링처리를하는장치 필터링의목적 잡음을제거하여신호질향상 신호에서정보추출 Channel 공유시신호분리

5 필터의개념 디지털필터란? 디지털입력신호에작용하여원하는 filtering algorithm 을 수행하는하드웨어또는소프트웨어를말함 대상신호가이산신호 디지털회로를이용한 하드웨어적방법 프로그래밍에의한 소프트웨어적방법 x(t) Analog input 아날로그회로 y(t) Analog output x(t) Analog input Input filter ADC DSP DAC Output filter x(n) y(n) y(t) Analog output

필터의개념 6 A/D 변환기의변환과정 ADC Sampling Quantizing Encoding

디지털필터의종류 이동평균필터 (Moving Average Filter) 평균화처리 현재의입력값이전입력값몇회전의입력값 1. 데이터들을지연 2. 몇개의데이터들을가산 x(t) Analog input A / D 변환기 데이터 1 데이터 2 데이터 n ( 버림 ) 3. 이개수로나누는처리 이처리를입력신호의 전데이터에대하여실행 ( 평균화 ) D / A 변환기 y(t) Analog output 평균화처리 원데이터 (raw data) 의평균으로잠재적인경향을보고자함 평활화 (smoothing) 및저대역필터링 7

이동평균필터 (Moving Average Filter) 이동평균의블록도에의한표현 x(t-1) x(t-2) x(t-3) x(t-4) 입력 x(t) D D D D 출력 1/5 y(t) x(t) + x(t-1) 출력 y( t) = 1 5 4 k = 0 x( t k) 이동평균의예 x(t) ο ο ο ο ο ο ο ο ο ο Ú 가산 Ú 승산 t y(t) ο ο ο ο ο 1/5 ο ο ο 1/5 ο ο t 8

9 이동평균필터 (Moving Average Filter) 평균화하는데이터개수를변경한경우의예 처리결과의진폭스펙트럼이어떻게변화하는가를표현함

10 FIR (Finite Impulse Response) 필터 FIR 필터의특징 유한임펄스필터 비순환필터 귀환부분이없어 IIR 보다안정적 IIR 보다선형위상응답의구현이용이 FIR 필터설계의목적 FIR 은임펄스응답 h(n) 을결정하는것

블록선도 FIR 필터의비재귀구조 ( 직접형 ) x[n] D x[ n 1] D x[ n 2] D D x[ n M ] a0 a1 a2 am 1 am + + + + y(n) 차분방정식 M y[ n] = a x[ n k] Y ( z) = H ( z) X ( z) k = 0 k 전달함수 M H ( z ) = k = 0 a k z k 11

12 IIR (Infinite Impulse Response) 필터 IIR 필터의특징 무한임펄스필터 순환필터 일종의 memory 또는 feedback 을가지는시스템 귀환로를가지고있으므로항상안정하다고할수는없다 IIR 필터설계의목적 IIR 은필터계수 a k, b k 를결정하는것

블록선도 IIR 필터의재귀구조 ( 직접형 ) x [n] x [ n 1] x[ n 2] D D D D x[ n M ] a0 a1 a2 a3 am 1 am + + + + + + + + + + y[n] -bn -bn 1 -b3 -b2 -b1 y[ n N] D D D D y[ n N +1] y[ n 3] y[ n 2] y[ n 1] 13

14 차분방정식 전달함수 = = = N k k M k k k n y b k n x a n y 1 0 ] [ ] [ ] [ ) ( ) ( ) ( ) ( ) ( 2 1 z Y z H z X z H z Y = = = + = N k k k M k k k z b z a z H 1 0 1 ) ( IIR 필터의재귀구조 ( 직접형 )

15 PART II 디지털필터설계

16 디지털필터설계순서 시작 1. 필터사양 사양변경 2. 전달함수의결정 재계산 3. 구조결정 구조변경 4. 유한어장오차의해석 5. 하드웨어또는소프트웨어구현및검증 재설계 시작

1. 필터의설계사양결정 통과대역에따른필터의종류 원하는필터의형태결정 저역통과필터 (lowpass filter : LPF) 고역통과필터 (highpass filter : HPF) 대역통과필터 (bandpass filter : BPF) 원하는필터의특성 등을결정 대역저지필터 (bandstop filter : BSF) 이상적인진폭특성을가지는필터 1 1 최종설계사양결정 진폭 통과역저지역 진폭 저지역통과역 0 ω 0 ω 0 ω 0 ω (a) 저역통과필터 (b) 고역통과필터 1 진폭 저지역 통과역 저지역 1 진폭 통과역 저지역 통과역 ω 2 0 ω 1 ω (c) 대역통과필터 ω 2 0 ω 1 ω (d) 대역저지필터 17

18 저역통과필터 (LPF) 의진폭특성사양 실제로구해지는필터의주파수특성 H ( e j 2π f ) 1+δ p 1 1 δ p δ s f f p 0 0. 5 f s 통과대역천이대역저지대역

FIR 혹은 IIR 필터의선택 FIR 과 IIR 필터비교 구현비용 FIR 필터 높다 - 차수가상대적으로높아서소자가많이필요 IIR 필터 낮다 -차수가상대적으로낮아서소자가적게필요 안정도높다주의를요함 위상특성선형위상특성을얻기쉽다. 선형위상특성을얻기어렵다. 제한된비트수영향낮다 - 적은반올림계수오차 - 적은반올림잡음 높다 - 큰반올림계수오차 - 큰반올림잡음 제반사항고려 원하는필터결정 19

20 2. 필터계수계산 ( 전달함수결정 ) 주어진필터규격을만족하도록필터계수 ( 전달함수 ) 결정 FIR 필터계수계산 (h(n)) 창함수방법 주파수샘플링방법 IIR 필터계수계산 (a k, b k ) 간접설계 직접설계

FIR 필터설계시창함수에의한설계법 무한한길이의임펄스응답을제한하기위함 창함수를사용한 FIR 필터계수계산순서 유한한길이의창함수를임펄스응답에곱함 원하는필터의주파수응답 (H D (ω)) 를결정 h( n) = w( n) h ( n) D H ( ω) = W ( ω)* H ( ω) D 임펄스응답 h D (n) 를구함 -> Inverse Fourier Transform 윈도우선택 FIR 필터계수계산 21

FIR 필터설계시창함수에의한설계법 창함수의종류 방형창 w[ n] = 1, M n M = 0, elsewhere 해밍창 w[ n] = = 0.54 + 0.46 cos 0 elsewhere. nπ, M M n M 해닝창 w[ n] = = 0.5 + 0.5cos 0 elsewhere. nπ, M + 1 M n M 블랙맨창 w[ n] = 0.42 + 0.50 cos = 0 elsewhere. nπ M + 0.08cos 2nπ, M M n M 22

23 FIR 필터설계시창함수에의한설계법 해밍창을사용한 FIR 필터설계의예 주파수영역 H (ω) D [n] 시간영역 이상적인 LPF인 H D (ω) 에윈도우함 h D 수 W (ω) 를컨벌루션하여원하는사양의 H (ω) 를구하는과정을나타냄. W (ω) ω (a) w[n] n 각창함수에대한필터의진폭특성 ω (b) n H (ω) h[ n] = hd[ n] ω[ n] ω (c) n

24 FIR 필터설계시창함수에의한설계법 창함수를적용한저역통과용필터계수 각필터계수를사용한저역통과필터의특성 저역통과필터용필터계수 N 방형창해밍창블랙맨창 0 6.000000e-01 6.000000e-01 6.000000e-01 ±1 3.027307e-01 2.959150e-01 2.906970e-01 ±2-9.354893e-02-8.533045e-02-7.944454e-02 ±3-6.236595e-02-5.054020e-02-4.208082e-02 ±4 7.568267e-02 5.162677e-02 3.858205e-02 ±5 2.338826e-17 1.262966e-17 7.952008e-18 ±6-5.045512e-02-2.007368e-02-1.012988e-02 ±7 2.672826e-02 7.206442e-03 2.709872e-03 ±8 2.338723e-02 3.925598e-03 9.404675e-04 ±9-3.363675e-02-3.448237e-03-3.092260e-04 ±10-2.338826e-17-1.871061e-18 3.245773e-34

25 3. 전달함수를적절한구조로변환 필터의적합한구조결정 구현의용이성 ( 하드웨어, 소프트웨어의복잡성 ) h(n) 또는 H(z) 의계수계산난이도 계수양자화에대한민감도 Direct 형 ( 직접형 ) Cascade 형 ( 종속형 ) Parallel 형 ( 병렬형 )

4. 필터성능에미치는유한어장 (finite wordlength) 영향의해석 실제구현에서필터계수를표시하기위해사용되는비트수는유한 ( 보통 8, 16bits) 필터의성능저하 설계자는유한한 bit 수의영향을해석하여필터계수, 필터변수 ( 입출력샘플등 ), 산술적인계산에대한적절한 bit 수를선택 유한어장으로인한주요특성열화사항 입출력양자화오차 아날로그신호를 A/D 변환시양자화오차발생 오버플로우발진 계수양자화오차 필터계수를유한한 bit 로표현할때발생 반올림오차 가산결과가허용하는어장을초과시발생 사용되는프로세서의어장때문 26

양자화오차의예 3 bit(8 레벨 ) 양자화기를이용한양자화 3 2 양자화전샘플 양자화후샘플 원래의신호 진 폭 0 2 3 4 0 011 T 2T 3T 4T 5T 000 100 110 011 010 t 표본화및양자화정도에따른비교 (a) 원래의파형 (b) 낮은표본화와양자화 (c) 높은표본화와양자화 27

28 5. 하드웨어또는소프트웨어로필터구현 하드웨어에의한실현 장점 안정성이나속도면에서는소프트웨어방법보다우수 전용하드웨어로디지털필터를구현시고속으로동작 단점 필터특성변경시새로설계구현등의불편함 스펙에따른설계가어렵다. 필터의종류에따라하드웨어를따로구성해야한다. 가격이비싸다.

하드웨어에의한실현 승산기를이용한하드웨어디지털필터실현 (FIR) y[ n] = N 1 k = 0 h k x[ n k] 디지털필터의하드웨어구성요소 A/D 레레레 x(n) x(n-1) 지지지 x(n-n+1) 스터 스터 스터 계수용메모리 승산기 x h(0) h(1) : h(n-1) 가산기 지연기 ( 시프트레지스터 ) ADD ACC ADD: 가감산기 ACC: 누적가산기 메모리등 D/A 디지털출력용레지스터아날로그출력 29

30 소프트웨어에의한실현 프로그래밍으로구현 장점 필터특성변경시프로그램적변경이용이 동일한소프트웨어구성을이용하여프로그램의변경만으로다양한필터를실현할수있다. 대량생산이가능하고가격이싸다. 단점 동작속도가늦다.

소프트웨어에의한실현 버터워스형저역통과필터의 5 차계수를사용한경우의 IIR 필터의프로그램예 ha hb 버터워스형필터의필터계수 Low-pass filter 0 1.0000 1 0.0000 2-0.4860 3 0.0000 4-0.0177 0 0.0940 1 0.3759 2 0.5639 3 0.3759 4 0.0940 #include <stdio.h> #include <stdlib.h> main(){ double sum, *d, dd; /* d: 입력할데이터의배열, dd: 입력에사용하는변수명 */ int hn=5, dn, i, j; /* hn: 차수, 입력할데이터의개수 */ double ha[5]={1.0000,0.0000,-0.4860,0.0000,-0.0177}; /* 필터계수 ha */ double hb[5]={0.0940,0.3759,0.5639,0.3759,0.0940}; /* 필터계수 hb */ } scanf( "%d", &dn ); /* 데이터개수를입력함 */ d = malloc(sizeof(double)*dn); for(i=0; i<dn; i++) d[i]=0.0; printf( "%d \n", dn ); for(i=0; i<dn; i++){ for(j=hn-2; j>=0; j--) d[j+1] = d[j]; /* delay */ scanf("%f", &dd); /* 데이터를입력함 */ /* 전단의 FIR형필터처리 */ sum = dd; for(j=1; j<=hn; j++) sum += d[j] * ha[j]; d[0] = sum; /* 후단의 FIR형필터처리 */ sum = 0.0; for(j=0; j<hn; j++) sum += d[j] * hb[j]; } free(d); printf( "%lf \n", sum ); 31

IIR 형필터의프로그램의예 버터워스형저역통과필터의필터계수를사용한경우 버터워스형필터의특성 버터워스형필터의필터계수 Low-pass filter High-pass filter 0 1.0000 1.0000 1 0.0000 0.0000 2-0.4860-0.4860 ha 3 0.0000 0.0000 4-0.0177-0.0177 hb 0 0.0940 0.0940 1 0.3759-0.3759 2 0.5639 0.5639 3 0.3759-0.3759 4 0.0940 0.0940 32

IIR 형필터의프로그램의예 체비체프형필터의필터계수의예 체비체프형필터의특성 체비체프형필터의필터계수 Low-pass filter High-pass filter 0 1.0000 1.0000 1-6.6654 0.6654 2-0.7177-0.7177 ha 3-0.1184 0.1184 4-0.0420-0.0420 hb 0 0.1588 0.1588 1 0.6352-0.6352 2 0.9528 0.9528 3 0.6352-0.6352 4 0.1588 0.1588 33

34 부 록

35 FIR 필터의종류 FIR 필터의블록선도 직접형 전치형

36 FIR 필터의종류 종속형 (cascade form) 격자형 (lattice form)

37 IIR 필터의종류 IIR 필터의블록선도 직접형 표준형

38 IIR 필터의종류 종속형 (cascade form) 병렬형 (Parallel form)

39 IIR 필터의종류 격자형 (lattice form)

40 고전적인아날로그필터의종류 통과대역과저지대역의형상에의한필터의분류

41 하드웨어로필터구현 하드웨어에의한구성 입력 x(nt) 레지스터 a M 레지스터 a M-1 레지스터 a 1 레지스터 a 0 레지스터 ( 지연용 ) 레지스터 ( 지연용 ) 레지스터 ( 지연용 ) 레지스터 ( 지연용 ) 출력 y(nt)

소프트웨어로필터구현 필터계수의수가 11 차인경우의저역통과필터의필터계수와특성비교 FIR 형저역통과필터의계수예 N 계수 0 6.000000e-01 ±1 3.027307e-01 ±2-9.354893e-02 ±3-6.236595e-02 ±4 7.568267e-02 ±5 2.338826e-17 ±6-5.045512e-02 ±7 2.672826e-02 ±8 2.338723e-02 ±9-3.363675e-02 ±10-2.338826e-17 42

소프트웨어로필터구현 저역통과필터의 11 차계수를사용한경우의 FIR 필터의프로그램예 #include <stdio.h> main() { int num, n=11, i, k; double sum, d[11]={0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; double h[11]={ 2.338826e-17, /* -5 */ 7.568267e-02, /* -4 */ -6.236595e-02, /* -3 */ -9.354893e-02, /* -2 */ 3.027307e-01, /* -1 */ 6.000000e-01, /* 0 */ 3.027307e-01, /* 1 */ -9.354893e-02, /* 2 */ -6.236595e-02, /* 3 */ 7.568267e-02, /* 4 */ 2.338826e-17 /* 5 */ }; scanf( "%d", &num ); printf( "%d \n", num ); for(k=0-2/n; k<num+n/2; k++) { for(i=n-2; i>=0; i--) d[i+1] = d[i]; /* 데이터를하나씩우측으로이동 */ if(k<num) scanf("%lf", &d[0]); /* 최신데이터의입력 */ else d[0]=0.0; } } sum = 0.0; for(i=0; i<n; i++) sum +=d[i] * h[i]; if(k>=0) printf("%lf \n", sum); 43

44 소프트웨어로필터구현 각저역통과필터통과후의파형및진폭스펙트럼의비교

소프트웨어로필터구현 버터워스형 IIR 저역통과필터의 5 차계수를사용한경우의프로그램예 #include <stdio.h> #include <stdlib.h> #include <string.h> long WaveSize(FILE *); void fread( short*, int, int, FILE* ); main() { int hn=5, i, j; double sum; FILE *fpo, *outfp1; char fno[50], file_out1[50]; short *s_data; double *d_data; long datano; double ha[5]={1.0000, 0.0000, -0.4860, 0.0000, -0.0177}; /* 필터계수ha*/ double hb[5]={0.0940, 0.3759, 0.5639, 0.3759, 0.0940}; /* 필터계수hb*/ /* Allocate malloc size */ if(null==(d_data=(double *)malloc(datano*sizeof(double)))){ perror("no Memory d_data\n"); exit(1); } for(i=0;i<datano;i++){ d_data[i] = 0.0; } for(i=0;i<datano;i++){ d_data[i] = (double)s_data[i]; fprintf(outfp1," %lf \n", d_data[i]); } for(i=0; i<datano; i++) { for(j=hn-2; j>=0; j--) d_data[j+1] = d_data[j]; /*------------------------ * Reading of Speech ------------------------*/ strcpy(fno, "./Speech_data/h1-v061.8kz"); fpo=fopen(fno,"rb"); if(fpo==null){ printf("fpo not open!!"); exit(1); } datano = WaveSize(fpo); fseek(fpo,0,0); /* Allocate malloc size */ if(null==(s_data=(short *)malloc(datano*sizeof(short)))){ perror("no Memory data size \n"); exit(1); } fread(s_data, osizeof(shrt), datano, fpo); /*--------------------------------------------------- * Output File Open(SNR OUTPUT FILE) --------------------------------------------------*/ strcpy(file_out1, "filterout.data"); if((outfp1 = fopen(file_out1, "wt")) == NULL ){ printf("can't Open File_out1! \n"); exit(1); } } } free(s_data); free(d_data); /* 앞단의 FIR형필터처리 */ sum = d_data[i]; for(j=1; j<=hn; j++) sum += d_data[j] * ha[j]; d_data[0] = sum; /* 뒷단의 FIR형필터처리 */ sum = 0.0; for(j=0; j<hn; j++) sum += d_data[j] * hb[j]; fprintf(outfp1," %lf \n", sum); fclose(outfp1); /*------------------------ * WaveSize Function ------------------------*/ long WaveSize(FILE *fp){ long work; if( fseek(fp,0l, 2)!=0 ) return(0l); work=ftell(fp)/sizeof(short); return(work); } 45

46 창함수에의한디지털필터의설계예 창함수를적용한고역통과용필터계수 N 고역통과필터용필터계수 방형창해밍창해닝창블랙맨창 0 6.000000e-01 6.000000e-01 6.000000e-01 6.000000e-01 ±1-3.027307e-01-2.959150e-01-2.953224e-01-2.906970e-01 ±2-9.354893e-02-8.533045e-02-8.461580e-02-7.944454e-02 ±3 6.236595e-02 5.054020e-02 4.951187e-02 4.208082e-02 ±4 7.568267e-02 5.162677e-02 4.953495e-02 3.858205e-02 ±5-2.338826e-17-1.262966e-17-1.169413e-17-7.952008e-18 ±6-5.045512e-02-2.007368e-02-1.743181e-02-1.012988e-02 ±7-2.672826e-02-7.206442e-03-5.508893e-03-2.709872e-03 ±8 2.338723e-02 3.925598e-03 2.233282e-03 9.404675e-04 ±9 3.363675e-02 3.448237e-03 8.231497e-04 3.092260e-04 ±10-2.338826e-17-1.871061e-18-0.000000e+00 3.245773e-34

47 창함수에의한디지털필터의설계예 각필터계수를사용한고역통과필터의특성

48 창함수에의한디지털필터의설계예 창함수를적용한대역통과용필터계수 N 대역통과필터용필터계수 방형창해밍창해닝창블랙맨창 0 4.000000e-01 4.000000e-01 4.000000e-01 4.000000e-01 ±1 1.156329e-01 1.130295e-01 1.128031e-01 1.110364e-01 ±2-2.449142e-01-2.233981e-01-2.215270e-01-2.079886e-01 ±3-1.632761e-01-1.323159e-01-1.296238e-01-1.125253e-01 ±4 2.890821e-02 1.971967e-02 1.892067e-02-1.473703e-02 ±5 1.559217e-17 8.419774e-18 7.796086e-18 5.301338e-18 ±6-1.927214e-02-7.667466e-03-6.658358e-03-3.869270e-03 ±7 6.997550e-02 1.886671e-02 1.442247e-02 7.094537e-03 ±8 6.122856e-02 1.027735e-02 5.846808e-03 2.462175e-03 ±9-1.284809e-02-1.317110e-03-3.144152e-04-1.181138e-04 ±10-1.559217e-17-1.247374e-18-0.000000e+00 2.163848e-34

49 창함수에의한디지털필터의설계예 각필터계수를사용한대역통과필터의특성