본문 바로가기

GNU Octave11

오디오 필터(19)-주파수 샘플 방법으로 FIR 필터 구하기 주파수 샘플링 주파수 샘플링 방법으로 FIR 필터를 구하는 방법은 참으로 기막힌 기법입니다. 시간축에서 계속 변화하는 아날로그 신호를 샘플링으로 디지털 신호로 변화하는 방법이 있었습니다. 이 방법을 주파수 축에서 적용하는 해서 필터를 구하는 방법이 주파수 샘플링 방법입니다. 이 글에서는 주파수 샘플링 방법으로 원하는 특성의 필터를 쉽게 구하는 방법에 대해서 알아보겠습니다. 사실 이 방법이 실제로 필터를 구하기 더 쉽습니다. 먼저 주파수 축에서 구현될 필터 모양을 결정해야 합니다. 수식으로 해도 되고 실제 원하는 필터의 모양에서 필터의 크기에 관한 정보를 수집해야 합니다. 그리고 주파수 축에서 각주파수로 [0, 2$\pi$] 사이에 필터의 모양에 따라 N개의 샘플을 등간격으로 채취합니다. 이를 H(k)로 .. 2021. 10. 29.
오디오 필터(18) - 윈도우 방법을 이용한 FIR 필터 구하기 윈도우 방법을 이용한 FIR 필터 구하기 지난 글에서 이상적인 필터의 모양을 기반으로 필터 $h(n)$을 구하는 방법을 알아봤습니다. 그런데 $h(n)$은 시간이 -t이고 주파수가 $-\omega $인 조건까지 사용해야 하기 때문에 공학적으로 사용할 수 없습니다. 이를 비 인과성(non-causalty)라고 합니다. 비 인과성은 현재, 과거, 미래의 모든 신호가 필요합니다. -t와 $-\omega $는 미래의 정보입니다. 그런데 우리는 미래의 시간을 만들 수 없습니다. 그러니 인과성(causalty)만 고려해야 합니다. 즉 현재와 과거의 신호만으로 공학적으로 의미 있는 신호처리를 해야 합니다. 이 글에서는 지난 글의 비인과성 조건의 필터를 인과성 조건으로 변경해서 저역 통과 필터를 만들어 보겠습니다. S.. 2021. 10. 29.
오디오 필터(16)-IIR 필터 실행, 오디오 볼륨 처리 IIR 필터 다루기 이전의 글에서 디지털 필터의 전달 함수를 위한 계수들을 구하는 방법을 알아봤습니다. 이때 디지털 필터 전달 함수의 형태에 따라 IIR 또는 FIR가 있으며 형태가 조금 다릅니다. 이에 관한 내용은 다른 글에서 다루겠습니다. 이글에서는 GNU Octave에서 오디오를 다루는 방법, 그리고 이를 이용해서 오디오의 볼륨을 조정하는 방법, 마지막으로 디지털 필터를 적용해서 오디오 신호를 처리하고 출력하는 방법을 알아보겠습니다. 유투브를 보시면 오디오 파일을 6초 정도로 짧게 만들어 실험에 사용하는 방법과 GNU Octave로 오디오 파일을 출력 하는 방법 까지 설명해 놨습니다. IIR 필터 실행 방법 IIR 필터는 다음과 같이 처리됩니다. 입력 신호를 받아서 필터 계수를 적용한 IIR 필터에.. 2021. 10. 29.
오디오 필터(14)-IIR 버터워스 고역 통과 필터(Butterworth High Pass Filter) 설계 고역 통과 필터 설계 다른 글에서 사용했던 유사한 방법으로 Butterworth HPF를 설계하겠습니다. 이번엔 필터의 Q를 이용하지 않고, 필터의 차단 주파수와 감쇄량을 이용하는 방법을 알아보겠습니다. 다음과 같은 조건으로 고역 통과 필터를 만들겠습니다. 통과대역의 특성으로 차단 주파수와 통과대역 주파수$f_{c}=F_{p}=1000Hz$로 하겠습니다. 그러면 $F_{p}$ 에서 감쇄량은 -3dB가 됩니다. 그리고 저지 대역의 주파수 $F_{s}=80Hz$이며 감쇄량이 -80dB입니다. 이때 샘플링률 $f_{s}=44100Hz$, 샘플 구간 $T_{s}=1/f_{s}$입니다. 필터의 전달 함수 구하기 먼저 필터의 조건으로 다음과 같이 필터를 계산하기 위한 사전 조치를 취합니다. $$A_{p}=10^{\.. 2021. 10. 29.
오디오 필터(13)-IIR 버터워스 저역 통과 필터(Butterworth Low Pass Filter) 설계 저역통과 필터 오디오 필터로 가장 유용한 형태는 버터워스 필터입니다. 통과대역의 특성이 가장 평탄하기 때문입니다. 물론 이를 발전시킨 필터도 있습니다만, 사용성이나 실용적으로 구현하기에도 버터워스 필터는 오디오에 적합합니다. 다른 글에서는 필터의 Q를 이용해서 저역 통과 필터의 계수를 구했습니다. https://medialink.tistory.com/74?category=958130 이글에서는 필터의 일반적인 규격 조건을 통해 버터워스의 s-영역(s-domain)(라플라스 영역)에서 구하고 이를 z-영역(z-domain)으로 변환해서 필요한 디지털 계수를 구하는 방법을 알아보겠습니다. 그리고 필터의 특성을 GNU Octave에서 알아보도록 하겠습니다. 버터워스 필터를 구하는 방식 아날로그 신호 영역인 s.. 2021. 10. 29.
오디오 필터(12)-IIR 노치 필터(Notch Filter, NF) 노치 필터 노치 필터(notch filter)는 대역 저지 필터(band rejection filter)의 하나로 매우 좁은 주파수 대역의 신호를 차단할 목적으로 사용합니다. 이 필터는 오디오 신호처리에서는 적응 필터에서 하울링 억제를 위해 사용됩니다. 또는 특정 주파수의 노이즈를 제거할 때도 사용합니다. 노치 필터를 만드는 방법도 여러 가지가 있습니다. 특히 피킹 필터를 대신 사용해도 됩니다. 필터의 계수는 다음과 같이 생성하면 됩니다. 여기서 Q에 따라 노치 필터가 형성하는 대역이 달라집니다. 이 부분에 대한 내용은 다음을 참조해 주세요 https://medialink.tistory.com/73?category=958130 https://medialink.tistory.com/77?category=9.. 2021. 10. 29.
오디오 필터(11)-IIR 전대역 통과필터(All Pass Filter, APF) 전대역 통과 필터 전대역 통과 필터(all pass filter, APF)는 LPF등과 다르게 모든 신호를 그냥 통과시킵니다. 그러나 필터 주파수를 기준으로 위상을 변경시킵니다. 그래서 위상 특성의 수정을 위해서 주로 사용합니다. 이를 이용해서 인공 잔향기를 만들기도 합니다. APF의 필터 계수 APF의 필터 계수는 다음과 같이 구합니다. 이때 Q에 따라서 위상의 변화 정도가 결정됩니다. 이부분에 대햔 내용은 아래를 참조해 주세요 https://medialink.tistory.com/73?category=958130 https://medialink.tistory.com/77?category=958130 $$h=\frac{sin(\omega_0)}{2Q}$$ $$b_{0}=a_{2}=1-h$$ $$b_{1.. 2021. 10. 29.
오디오 필터(10)-IIR 대역통과 필터(Band Pass Filter, BPF) 대역 통과 필터 대역통과 필터(band pass filter, BPF)는 특정 주파수 사이의 신호만 통과하는 필터입니다. 대역통과 필터는 오디오 신호의 대역을 조정해서 불필요한 잡음의 영향을 줄이거나, 음향적인 효과를주기 위해 사용합니다. 특히 스피커를 위한 크로스오버에서도 활용됩니다. 이부분은 다시 다루기로 하겠습니다. 필터 합성 이 필터를 만드는 방법도 여러 가지가 있지만, 다음과 같이 저역통과 필터와 고역통과 필터를 조합해서 구현하기도 합니다. 그러니 두 필터를 형성하는 필터 계수를 각각 구하고 조합하는 방법을 사용합니다. 이때 필터의 순서는 대역 통과 필터를 구현하는데 아무런 관계가 없습니다. 두 필터를 합성하는 방법은 두필터의 전달 함수를 곱하면됩니다. 그런데 다른 글에서 전달함수의 결과로 필터.. 2021. 10. 29.
오디오 필터(4)-IIR 고역 통과 필터(Hi Pass Filter, HPF) 고역 통과 필터 다른 글에서 다룬 저역 통과 필터와 같은 방법으로 필터 계수를 구할 수 있습니다. https://medialink.tistory.com/74?category=958130 고역 통과 필터는 아래 그림과 같이 차단 주파수를 기준으로 차단 주파수보다 높은 주파수는 그대로 출력하고 다른 주파수 부분은 출력을 억제하는 특성을 가지고 있습니다. 이 부분에 대한 내용은 아래를 참조해 주세요 https://medialink.tistory.com/73?category=958130 https://medialink.tistory.com/77?category=958130 $$h=\frac{sin(2\pi f)}{2Q}$$ $$b_{0}=b_{1}=\frac{1+cos(2\pi f)}{2}$$ $$b_{1}= .. 2021. 10. 29.
오디오 필터(3)-IIR 저역 통과 필터 (Low Pass Filter, LPF) 저역 통과 필터 저역통과 필터는 필터의 차단 주파수를 기준으로 이보다 낮은 주파수는 입력과 출력이 같도록 통과 시키고, 나머지 부분은의 주파수는 통과를 차단하는 필터입니다. 이 필터는 오디오용 필터의 기본이 되는 중요한 필터입니다. 이중에서 음성확성에 사용되어 좋은 음질을 제공하기도 합니다. 이 글에서는 저역 통과 필터의 필터 계수를 구하는 방법을 알아 보겠습니다. 필터 계수는 신호 처리 과정에서 IIR 필터에 의해 실제 입력되는 신호를 처리과정에 사용되기 때문입니다. 다른 글에서 IIR을 다루도록 하겠습니다. Q를 이용한 저역 통과 필터의 설계 디지털 저역 통과 필터(low pass filter, LPF)를 구현하는 방법도 여러 가지가 있습니다. 여기서는 아날로그 필터의 Q값을 이용해서 필터를 구현하는.. 2021. 10. 29.
다이내믹 신호처리(4)-어택과 릴리즈를 고려한 포락선 검출 오디오 신호 특성을 고려한 포락선 검출 지난 글에서 오디오 신호가 시간에 따라 4개의 구간으로 구분된다고 설명했습니다. 이 중에서 어택과 릴리즈에 따라서 포락선을 다르게 구하는 방법을 알아보겠습니다. 이는 오디오 신호의 변화를 청감적인 특성을 좀 더 고려해서 포락선을 구하는 방법으로 에텍 구간에서는 될 수 있으면 빠르게 증가하는 오디오 신호를 포락선에 빠르게 반영하고 오디오 신호가 감소하는 릴리즈 구간에서는 포락선 감소로를 다소 늦추는 것입니다. 이 방법은 다이내믹 신호처리에서 일반적으로 사용하는 방법입니다. 신호 변화만 고려한 포락선 검출 지난 글에서 신호의 변화에서 피크신호를 둔화시키는 내용의 포락선을 구한 적이 있습니다. 이를 좀 변경해서 신호가 증가할 때와 감소할 때 각기 다른 시정수를 적용하도록.. 2021. 10. 21.