본문 바로가기

분류 전체보기158

오디오 필터(10)-IIR 대역통과 필터(Band Pass Filter, BPF) 대역 통과 필터 대역통과 필터(band pass filter, BPF)는 특정 주파수 사이의 신호만 통과하는 필터입니다. 대역통과 필터는 오디오 신호의 대역을 조정해서 불필요한 잡음의 영향을 줄이거나, 음향적인 효과를주기 위해 사용합니다. 특히 스피커를 위한 크로스오버에서도 활용됩니다. 이부분은 다시 다루기로 하겠습니다. 필터 합성 이 필터를 만드는 방법도 여러 가지가 있지만, 다음과 같이 저역통과 필터와 고역통과 필터를 조합해서 구현하기도 합니다. 그러니 두 필터를 형성하는 필터 계수를 각각 구하고 조합하는 방법을 사용합니다. 이때 필터의 순서는 대역 통과 필터를 구현하는데 아무런 관계가 없습니다. 두 필터를 합성하는 방법은 두필터의 전달 함수를 곱하면됩니다. 그런데 다른 글에서 전달함수의 결과로 필터.. 2021. 10. 29.
오디오 필터(9)-IIR 이퀄라이저(Equalizer), 하이 쉘빙 필터(High Shelving Filter, HSF) 하이 쉘빙 필터 하이 쉘빙 필터(hight shelving filterm, HSF)는 다른 글에서 설명한 로 쉘빙 필터(low shelving filter, LSF)와 반대로 고음 영역의 이득을 조정합니다. 하아 쉐빙 필터도 조정하고자 하는 주파수, 이득 드리고 필터의 기울기를 인자로 합니다. 필터를 구하는 내용은 두 필터가 동일하며 필터 계수는 다음과 같습니다. 이 부분에 대한 내용은 아래를 참조해 주세요 https://medialink.tistory.com/73?category=958130 https://medialink.tistory.com/77?category=958130 $$\omega_{0}=\frac{2\pi f}{f_{s}}$$ $$A=10^{\frac{G}{40}}$$ $$c_{0}=co.. 2021. 10. 29.
오디오 필터(8)-IIR 이퀄라이저(Equalizer), 로 쉘빙 필터(Low Shelving Filter, LSF) 로 쉘빙 필터 이퀄라이저에서 사용되는 로 쉘빙 필터(low shelving filter, LSF)는 저역 부분의 이득을 조정할 목적으로 사용되는 이퀄라이저용 필터입니다. 필터 주파수를 기준으로 낮은 주파수 부분의 신호를 증폭하거나 감소합니다. 로 쉘빙 필터는 조정하고자 하는 주파수와 조정하는 이득 그리고 필터의 기울기를 인자로 합니다. 피킹 필터와 다르게 Q 대신 slope을 이용해서 조정합니다. 그런데 두 인자는 변환이 가능합니다. 관련 내용은 다른 글을 참조해 주세요. 필터를 구하는 기본 내용은 피킹 필터와 같으니 피킹 필터 부분으로 참조하면 됩니다. 필터 계수는 다음과 같습니다. 여기서 $f$는 필터의 주파수, $f_{s}$는 샘플링 주파수, G는 dB로 표시되는 필터의 이득, slope는 필터의 .. 2021. 10. 29.
오디오 필터(7)-IIR 이퀄라이저(Equalizer), 피킹 필터(Peaking Filter, PF) 피킹 필터 오디오 시스템에서 사용 용도가 많은 필터가 아마도 피킹 필터(peaking filter)입니다. 이 필터는 중심 주파수, 이득, 그리고 품질 팩터 Q로 조정이 가능합니다. 이 필터는 특정 주파수 근처의 신호를 증가 또는 감소하여 음향적인 특징을 조정할 때 사용합니다. 조정의 결과도 매우 효과적이어서 피킹 필터의 활용도는 매우 높습니다. 이 필터는 필터 중심 주파수를 기준으로 근처의 주파수의 이득에 영향을 미칩니다. 이는 필터 중심 주파수 부근에 다른 주파수에도 영향을 줍니다. 이 필터의 품질 팩터 Q에 따라서 영향을 주는 주파수 범위가 달라집니다. Q가 크다는 것은 매우 좁은 범위의 주변 주파수 영역에만 영향을 미친다는 의미 합니다. 필터 계수는 다음과 같습니다. 이부분에 대한 내용은 아래를 .. 2021. 10. 29.
오디오 필터(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.
FreeRTOS와 Semaphore, Queue를 이용한 시리얼 통신 FreeRTOS RTOS(real time Operating System)는 프로세스와 주변 자원을 공유하거나 동작 여부를 보장해주는 방법들의 집단입니다. 여기에는 thread를 기본으로 task를 구성하는 방법과, 자원을 공유하는 뮤텍스 세마포어등이 기본으로 들어갑니다. 향후에 이에 관한 세부 내용을 정리하겠습니다. 이글에서는 RTOS 중에서 마이크로프로세서에 많이 사용되는 FreeRTOS를 이용해서 Arduin 에서 시리얼 통신을 구현하는 방법을 알아보겠습니다. Arduino의 FreeRTOS Arduino에서 FreeRTOS를 이용해서 시리얼 수신하는 방법을 알아보겠습니다. 우선 다른 글에서 다루었던 Queue 생성 내용을 먼저 참조해야 합니다. 먼저 아두이노에서 라이브러리 매니저에서 FreeRTO.. 2021. 10. 24.
Arduino, FreeRTOS, semaphore, mutex 개요 RTOS 동기화 RTOS에서 태스크 동기화(task synchronization)는 한마디로 특정 자원을 여려 태스크가 공유해 사용할 때 발생하는 교착상태(deadlock)를 해소하는 방법을 의미합니다. 교착상태는 하나의 자원을 여러 태스크가 서로 사용하겠다고 또는 어떤 이유에서 인지 태스크가 반환하지 못하는 경우에 발생해서 관련된 태스크들이 동작을 멈추는 현상으로 RTOS가 가지는 문제 중 하나입니다. 예를 들어 아두이노에서 Serial.pintln()을 두 개의 태스크가 서로 사용하려 하면 둘 중에 하나의 태스크만 사용할 수 있거나, 둘 다 사용하지 못하는 경우가 발생합니다. 이와 같은 문제를 해결하는 방법이 동기화이고 FreeRTOS는 세마포어(semaphore)와 뮤텍스(mutex)를 사용합니다... 2021. 10. 23.
Arduino, FreeRTOS, LED Toggle RTOS 임베디드 장치에서 RTOS(real time Operating system)의 활용은 이미 정착된 기술입니다. ARM을 비롯해서 아두이노에서도 이를 이용하는 것이 기초처럼 되었습니다. 특히 FreeRTOS를 사용하는 경우가 많습니다. 이 글을 포함에서 몇 번에 걸쳐서 FreeRTOS의 활용방법에 대해서 알아볼 것이고, 이글에서는 가장 기초적인 내용인 LED를 운영하는 방법을 알아보겠습니다. FreeRTOS로 LED를 토글 아두이노는 LED_BUILTIN 이미 정의된 LED와 포트가 있습니다. 이를 이용해서 현재 펌웨어가 잘 진행 중인지를 표시하는 방법이 있습니다. FreeRTOS로 LED를 계속 토글(Toggle)하여 이를 표시하는 방법이 가장 많이 사용됩니다. FreeRTOS로 스레드를 하나 .. 2021. 10. 23.
다이내믹 신호처리(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.
다이내믹 신호처리(4)-어택과 릴리즈를 고려한 포락선 검출 오디오 신호 특성을 고려한 포락선 검출 지난 글에서 오디오 신호가 시간에 따라 4개의 구간으로 구분된다고 설명했습니다. 이 중에서 어택과 릴리즈에 따라서 포락선을 다르게 구하는 방법을 알아보겠습니다. 이는 오디오 신호의 변화를 청감적인 특성을 좀 더 고려해서 포락선을 구하는 방법으로 에텍 구간에서는 될 수 있으면 빠르게 증가하는 오디오 신호를 포락선에 빠르게 반영하고 오디오 신호가 감소하는 릴리즈 구간에서는 포락선 감소로를 다소 늦추는 것입니다. 이 방법은 다이내믹 신호처리에서 일반적으로 사용하는 방법입니다. 신호 변화만 고려한 포락선 검출 지난 글에서 신호의 변화에서 피크신호를 둔화시키는 내용의 포락선을 구한 적이 있습니다. 이를 좀 변경해서 신호가 증가할 때와 감소할 때 각기 다른 시정수를 적용하도록.. 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.