시끄러운 신호의 SNR을 어떻게 계산합니까?


14

실제로하는 방법을 이해하는 데 문제가 있습니다.

순수한 음성이 포함 된 wav 파일과 배경 소음이 포함 된 또 다른 ave 파일이 있습니다 (화이트 노이즈, 군중 노이즈, 바람 불기 등 다양한 일이 가능). 이것들은 순전히 말이나 소음입니다. 따라서 두 파일에서 해당 샘플 (또는 샘플 프레임의 평균)을 간단히 나눔으로써 SNR 값을 얻을 수 있다고 가정합니다. 그런 다음 대담하게 결합하여 시끄러운 음성 파일을 얻습니다. 이 파일에는 여전히 동일한 SNR이있을 것입니다.

이제이 파일을 내 노이즈 감소 프로그램을 통해 전달하고 결과적으로 다른 파일을 얻습니다. 이 "노이즈 감소"파일의 SNR을 어떻게 계산합니까?

--- 편집하다 ---

후속 질문은 여기에 게시

답변:


8

SNR의 일반적인 정의는 원하는 신호의 전력을 잡음 전력으로 나눈 것입니다. 노이즈 감소를하기 전에 Matlab에서 SNR 계산을 원하는 배열 및 노이즈 신호를 배열로 획득했다고 가정합니다.

snr_before = mean( signal .^ 2 ) / mean( noise .^ 2 );
snr_before_db = 10 * log10( snr_before ) % in dB

노이즈 감소 후, 잔류 노이즈는 원하는 신호와 실제 신호의 차이로 계산 될 수 있습니다. SNR 계산은 간단합니다.

residual_noise = signal - noise_reduced_signal; 
snr_after = mean( signal .^ 2 ) / mean( residual_noise .^ 2 ); 
snr_after_db = 10 * log10( snr_after )

1
signal 및 noise_reduced_signal은 귀하의 경우 시간 정렬되어야합니다.
dspGuru

@dspGuru 사실, 노이즈 감소 알고리즘에 시간 지연이 발생하지 않는다고 가정했습니다.
에는 Deve

@DspGuru 및 Dev :이 장소에서 전체 신호의 var 및 평균을 취하는 대신 음성이 포함 된 신호의 일부를 지정하면 어떻게됩니까? s \ example의 경우, Matlab에서 신호 (start_speech : end_speech)로 신호를 바꾸십시오. 내 신호의 길이는 단어 사이에 일시 중지되어 5 초입니다.
user13267

@ user13267 어떤 신호입니까? 노이즈 감소 전 또는 후에? 일반적으로 분석하는 신호가 길수록 SNR 추정치가 더 좋습니다.
에는 Deve

둘 다. 내 말은 내 소리 샘플에 짧은 문장을 말하는 사람이 있기 때문에 대담하게 열면 파형의 고강도 및 저 강도 영역 (단어의 존재와 내가 생각하는 단어 사이의 침묵)을 볼 수 있습니다. 따라서 단어가 포함 된 샘플을 선택하고 무음이 포함 된 샘플은 포함하지 않습니다.
user13267

3

입력측에서 :

  1. DB1 = 10 * log10 (var (noiseSignal)) 계산
  2. DB2 = 10 * log10 (var (cleanSpeechSignal)) 계산

SNR은 = DB2-DB1입니다.

출력측에서 :

  1. 소음 억제 알고리즘을 통해 깨끗한 음성 신호를 보냅니다. 출력 Y1을 나타냅니다.
  2. 소음 억제 알고리즘을 통해 시끄러운 음성 신호를 보냅니다. 출력 Y2를 나타냅니다.
  3. Z = Y2-Y1 계산
  4. 잔류 소음 DB = 10 * log10 (var (Z))
  5. speechDB = 10 * log10 (var (Y1))
  6. SNR = speechDB-잔존 소음 DB

잡음 제거 알고리즘을 통해서도 깨끗한 음성 신호를 전달해야합니까? 우리가 공통 기준점을 갖도록 잡음 감소 알고리즘 전후에 음성 신호가 동일해서는 안됩니까?
user13267

그것은 전적으로 알고리즘에 달려 있습니다. 지연 및 필터링으로 인해 출력이 클린 입력과 일치하지 않을 가능성이 높습니다.
dspGuru

출력 (깨끗한 음성이 노이즈 감소 알고리즘을 통과 할 때)이 실제로 입력과 일치하지는 않지만 알고리즘에 지연이 발생하지 않는다고 확신합니다. 후속 질문을 확인하십시오 (링크가이 질문으로 편집되었습니다). 노이즈 감소 전 (그림의 맨 위)과 노이즈 감소 후 (그림의 맨 아래) 깨끗한 음성 파형이 있습니다. 지연은 없지만 증폭률이 매우 높으며 일부 음성이 필터링되었습니다.
user13267
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.