안녕하세요....숙제를 해야하는데....도저히 초반 감이 안와서요....어제 종일 끙끙거리다가..결국 이렇게 질문 올리게 되었어요.
화요일까지 해야하는데....처음 시작만 감을 잡으면 나머진 될거 같은데..
도대체..이걸 어떻게 시작해야할지..난감해요. 왜냐...제가 원래 DSP 쪽은 완전 꽝인데다, 이번에 정신차리고 해보자..라고 하는 정도의 실력이구요...신호만 나오면 그냥 막 헤메는데다...필터에 대한 감도 제대로 아직 안 잡혀있어요...
그럼 문제 올려볼께요....제발 부탁드려요..

주어진 조건은 그래프에 나와 있는 형태이고, 선형 위상 FIR 필터의 최소 길이를 구하는 문제예요. 창 기법과 최적 기법을 이용해서 구해야 하는데..
주어진 조건을 보면 Hr(w)의 크기가 1을 기준으로 정해진것이 아니잖아요...책에 보니 기본적으로 1을 기준으로 리플이 생겨서 그 리플이 delta 값들이 되던데...
그러면 주어진 조건을 보면 최고값이 4.3이니 전체 값들을 4.3으로 전부 나눠줘야 할까요? 아니면 그냥 그 값을 사용하고, weight 함수를 지정해 줄때, 그냥 가중치를 주어야 할까요.
보아하니 멀티밴드 필터 같은데요...매트랩으로 프로그램 짜야하는데...일단 제가 짠것을 올려볼께요. 에러가 나서...어떻게 해야할지 모르겠어요.
일단 문제를 올릴께요.
(1) Use a window design approach and a fixed window function( fixed window function 이 뭔가요> 아무리 찾아도 안나오는데...ㅠ.ㅠ), design a minimum length linear-phase FIR filter to satisfy the given requirements.
(2) Using a window design approach and a Kasier window function, design a minimum length linear-phase FIR filter to satisfy the given requirements.
(3) Using Parks-McClellan design approach, design a minimum length linear-phase FIR filter to satisfy the given requirements.
그리고 제가 짠 프로그램...일단 (3)번 먼저 했거든요. 하나만 알면 다른건 응용이 될거 같은데....처음에 어떻게 문제를 풀어가야 할지 감이 안잡히네요.
Matlab으로 한거예요.
>> w1=0; w2=0.2*pi; w3=0.2*pi; w4=0.45*pi; w5=0.5*pi; w6=0.7*pi; w7=0.75*pi; w8=1*pi; % 주파수 값들
>> delta1=0.05; delta2=0.1; delta3=0.05; delta4=0.15; % 리플값들이예요. 1-delta, 1+delta 이린거 있잖아요.
>> weights=[1 delta2/delta1 1 delta4/delta1]; % weights 값들...
>> delta_f=0.05; % 이건 M을 구할때 필요한 값,
>> M=ceil((-20*log10(sqrt(delta1*delta2))-13)/(14.6*delta_f)+1) %M은 적당한 값을 구해주기 위해서 iterationj 기법을 이용하는데...이때 사용되는 반복된 횟수 같아요. 머..전체 길이라고 해야하나...L=M-1에 사용되요. 이 식은 Parks-McClallan 던가...머 거기서 나온 공식
M =
15
>> f=[0 w2/pi w3/pi w4/pi w5/pi w6/pi w7/pi 1]; %firpm에 들어가는 f 값들
>> m=[0.05 0.05 2.0 2.0 0.05 0.05 4.15 4.15]; % 이것도 마찬가지....크기라고 해야하나.....책에는 전부다 1보다 작던데..여긴 주어진 크기들이 다들 1보다 크니...-_-; 일단 이렇게 설정을 했는데...왠지 아닌거 같거든요.
>> h=firpm(M-1,f,m,weights); <--여기서 에러 발생했어요 % h를 구하기위해 사용된 함수. 예전엔 remez인가를 사용햇다더군요.
에러가 나버리니 다음으로 넘어갈수도 없고....
아....제발 좀 봐주세요....힌트라도...아니면 어떻게 하라는 초반 방법이라도....ㅠ.ㅠ