많은 영역에서 노이즈를 추가하는 동안 제로 평균 및 분산과 같은 일부 사양을 언급하는 것을 발견했습니다. AWGN, 컬러 노이즈, Db에서 다양한 SNR의 균일 한 노이즈를 추가해야합니다. 다음 코드는 노이즈를 생성하고 추가하는 방법을 보여줍니다. 기능은 알고 awgn()
있지만 노이즈가 어떻게 추가되는지 모른 채 일종의 블랙 박스입니다. 그래서 누군가 잡음을 생성하고 추가하는 올바른 방법을 설명해 주시겠습니까? 감사합니다
SNR = [-10:5:30]; %in Db
snr = 10 .^ (0.1 .* SNR);
for I = 1:length(snr)
noise = 1 / sqrt(2) * (randn(1, N) + 1i * randn(1, N));
u = y + noise .* snr(I);
end
Steven 's가 정확하지 않고 기능 내부를 살펴 보라는 Horchler의 제안 awgn
이 좋은 것이므로 다른 답변을 추가하고 있습니다.
MATLAB 또는 Octave (통신 도구 상자에 있음)에는 awgn
원하는 신호 대 잡음 전력 레벨을 얻기 위해 (백색 가우스) 잡음을 추가 하는 기능 이 있습니다. 다음은 코드의 관련 부분입니다 (Octave 함수에서) :
if (meas == 1) % <-- if using signal power to determine appropriate noise power
p = sum( abs( x(:)) .^ 2) / length(x(:));
if (strcmp(type,"dB"))
p = 10 * log10(p);
endif
endif
if (strcmp(type,"linear"))
np = p / snr;
else % <-- in dB
np = p - snr;
endif
y = x + wgn (m, n, np, 1, seed, type, out);
아시다시피 p
(입력 데이터의 힘)이 계산 된 것처럼 Steven의 대답은 옳지 않은 것 같습니다.
함수에 데이터 배열의 총 전력을 계산하고이를 원하는 s / n 값과 결합하여 추가 된 잡음의 적절한 전력 수준을 계산하도록 요청할 수 있습니다. 다음과 같이 선택적 입력 사이에 "measured"문자열을 전달하여이를 수행합니다 ( 옥타브 문서는 여기 를, MATLAB 문서는 여기 를 참조 하십시오 ).
y = awgn (x, snr, 'measured')
이 리드는 궁극적으로 meas=1
그래서 meas==1
위의 코드에서 진실되고. awgn
그런 다음 함수 는 전달 된 신호를 사용하여 신호 전력을 계산하고 여기에서 원하는 s / n에서 추가 된 잡음에 대한 적절한 전력 레벨을 계산합니다.
문서가 더 설명함에 따라
기본적으로 snr 및 pwr은 각각 dB 및 dBW로 간주됩니다. 이 기본 동작은 "dB"로 설정된 유형으로 선택할 수 있습니다. type이 "linear"로 설정된 경우 pwr은 Watts로 가정하고 snr은 비율입니다.
이는 음수 또는 0dB snr 값을 전달할 수 있음을 의미합니다. 결과는 또한 "measured"문자열과 같이 전달하는 다른 옵션에 따라 달라집니다.
MATLAB 사례의 경우 설명서를 읽는 것이 좋으며 awgn
다양한 시나리오 에서 함수를 사용하는 방법을 설명합니다 . Octave와 MATLAB의 구현은 동일하지 않으며 노이즈 전력 계산은 동일해야하지만 다른 옵션이있을 수 있습니다.
다음은 wgn
(위에서 에서 호출 한 awgn
) 관련 부분입니다 .
if (strcmp(type,"dBW"))
np = 10 ^ (p/10);
elseif (strcmp(type,"dBm"))
np = 10 ^((p - 30)/10);
elseif (strcmp(type,"linear"))
np = p;
endif
if(!isempty(seed))
randn("state",seed);
endif
if (strcmp(out,"complex"))
y = (sqrt(imp*np/2))*(randn(m,n)+1i*randn(m,n)); % imp=1 assuming impedance is 1 Ohm
else
y = (sqrt(imp*np))*randn(m,n);
endif
노이즈의 힘 ( np
) 을 확인하려는 경우 awgn
및 awg
함수는 다음 관계가 유지된다고 가정합니다.
np = var(y,1); % linear scale
np = 10*log10(np); % in dB
잡음에 대한 모집단 분산 var(...,1)
은 어디에 있습니까 ?y
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다