본문 바로가기

DSP55

오디오 필터(6)-이퀄라저(Equalizer)의 품질팩터(Quality Factor, Q) 품질 팩터 이퀄라이저에 사용되는 필터는 품질 팩터(Q)를 필터의 인자로 사용합니다. Q는 필터가 어느 정도 범위까지 영향을 미치는지 결정합니다. 일반적으로 Q 작을수록 필터가 주파수 축에서 영향을 미치는 범위가 큽니다. Q는 영향을 미치는 주파수에 범위 의해 다음과 같이 정의됩니다. 아래는 피킹 필터의 Q를 설명하는 그림입니다. $$Q=\frac{f_{c}}{BW}=\frac{f_{c}}{f_{1}-f_{0}}$$ $$f_{0,1}=f_{c}\left (\sqrt{1+\frac{1}{4Q^{2}}}+\frac{1}{2Q} \right )$$ Slope 반면 쉘빙 필터는 Q보다는 slope이라는 용어를 사용합니다. 이는 쉘빙 필터의 모양에서 필터가 기울어진 정도를 표시하려고 만든 개념입니다. Q와 slop.. 2021. 10. 29.
오디오 필터(5)-이퀄라이저와 그래픽 이퀄라이저 오디오의 이퀄라이저 이퀄라이저(equalizer)는 공학적 기능으로 볼 때 평활기입니다. 즉 어떤 장치의 주파수 축 특성이 평탄하지 않을 때 이를 보정(compensation)해서 평활화하기 위해 사용합니다. 이를 오디오 장치에 개념을 확장해서 활용하고 있습니다. 오디오에서 이퀄라이저는 크게 두 가지 종류가 있는데 파라메트릭 이퀄라이저(Parameteric Equalizer, PEQ)와 그래픽 이퀄라이저(Graphic Equalizer, GEQ)입니다. 파라메트릭 이퀄라이저 일반적으로 오디오에서 이퀄라이저라고 하면, 파라메트릭 이퀄라이저를 의미합니다. 이퀄라이저는 입력되는 오디오 신호의 음색을 조정할 목적으로 사용됩니다. 예를 들어 사람마다 음성 특성이 다른데 각 특성이 작 두드러지도록 이퀄라이저로 조정.. 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.
오디오 필터(2)-바이쿼드 필터 (Bi-quad Filter), s 영역, z영역, 필터의 안정성 신호처리와 필터 계수 오디오 처리에서는 다양한 필터를 사용합니다. 그런데 이 필터를 설계하고 최종적으로 얻고자 하는 것이 무엇일까요? 한마디로 필터의 계수를 구하고자 노력하는 것입니다. 이렇게 얻어진 필터 계수들은 IIR 또는 FIR 필터에 의해 실제 신호에 필터 특성을 부가한 결과를 얻게 되고 이 결과가 우리가 신호처리를 하는 과정입니다. 그러므로 필터 계수를 어떻게 얻을지에 목표를 삼으면 됩니다. 여기서는 오디오 필터에서 가장 많이 사용되는 필터 전달 함수인 바이쿼드 필터에 대해서 알아보고 s영과 z영역에 대해서도 알아보겠습니다. 아날로그 신호를 표현하는 s영역 전자공학에서 미분과 적분을 많이 사용합니다. 이 중에서 적분이 회로를 해석할 때 어려움을 주게 됩니다. 그래서 좀 더 편리하게 회로를 해석하.. 2021. 10. 29.
오디오용 필터(1)-필터의 종류와 특성, 이상적인 필터 특성 오디오 필터 오디오 필터는 사용하는 목적에 따라 크게 세 가지 그룹으로 분리됩니다. 필터의 통과가 차단 특성을 이용하여 크로스오버(crossover, xover)를 구성하거나, 오디오의 음질 보정을 위해 사용하는 이퀄라이저 그리고 음향적인 보정을 위해 사용하는 그래픽 이퀄라이저가 있습니다. 그리고 보완적인 특성을 가지는 대역 저지 필터와 전대역 통과 필터가 있습니다. 이 글에서는 오디오에서 사용하는 필터에 사용되는 각종 기술적인 용어를 알아보도록 하겠습니다. 필터 전달 함수에 따른 필터의 구분 디지털 오디오 필터는 전자회로의 부품을 대신하여 필터의 동작 특징을 결정하는 필터 계수(filter coefficeint)가 있습니다. 또 필터 계수가 연산에서 어떻게 사용되는지에 따라서 두 가지 형태가 있습니다... 2021. 10. 29.
다이내믹 신호처리(7)-게이트 게이트 다이내믹 프로세서에서 게이트(gate) 또는 노이즈 게이트(noise gate)는 아래 그림과 같이 문턱 레벨(threshold) 이하의 신호는 모두 묵음(mute)으로 처리하는 장치입니다. 게이트 또한 포락선을 구하고, 포락선에서 문턱 레벨 조건을 이용해서 동작합니다. 포락선을 사용하지 않고 그냥 입력 신호의 크기 조건으로 게이트를 동작시키면, 신호의 중간중간마다 묵음이 발생해서 딱딱 끊기는듯한 소리로 들리게 됩니다. 그러니 포락선을 기준으로 게이트가 동작해야 합니다. 실효치 게이트 구현 코드 아래의 코드는 실효치 포락선을 구해서 게이트를 구현하는 내용입니다. 포락선 조건만 잘 구하면 이득을 처리하는 부분인 매우 단순합니다. clear all file_name = 'test.wav'; [xx,f.. 2021. 10. 21.
다이내믹 신호처리(6)-피크 모드 컴프레서, 리미터 피크 검출기를 이용한 컴프레서 저번의 실효치를 이용한 컴프레서에서 피크 포락선을 검출하는 방법으로 변형하여 컴프레서를 구현해 보겠습니다. 내용은 저번 글과 동일하게 포락선을 구하고, 포락선과 문턱 레벨(threshold)의 차이를 이용해서 압축비(ratio)를 반영한 이득을 구하고, 입력 신호에 이득을 곱해서 출력하는 방법입니다. 구현 코드 다음은 GNU Octave로 구현한 피크 모드 컴프레서입니다. clear all file_name = 'test.wav'; [xx,fs]=audioread(file_name); peak_hold_time = 5*10^-3; peak_hold_max = peak_hold_time * fs; peak_hold_cnt =0; start_x = 25000; gap = 300.. 2021. 10. 21.
다이내믹 신호처리(5)-실효치 컴프레서, 리미터 컴프레서의 동작 특성 컴프레서(compressor)는 다이내믹 신호처리(dynamic processing)의 한 종류로, 앞선 글에서 설명한 것과 같이 문턱 레벨(threshold) 이상의 신호를 압축비(ratio)로 압축해서 신호의 크기를 줄여주는 역할을 합니다. 컴프레서는 아래 그림과 같이 어택(attack) 조건과 릴리즈(release) 조건을 가지고 포락선을 검출하고 이를 이용해서 VCA를 제어합니다. 이때 포락선을 실효치(rms) 대신 피크 검출을 사용해도 됩니다. 그러면 아래 그림과 같은 입출력 관계를 가지게 됩니다. 아래의 그림은 문턱 레벨을 -30dB로 압축비를 2로 하여 문턱 레벨 이상의 신호들은 그 크기를 구간에서 1/2로 줄여 줍니다. 여기서 신호의 크기는 모두 dB 단위입니다. 예를.. 2021. 10. 21.
다이내믹 신호처리(3)-실효치 포락선, 피크 포락선 포락선 구하기 저번 글에서는 오디오 신호의 변화 특성 그리고 시정수를 이용하서 포락선을 구하는 개요를 알아 봤습니다. 이번 글에서는 실제 다이내믹 선호처리에서 사용하난 실효치를 이용한 포락선 검출과 피크 발생을 고려한 포락선을 구하는 두가지 방법을 알아보겠습니다. 실효치 포락선 구하기 실효치(rms)는 아래의 글과 같이 특정 구간의 신호들에 대해 평균을 먼저 계산해야지만 구해지는 값입니다. 그런데 신호처리 과정에서 실효치를 구하기 위한 연산을 할당할 정도로 DSP가 한가한 경우는 드물 것입니다. 굳이 실효치가 매우 중요한 역할을 하지 않는 한 입력 신호에 대해 곧바로 근삿값이라도 실효치를 계산해 준다면 좋을 것입니다. 또 신호처리 과정에서 레벨 미터 정보를 만들 필요가 있는데 근사 실효치는 아날로그식 V.. 2021. 10. 21.
다이내믹 신호처리(2)- 오디오 신호변화 특성과 포락선 오디오 신호의 변화 특성 잡음 신호등의 인공적인 신호를 제외하고 음성과 악기는 아래 그림과 같이 시간에 따라 신호가 변화합니다. 이런 신호의 변화 형태를 포락선(envelope)이라 하고, 포락선에 따라 신호처리를 하는 방식을 다이내믹 처리(dynamic processing)라고 합니다. 그러므로 다이내믹 신호처리를 위해서는 포락선을 검출하는 내용이 필요하고 사실 매우 중요한 역할을 합니다. 이글에서는 오디오 신호의 변화인 포락선을 어떻게 검출하는지 알아보겠습니다. 오디오 신호 변화의 구간 아래의 신호의 그래프는 절댓값 또는 데시벨로 신호를 표시한 내용으로 이를 포락선(envelope)이라고 합니다. 다이내믹 처리는 사실 포락선을 구하고, 어떤 포락선 상태에 있는지에 따라 신호를 처리하는 방법을 달리합니.. 2021. 10. 21.
다이내믹 신호처리(1)-개요 다이내믹 프로세서의 종류와 기능 다이내믹 신호처리(dynamic processing)는 시간적인 흐름에 따라 변하는 오디오 신호를 신호의 크기 변화 조건을 고려하여 출력 이득을 조정하는 방법입니다. 그 기반은 평균을 구하는 것이고 이를 확장해서 포락선을 구하는 것인 먼저입니다. 이를 이용해서 다이내믹 신호처리에 관한 내용을 몇 개의 글에 나눠서 정리해 보겠습니다. 오디오 신호의 특성과 포락선 실효치와 피크 포락선 구하기 어택과 릴리즈를 고려한 포락선 구하기 실효치 모드의 컴프레서와 리미터 피크 모드의 컴프레서와 리미터 게이트 먼저 이 글에서는 다이내믹 신호처리를 수행하는 다이내믹 프로세서(dynamic processor)의 기능적인 특성과 종류에 대해 알아보겠습니다. 아날로그 다이내믹 프로세서 아날로그 .. 2021. 10. 21.
Python의 FFT, 평균화(averaging), 평활화(Smooth) 오디오의 FFT 오디오의 주파 수축 정보를 알아보기 위해서 FFT를 사용합니다. 이글에서는 Python을 이용해서 wav 음악 파일의 일부를 읽어서 FFT의 결과를 그래픽으로 표시해 보겠습니다. 동시에 octave 조건을 이용해 보겠습니다. 평활화 주파수 축의 결과가 주파수에 따라서 신호의 크기 변화가 크기 때문에 유의미한 신호의 특성을 얻기가 힘듭니다. 그래서 특정 주파수를 기준으로 주변의 신호들과 평균을 내고 이를 대표해서 표시하는 방법을 사용하는데 이를 평활화(smooth)라고 합니다. 평균은 다른 글의 내용을 참조해 주세요. 평활화는 주로 옥타브 단위로 주변의 신호를 평균 내서 화면에 표시합니다. 아래의 코드에서 평활화 없는 FFT 결과, 1 oct로 평활화 그리고 1/3 oct로 평활화한 결과를.. 2021. 9. 28.
오디오 신호(21)-ADC, DAC, 지연 시간 아날로그 신호를 디지털 신호로 상호 변환 디지털 신호처리를 하려면 아날로그 신호를 디지털 신호로 변환해야 합니다. 이 부분은 DSP가 수행하지 않고 전용 부품인 ADC(analog-to-digital converter) 또는 DAC(digital-to-analog converter)가 수행합니다. 두 부품을 합해서 ADAC라고 부르기도 하고 최근에는 코덱(codec)이라고 부릅니다. 이 글에서는 ADAC의 동작 원리와 이와 관련된 공학적인 특징을 알아보겠습니다. ADC ADC는 아날로그 신호를 디지털 신호로 변환하는 부품입니다. 고전적인 ADC는 아래 그림과 같이 여러 개의 오피 앰프를 이용한 비교기를 조합하여 입력 신호에 의한 비교기의 출력을 부호화하는 엔코더(encoder를 통해 I2S와 같은 시리얼.. 2021. 9. 17.
FFT와 윈도우 오디오 신호에서 주파수 정보를 보기 오디오 신호의 특성을 시간축에서 보다 주파수 축에서 알아보는 것이 더욱 편리합니다. 즉 주파수별로 신호의 크기와 위상의 특성으로 오디오가 어떤 정보를 가지고 있는지 알아봅니다. 이를 위해서 다른 글에서 약간 설명한 푸리에 변환을 사용합니다. 또 현실적인 내용으로 푸리에 변환을 적용하도록 도와주는 각종 윈도우에 대해서도 알아 보겠습니다. 이 윈도우는 디지털 필터를 만들때에 중요한 역할을 하기 때문에 특성과 종류를 알아두는 것이 좋습니다. 푸리에 변환과 주파수 해상도 푸리에 변환(Fourier transform)은 시간축의 신호를 주파수 축의 정보로 변환하는 방법으로 다음과 같이 정의됩니다. 이는 $f(t)$가 연속적인 신호 즉 오디오 신호에 적합한 변환 방식입니다. $$.. 2021. 9. 16.
오디오 신호(20)-옥타브 주파수 옥타브 주파수 구하기 저번 글에서 옥타브를 정의하는 공식을 알아봤습니다. 이번에는 오디오 주파수 대역에서 옥타브 주파수를 구하는 내용을 알아보겠습니다. 이글의 목적은 다른 곳에서 설명한 피킹 필터를 이용한 이퀄라이저의 주파수를 결정하는 기술적 기준을 마련하기 위해 작성했습니다. 1 oct의 주파수 다른 글에서 말한 것과 같이 1 oct는 특정 주파수에서 2배가 되는 다른 주파수 사이의 관계라고 설명한 적 있습니다. 그러면 가청 주파수 대역은 1 oct(1옥타브)로 보면 어떤 특성이 있을까요? 최저 주파수를 20Hz로 하고 계산하면 첫 번째 옥타브 주파수는 다음과 같습니다. $$f_2 = f_1 \cdot 2^{oct}$$ $$f_2 = 20 \cdot 2^{1oct} = 20 \cdot 2 = 40Hz$.. 2021. 9. 16.
Qucs(15)-비교기 (Comparator)와 영점 검출기(Zero crossing detector) 비교기와 응용 회로 비교기는 오피 앰프를 활용하는 회로에서 많이 사용됩니다. 그만큼 비교기에 대한 기본적인 동작 방식을 잘 이해할 필요가 있습니다. 이글에서는 Qucs를 이용해서 비교기의 동작 특성을 알아보도록 하겠습니다. 그리고 비교기를 이용한 영점 검출기에 대해서 알아보겠습니다. 비교기 먼저 Qucs의 설치와 기본적인 사용 방법은 아래 내용을 참조하시면 됩니다. https://medialink.tistory.com/111 https://medialink.tistory.com/112?category=959576 https://medialink.tistory.com/113?category=959576 오디오 회로에서 비교기(Comparator)는 매우 활용도가 높습니다. 가장 흔하게 사용되는 경우는 오디.. 2021. 8. 31.
Qucs(14)-슬라이스(Slice) 슬라이스 슬라이스(Slice) 회로는 이전 글의 클리핑 회로의 특성을 복합해놓은 회로로 신호의 상한 과 하한 크기를 제한하는 기능을 가집니다. 그러므로 이 회로는 신호의 과입력을 방지하기 위해 사용합니다. 이 글에서는 Qucs를 이용해서 슬라이스 회로를 구성하고 실험해 보겠습니다. 오피 앰프를 이용한 슬라이스 회로 먼저 Qucs의 설치와 기본적인 사용 방법은 아래 내용을 참조하시면 됩니다. https://medialink.tistory.com/111 https://medialink.tistory.com/112?category=959576 https://medialink.tistory.com/113?category=959576 다음회로는 제너다이오드를 이용해서 출력을 $\pm 5V$로 제한하는 합니다. 하.. 2021. 8. 31.
아날로그 필터 설계 프로그램 FilterPro 소개 FilterPro TI사에서 아날로그 통과 필터를 쉽게 구현해주는 프로그램인 FilterPro2와 FilterPro3을 무료로 제공해 주고 있습니다. 현재는 TI의 홈페이지에서 온라인으로 기능을 제공하고 있습니다. 어떤 이유에서인지 예전의 프로그램 방식을 여전히 사용이 편리하다고 느끼도 있어서 이글에서는 FilterPro3을 활용하는 방법을 설명하고자 합니다. FilterPro3는 인터넷에서 구할 수 있습니다. 필터 프로 데스크톱을 실하면 제일 먼저 어떤 필터를 설계할지 선택하는 화면이 나옵니다. 다음과 같이 조정해 봅니다. 먼저 Lowpass 필터로 설계해보겠습니다. Next 버튼을 눌러 필터의 특성을 조정합니다. 여기서 Filter Order로 선택했습니다. 아니면 이 부분을 비활성화하고 Passba.. 2021. 8. 28.
오디오 신호(18)-옥타브(Octave), 데케이드(Decade), 필터 기울기(slope) 로그 스케일에 대해 아래 글에서 설명드린 적이 있습니다. https://medialink.tistory.com/manage/newpost/67?type=post&returnURL=https%3A%2F%2Fmedialink.tistory.com%2Fmanage%2Fposts%3Fcategory%3D959576 옥타브와 데케이드는 두 주파 수사의 관계를 표시하는 방법으로 로그 스케일(log scale)로 데이터를 표시할 때 주로 사용합니다. 이글에서는 옥타브와 데케이드를 구하는 방법과 두 사이의 관계를 알아보겠습니다. 옥타브(Octave) 옥타브는 기준 신호 $f_{1}$과 $f_{2}$ 사이의 관계를 지수적인 관계로 표시합니다. 사실은 두 신호의 변화가 몇 배 변화했는지를 지수로 변경해서 보는 것입니다. .. 2021. 8. 28.