본문 바로가기

DSP55

MediaLink는 미디링크는 미디어를 위한 하드웨어적인 기술과 소프트웨어적인 기술을 필요로 하는 분들에게 기술과 사람을 연결하고자 개설하였습니다. MediaLink에서 개발 내용은 다음과 같습니다. 오디오 DSP용 H/W, F/W, S/W C# GUI 오디오 프로세싱 STM, ARM F/W ATmega F/W 리눅스 프로그래밍 C# 프로그래임 관련 내용 문의가 있으신 분은 gigasound@naver.com으로 연락 주시면 고맙겠습니다. 2021. 8. 19.
PCM 과정과 양자화 오차 아날로그 신호를 디지털 신호로 변환 신호처리는 디지털 신호를 다룹니다. 그러므로 오디오의 아날로그 신호를 디지털 신호를 변환해 줘야 합니다. 이 과정을 진행하는 부품이 ADC(analog-to-digital converter)입니다. ADC에서 진행되는 과정을 한마디로 샘플링이라고 대표해서 부릅니다. ADC는 신호처리 과정에 많은 부분에 영향을 주는 주요 인자를 사용하게 됩니다. 이 글에서는 ADC에서 이루어지는 과정과 이 과정에서 발생하는 기술적인 내용을 다루도록 하겠습니다. 디지털 오디오 신호의 생성 아날로그 오디오 신호는 일반적으로 표본화를 거쳐서 디지털 신호로 변환된다고 합니다. 그러나 자세히 보면 PAM(pulse amplitude modulation), PCM(pulse code modulat.. 2021. 8. 19.
디지털 오디오 신호 흐름의 표현 디지털 신호 흐름 오디오 신호처리 또한 신호의 흐름으로 과정을 이해하면 편리합니다. 그래서 코드로 작성하기 전에 신호가 어떻게 관계를 맺으면 시간에 따라 변해가는지 그림으로 표현합니다. 이글에서는 디지털 신호 처리에서 주로 사용하는 신호 흐름의 표현 방법을 알아보겠습니다. 잘 아시다시피 수식보다는 그림으로 신호의 흐름을 표시하면 알아보기 쉬울 것입니다. 가장 기본적인 표현은 다음과 같이 박스를 사용하고 입출력 신호를 표시하면 됩니다. 만약 입력과 출력이 같다면 다음과 같이 표시하면 됩니다. 신호 이득 출력이 입력에 특정 이득 a를 곱해서 출력되면 다음과 같이 표시합니다. 신호의 지연 오디오 신호처리는 샘플 시간 단위로 시간 지연을 많이 사용합니다. 다음은 하나의 샘플 단위로 신호를 지연을 표시하는 방법입.. 2021. 8. 19.
디지털 오디오용 시리얼 데이터 I2S, TDM 디지털 오디오용 시리얼 데이터 DSP는 ADC 또는 DAC와 시리얼 통신으로 데이터를 송수신합니다. 예를 들어 0x02라는 신호는 0b00000010와 같고 이를 1bit씩 연속으로 ADC 또는 DAC와 DSP가 주고받습니다. 이때 사용되는 통신 형식이 I2S(Inter-IC sound)와 TDM(time division multiplexing)입니다. 이 두 방식은 정수형 오디오 데이터를 사용합니다. 이는 ADC와 DAC가 샘플링과 양자화 과정에서 결정된 오디오 신호를 정수 형식으로 기록하기 때문입니다. 이 글에서는 두 오디오 신호의 일반적인 형식에 대해서 알아보도록 하겠습니다. 2 channel I2S LRCLK는 Left-Right 신호를 분리하는 클럭이며 Frame Clock이라고도 합니다. SC.. 2021. 8. 19.
오디오 신호(16)-누화현상 누화 현상 누화 현상(crosstalk) 또한 전자 회로에서 발생하는 왜곡의 한 종류로 PCB 또는 선로 사이에 유도 현상에 의해 발생됩니다. 그렇게 되면 원하지 않는 채널로 신호가 출력되는 오류가 발생합니다. 누화 현상은 특히 오디오의 채널 분리도에 나쁜 영향을 주게 됩니다. 즉 왼쪽의 신호가 오른쪽에서도 들리게 되고 스테레오 효과를 저하게 됩니다. 누화 현상은 근단 누화(near end crosstalk NEXT)와 원단누화 현상((far end crosstalk, FEXT)으로 분석합니다. 근단 누화는 입력 채널의 신호가 다른 입력 채널에 영향을 주는 현상입니다. 즉 채널 초반에 영향을 주게 됩니다. 반면 원단누화는 출력 채널의 신호가 다른 출력 채널에 영향을 주는 현상입니다. 이 중에서 FEXT가.. 2021. 8. 19.
오디오 신호(15)-고조파 왜곡율(Total Harmonic Distortion, THD) 고조파 왜곡 고조파 왜곡은 아래 그림과 같이 입력된 신호 이외에 의도하지 않은 신호가 발생하는 왜곡 현상입니다. 이는 전자장치가 완벽한 선형 장비가 아니기 때문에 발생하는 현상입니다. 즉 입력 신호에 대해서 정확히 입력 신호에 대응되는 신호만 출력되는 것이 아니고, 이상한 그리고 원치 않는 신호까지 출력된다는 뜻입니다. 특히 입력 신호의 주파수와 관련된 주파수인 고조파 주파수(harmonic frequency)에서 왜곡 신호가 발생합니다. 발생된 왜곡 신호가 얼마나 음질에 좋이 않은 영향을 주는지 평가하는 방법이 전고조파 왜곡률 THD입니다. 전고조파 왜곡률 고조파를 평가하는 방법으로 전 고조파 왜곡률(total hamonic distortion, THD)을 사용합니다. 1kHz의 정현 파을 입력하고 출.. 2021. 8. 18.
오디오 신호(14)-쓰루율(Slew Rate, SR) 쓰루율 전자 소자의 특성 때문에 구형파의 입력은 구형파로 나오지 않고 아래의 그림과 같이 출력됩니다. 이를 평가하는 방법이 쓰루율(slew rate, SR)입니다. $$SR=(\frac{\triangle V}{\triangle t})(V/\mu s)$$ 오디오와 쓰루율 오디오 장치는 20kHz의 정현파 신호가 잘 출력되면 됩니다. 그러므로 SR에서 입력 신호를 정현파로 그리고 미분 형식을 사용 다면 다음과 같이 정리됩니다. $$SR=\frac{\mathrm{d} v}{\mathrm{d} x}=2\pi Afcos(2\pi ft)$$ 그러므로 SR은 오디오의 최대 주파수를 고정하면 출력하고자 하는 신호의 크기와 관련됩니다. 작은 신호일 수록 유리하겠죠. 그런데 스피커를 구동하는 파워앰프는 출력 파워에 따라서.. 2021. 8. 18.
오디오 신호(13)-피크 신호(Peak Signal)와 파고율(Peak Factor, PF) 신호의 피크 피크 신호는 주변의 신호보다 월등히 크기가 큰 최대 값을 의미합니다. 굳이 가장 큰 값을 의미하지는 않습니다. 그런데 특정 구간을 정해놓고 피크를 얘기할 때는 신호의 절댓값에 대한 최댓값을 의미하기도 합니다. 이는 우리가 피크 미터 등을 사용할 때 정의하는 방법입니다. 파고율 파고율(peak factor, crest factor, PF)는 아래 수식과 같은 특정 구간에서 발견된 피크 신호와 실효값의 비율로 표시됩니다. $$PF=20log(\frac{v_{peak}}{v_{rms}})$$ 파고율을 신호의 에너지 성분을 대표하는 실효치에 비해 피크 신호가 얼마나 크게 형성되었는지 알려줍니다. 그러면 다음과 같인 최대 신호 크기를 구할 수 있습니다. $$v_{peak}=v_{rms}\cdot 10.. 2021. 8. 18.
오디오 신호(12)-신호대 잡음비 오디오 장치와 잡음 오디오 장치에서 신호 대 잡음비는 두 가지 측면에서 음향적인 특성을 알려 줍니다. 첫 번째는 잡음이 있는 환경에서 어느 정도 큰 신호로 확성해야 하는지에 대한 척도를 제공합니다. 두 번째는 오디오 신호를 다룰 때 어느 정도의 크기로 확성이 가능한지 알려줍니다. 이 글에서는 신호 대 잡음비의 기초적인 정의에 대해 다루고, 세부적인 내용은 다른 글에서 설명하겠습니다. 신호 대 잡음비의 정의 신호 대 잡음비(signal to noise ratio, SNR, S/N)는 신호와 잡음의 비율을 표시하는 방법입니다. 신호 대 잡음비가 클수록 좋은 품질임을 의미합니다. 여기서 $v_{rated}$는 오디오 장치에서 사용되는 기준 신호의 크기로 정격 신호(rated signal)이라고 합니다. 이에 .. 2021. 8. 18.
오디오 신호(11)-대역폭 대역폭 오디오 장비는 최소한 사람의 청취 대역의 주파수인 20Hz~20kHz를 모두 재생해야 합니다. 그러면 어떻게 이 주파수를 재생하는지 평가할 수 있을 까요. 가장 일반적인 방법은 주파수 대역폭(frequency bandwidth, BW)으로 평가합니다. 아래 그림과 같이 신호가 BW 내에 있으면 됩니다. 이때 최댓값 0dB보다 -3dB 작은 신호로 측정되는 주파수까지를 고려하거나, 1kHz의 신호를 기준으로 신호가 -3dB 작은 주파수 까지를 대역폭으로 정의하기도 합니다. 특별히 이득 구간을 다음과 같이 표시하기도 합니다. $$BW=20Hz-20kHz, \pm 1dB$$ 위의 내용을 참조용으로만 사용해주세요. 무단 도용이나 무단 복제는 불허합니다. 기타 문의 사항은 gigasound@naver.co.. 2021. 8. 18.
오디오 신호(9)-실효치 실효치 실효치는 오디오 신호의 특징을 다루는 중요한 기준 역할을 합니다. 이 글을 기반이 되어 다른 글에서 오디오 신호의 특징을 다루는 내용으로 확장하겠습니다. 실효치의 정의 실효치(root mean sequre, rms)는 시간적으로 변화하는 신호의 평균 에너지 성분에 해당하는 값으로 신호의 크기를 대표하는 방법입니다. 주기가 있는 신호의 경우 다음과 같이 구하고, 주기가 없는 경우 특정 구간을 설정해서 구해야 합니다. $$v_{rms}=\sqrt{}=\sqrt{\frac{1}{T}\int_{0}^{T}x^{2}(t)dt}$$ 실효치는 신호의 종류에 따라 신호의 최댓값 대비 다른 값을 가집니다. 예를들어 정현파의 최댓값에 0.707을 곱한 값에 실효치가 됩니다. 이에 관한 내용은 파고율에서 세부적으로 .. 2021. 8. 18.
신호처리와 숫자 표현(3)-고정 소수점, 부동 소수점의 변환 고정 소수점과 부동 소수점의 변환 신호처리에서 실수는 고정 소수점 방식과 부동 소수점 방식으로 기록됩니다. 고정 소수점 방식은 메모리 비트를 그대로 읽으면 실수로 표시되기 때문에 하드웨어 매우 유리한 방식입니다. 이에 반해 부동 소수점 방식은 코딩 과정에 유리합니다. 이 두 표현 관계는 신호처리 과정에서 상호 변환해서 사용하기도 합니다. 특히 필터의 계수값을 구할때 고정 소수점 방식으로 구하지 않습니다. 부동 소수점이 일반적인 수학 연산 표현에 더 적합하기 때문입니다. 그러니 부동 소수점으로 구한 값을 고정 소수점으로 변환해서 주로 사용하게 됩니다. 이 글에서는 두 표현 방법 간에 변환 방법을 알아보겠습니다. 실수의 고정 소수점$(N_{fixed})$ 표현 먼저 다음 공식을 이용해서 실수 R을 Qm.n .. 2021. 8. 17.
신호처리와 숫자 표현(2)-숫자의 비트 표현 숫자의 비트 표현 신호처리는 최종적으로 정수(integer)와 실수 형식을 사용하고 실수는 고정 소수점 방식과 부동 소수점 방식을 사용합니다. 그런데 숫자를 DSP의 신호처리 연산을 위해서는 비트(bit) 형식으로 표시할 필요가 있습니다. 이 글에서는 정수와 소수의 비트 표현을 알아보겠습니다. 여기서 숫자 뒤의 강호는 숫자의 진법을 의미합니다. 정수의 비트 표현 10진수의 정수 표현은 잘 알려진 것과 같이 정수를 2로 나누면서 나머지를 모으면 쉽게 구해집니다. 소수의 비트 표현 실수에서 정수 부분이 위의 정수 비트 표현을 사용하면 됩니다. 실수의 소수 부분은 아래와 같이 2를 계속 곱하고 정수 부분을 모아서 표현합니다. 다음은 0.33의 소수 표현입니다. 그런데 0.33은 2진법으로 표현하면 무한히 소수.. 2021. 8. 17.
신호처리와 숫자 표현(1)-사용되는 숫자의 형식 신호 처리와 숫자표현 우리 사용하는 숫자 표현과 다르게 오디오 신호처리에는 다양한 디지털 숫자 표현이 사용됩니다. 결과적으로 신호처리의 모든 숫자는 디지털 비트의 조합으로 표현되기 때문입니다. 그런데 사용의 편리성에 의해 숫자가 표현되는 방법도 다르고 기록되는 방법도 다릅니다. 이글을 포함하여 총 세개의 글에서 신호처리 과정에서 사용되는 숫자 표현법을 알아보겠습다. 신호 처리과정과 사용되는 숫자 형식 다음 그림은 오디오 신호처리 과정과 신호 흐름에서 입출력되는 숫자의 형식이며 특징은 다음과 같습니다. 데이터 형식 특징ㅌ,ㄱ 16bit integer 코드에서 int16_t 사용 값은 실제 데이터는 2byte를 차지함 24bit integer 코드에서 int32_t 사용, 3byte int를 표시형식은 없다.. 2021. 8. 17.
DaspX의 기능 DaspX는 전문가뿐만이 아니라 일반인도 쉽게 오디오 믹서를 다룰 수 있도록 GUI 기반의 제어 방식을 사용합니다. 또한 여러 오디오 운영환경에 따라 적용이 가능하도록 여러 편리 장치를 제공합니다. DaspX의 특징은 다음과 같습니다. 편리한 GUI를 제공합니다. 여러 운영환경 별로 적합한 DAP 내용을 기록하고, 호출이 가능합니다. 입출력 포트를 원하는 그룹으로 묶어서 한꺼번에 동시 조작이 가능합니다. 입출력 포트의 이퀄라이저 등을 그룹으로 묶어서 한꺼번에 동시 변경이 가능합니다. 외부에서 윈격 제어가 가능합니다. DC 전원으로 동작이 가능합니다. DaspX는 다음과 같은 하드웨어를 기반으로 개발되었습니다. DSP : ADAU1442 Codec : AD1938 Hardware Controller : a.. 2021. 8. 9.